Logikoma is one of the members of a family of "think tanks" in the Ghost in the Shell universe. It seems to be the oldest design so far, and for me, making the most sense mechanically. This is an attempt at building a working model of one of them. It's not going to be accurate, as I'm simplifying quite a lot of things -- I'm rather going for practicality.
Having both wheels and legs makes a lot of sense for a robot that is supposed to operate in urban environment. Wheel provide energy-efficient and fast transportation, while legs are useful for traversing difficult terrain. Together they form a perfect combo.
I recharged my batteries during the holiday break enough to actually work on this project a little bit more. One of the reasons I didn't touch it for over two years is that it's not really very convenient to program. I mean sure, it runs MicroPython, but to program it you either have to disconnect from the Internet and connect to its WiFi, or connect a USB to serial converter.
If you look at the plastic Logicoma toys, you will see that the "turret" is pretty detailed -- it has all sorts of bolts, handles, grooves, etc. Mine is smooth, because it's just an acrylic ball. But I do plan on adding all those details, eventually. I decided to start with the eye socket, because I have a theory about how to make it, and I want to test it.
Since the eye hole in the acrylic ball is cut by hand so that the eye fits in it, I don't know the exact dimensions. So I just placed it against a piece of acrylic and traced with a pen. Then just added the details.
Next, some dremeling. Who needs a laser cutter. It's maybe not perfect, but it's cheap and fast.
Then, I placed the soon-to-be eye socket in a metal ball that I had lying around (it was a box of chocolates for Christmas or something like that) and placed it in an oven. When the acrylic softened, it got this nice covex shape. I adjusted the "ears" manually a little (careful, hot!), and got something that fits on my acrylic ball just right (also drilled the holes):
Next, I drilled corresponding holes in the ball and used the rest of my plastic bolts to secure it in place.
It's not exactly as in the movies, but I think it's close enough.
For a long time I couldn't decide what to use for brains for Logicoma-kun. The initial experiments were done with Arduino, but I'd like something stronger and with the possibility of remote programming. For a time I had high hopes for the WiPy -- I waited for it to be released and then for the Timer bugs to be fixed, so that I could use it to control servos. But when it was finally fixed after several months, it turned out that I can't control enough of them at once easily, and that programming WiPy over FTP is quite awkward.
Now that the Micropython for ESP8266 is re-done and working great, I decided to use the old combo: Arduino Pro Mini as a servo controller, and an ESP8266 module for the main brain. Promptly, I put together the whole thing on one of my breakout boards:
It's been a long time since I worked on this robot, mainly because I got stuck with the hands mechanism. You see, I want it to have hands like the original Logikoma had, and since I have one free servo channel, I wanted them to move, allowing me to grab things with them. This gets rather difficult to do if you don't want to make custom 3D-printed or laser-cut parts, and I didn't think about it when I was ordering the laser-cut chassis.
I finally had this idea -- I can just mount the hands directly on two servos, and connect both servos to the same signal -- pretty much what I already do with the wheels. But then there is a tiny complication -- I need the servos to move in opposite directions. There is really no room to mount one of them up-side down, so I still had a problem.
Then it occured to me. If you open a servo, you will see the PCB with the electronics, and some leads going to the motor and to the potentiometer:
Swapping just the motor leads won't work -- the servo will go crazy and try to move in the opposite direction than it wants. But if you also swap the potentiometer leads, then all is good again -- both the motor direction and the position feedback are reversed. Voila, a reversed servo!
Now all I need is to attach them under Logicoma-kun's body, and connect to the one servo channel:
I still don't have a nice solution for the hands, but I'm leaving that for later. Today I decided to work on the eye.
As I probably mentioned before, I plan to put a distance sensor inside that rotating eye. That means I need a distance sensor that is small enough. Fortunately, I have bought several of those time-of-flight sensors that were described on Hackaday some time ago, so I decided to use those. Some time ago I made breakout boards for them, so it was time to actually cut them out and try the thing.
Turns out that soldering QFN packages with a soldering iron, and with the pads not sticking out even a tiny bit, is practically impossible. But I remembered that in the FabLab nearby they had a hot air gun. That should do it nicely.
I attached the PCB with the brains for this robot (I'm using one of the old PCBs I made for #Tote, affordable spider robot), and connected all the wires. Getting them to the right place was a little tricky, but making a few extra holes helped with that. The power switch is at the back, under the weapons box.
I'm also working on the hands (the two light-blue parts connected with copper wire), prototyping the mechanism for them. I need them to both move controlled with a single servo, that you can see on the photo. So far I came up with something like this:
I'm still not happy with this design, I will keep on trying different things.
In other news, the breakout board for the distance sensor arrived, so I can try if it works and try to put it in the robot's eye. More on that soon.
In the universe of Ghost in the Shell, the name "Logikoma" comes from "logistics robot". Those robots are supposed to be a fast all-terrain vehicles for transporting weapons and ammo, basically. To do that, they need some storage space, and that's what the box on their backs is for.
I just finished making that box for Logicoma-kun. It's empty, and opens just like in the movie. It consists of several pieces of acrylic sheet, with paperclips for hinges, all hotglued together.
I might add some magnets there at some point, to make it snap in place better.
The acrylic nuts and bolts finally arrived, so I can put it all together. Since I wasn't really sure how everything will be attached when I designed the laser-cut parts, I simply hotglue them together where there is no room for bolts.
Next step is connecting all the wires properly and programming. I also want to try and fit a distance sensor in the eye, and add the hands and snout.