Intro: Blade Runner Memory Maker Controller
More of a prototype in human interface to show off Adafruit’s Circuit Playground Express board and Circuit Python programming used to emulate typical USB keyboard and mouse input.
Based on Dr. Ana Stelline’s memory maker controller from Blade Runner 2049.
If there was a "cardboard" kit, I'd buy it. Nah, I'd probably make it. It's my nature.
Step 1: Hubcaps...
If you want to go about replicating a prop from the big screen to real life, the first thing to do is research. Print some images to work from. Scribble some notes. And then figure out how you are going to make this thing. Or figure it out as you go along...it's more fun that way. Don't know where I'm going to but I'm on my way...
I saw someone was working on a model for 3D printing. I dunno, I'm not that dedicated and I did not really need a 100% accurate recreation of the prop. Anyways, I could create something from traditional craft methods and probably invest less time than needed because I am lazy. My go-to technique is pencil and paper, cardboard, popsicle sticks, glue and paint.
There are some moving parts to this build. You can use any microcontroller like an Arduino to drive a couple of servos for animation.
When analyzing the movie prop to see what moves, there is the outer handheld part that rotates and two inner rings that rotate. I could use servos to make the inner rings rotate and somehow just get the big outer part to turn, maybe just have it as a loose knob fixed at the center or use two takeout food (takeaway - across the pond) plastic containers that rotate smoothly nested in one another. The containers were also about the right size for a base to build the prop upon which is what I was searching for in the first place.
Getting stuff to stick to the slick plastic would be no fun in the long run so I made a set of cardboard disks to hot glue to the ends. From there, I would have a glueable base to continue building the rest of the prop.
Step 2: Polish Up the Slick Surface...
This is the rough-in stage of construction.
Glue on strips of cardboard to get a rough approximate shape of the product. Since the container is really a tapered cylinder, its slightly conical shape technically named a frustum, I wanted to step the layers of cardboard in sections to get an even surface all around.
I still have one of those old school guillotine paper cutters. Respect the beast, it is sharp and dangerous.
Layer on cardboard to give it some dimension and detail for all the different parts.
Use tissue paper to paper mache all the exposed corrugated cardboard edges. Tissue paper is great when you want to retain those fine detail lines or edges of the support underneath. It is a little bit harder to work with since it kinda disintegrates when you try to handle it when saturated with glue and water. Add as many layers as necessary to achieve a smooth surface. When dry, go over any open spots or cracks with more paper mache or just glue to fill.
Step 3: Hang Around for the Glue to Dry...
The device hangs from a neckstrap. Since I did not have any lanyard webbing material lying around, I used the web straps I once salvaged from a worn IKEA tote bag. BTW, those durable plastic fiber bags are great for repurposing in other projects like this one.
And while we are on the subject, instead of duplicating the camera lens scales or markings on the rings, I will just use those paper tape rulers they have for you to use in the store so that you can figure out if anything will fit in your shoebox-sized apartment let alone if it will fit in the car to get back home.
I used popsicle sticks to build the lanyard fitting. Laminate or glue together the wood sticks to build up to proper thickness or strength. I used a real metal hinge to connect the crossbrace and the lanyard finial. Additional screws with decorative washers were added for detail.
Step 4: Band on the Run...
Since the device is a series of rings, I hot glued thin cardboard strips to band the prop. Note that I scratched up the plastic container surface with a utility knife to give a better bond to the hot glue. Just build up layers to get the look of the various sized rings. Run a bead of glue on all edges to make a fillet in order to smooth out the look and make it look like seamless metal parts.
A thinner cardstock(110lb grade cover stock) was used for the finish layer and to cover the rougher corrugated cardboard.
The moving rings were made after the main body was painted.
Step 5: Button It Up...
I knew I wasn't going to be using mini arcade buttons or round momentary switches. I just had a bunch of those tiny tactile 4-leg perfboard mounted micro switches. They would be embedded in some plastic water bottle caps. The trick to wiring those up is to solder your leads to any pair of opposite corners. They are usually not marked on how the legs are internally connected or oriented.
I cut out indents where the plastic bottle cap buttons will be hot glued in later. The other buttons are faux decorative buttons that were layered up from paper cardstock. Coat all exposed raw paper and plastic with glue to prime the surface for paint (I am using water-based acrylic craft paint, easy cleanup and no fumes) and to give it a glossier metal-like finish.
Step 6: Skin Job...
I cut the paper tape measures into thinner strips. They were glued onto the rings. I coated with a glaze of glue and a dab of silver paint to tone down the white color of the original to make it more "metallic".
I printed out a digital camera lens LCD display graphic and decoupaged that on to resemble a real indicator.
Step 7: Round and Round It Goes...
Cut two slits for the ring drive arms to stick out. The servos only move 0 to 90 degrees rotation so only cut out small portion of the container leaving the rest to provide support for the body of the container. You don't need a full rotation to provide the illusion of the moving rings.
The servos were mounted on popsicle stick brackets that fit inside the round inner container. The two piece U brackets are nesting so that you can position the servo to pivot in the centerline of the container to drive the rotating ring. The servos are taped into the mounting bracket, locked in with a tie-wrap and the assembly hot glued in place in the container.
The servo arm is made L shaped to have a glue pad to attach to the paper outer ring.
This is after all just cardboard and popsicle sticks, not machined or extruded aluminum supports so you have to build in a little slack to account for the lack of a proper geared drivetrain. I had to trim the slot a lot to provide free movement of the servo arm.
The final product shown has the electronics hanging outside but there is plenty of room inside the container to mount and route all the wires.
Step 8: The Heart of the Machine...
As this was a project really borne out of something to do with my new Adafruit Circuit Playground Express board. It runs the Circuit Python programming language, similar to MicroPython, which I never used before. There's no better way to learn something new than to have a practical application of it.
As with Arduinos, its purpose is to provide a better interface from the physical world to computers. I tried all the beginner example code and thought the Blade Runner Memory Maker Controller prop would be really cool to try to bring to life. A bunch of buttons, moving rings and well, no lights here, you know how I love Neopixels.
I could have programmed it all in Arduino since the board is capable of also using that but this was an opportunity to port things over to Circuit Python. In Arduino, I knew how to run servos, sense button presses and knew I could put the board in HID(Human Interface Device) mode to send out keyboard or mouse commands to the host computer through USB. I wanted to end up with something like a 3D mouse controller/joystick. I started out with the minimum as a goal to prototype the device. UP, DOWN, LEFT, RIGHT, LEFT MOUSE CLICK, and drive 2 servos.
2 microservos were wired up to PWM capable pins. 5 tactile button switches were wired up to the pin and ground. They were mounted inside a cutout in the plastic bottle caps with hot glue.
The demo reel of the device in action is to change the viewpoint in a 360 camera video. The Memory Maker Controller is acting like a joystick to look left, right, up and down similar to how the device in the movie pans the holograms in making the birthday party memory. Even though it is not the computer mouse, the computer just sees that a left mouse button is held down while moving and responds with the appropriate action.
Since Circuit Python is fairly new and still being developed by a bunch of great people at Adafruit, you might need to do some hunting to figure out how to do things that go beyond the basics. There was some sample code for servos but for a different board. I figured out how to implement the mouse HID from looking at sample regular Python code.
Big things I learned was that digital pin names used the A* names which is usually how you address analog pins and your logic gets a workout from inverting pulldowns to pullups and reading external buttons. I found that the Mu editor is pretty strict on formatting code and style. Be sure to save your program off the board. Save and save often. Be prepared for runaway code that will hang your machine since experimenting with HID can make it seem like a stuck keyboard or no mouse. If your servos strain and pull too much power from the board, it may cause the board to lose its programming and you will have to reinitialize and reload.
My Circuit Python code can still be improved since I learned that Python in general doesn't really have a switch-case construct which you have to do in a different "Pythonic" way. I still have to do a mouse current-position tracker to check mouse movement so it doesn't go out of application bounds and introduce errors. All of this is ... academic.
Since it was built, in use it is pretty comfortable and functional. Although it came out a bit probably larger in scale, it can be resized to fit more ergonomically. I don't know if this has any application in the Assistive Techology arena but a shout out to ATMakers.org for their endeavors. Maybe you'll see such devices used by football coaches in offworld colonies. I'm sure one of the teams would have liked one in the last SuperBowl. Oh, rewind...
If you are not programming your own microcontroller, you can gut out a wireless or Bluetooth keyboard, entry pad or mouse to use the electronics. Don't retire those old components, repurpose them.