Introduction: Upgrade Heathkit Hero Jr Robot With Modern Hardware
This is more of a work in progress, than a finished project, please keep that in mind when reading. Thanks
A little bit about this robot, where I got it, and my plans for it. (Picture from the 2015 Star Wars Day project)
It was probably sometime in 2005 my wife and I were at a local flea market, we were just looking around, not really looking for anything. There was an older farmer that had setup outside, he was near the back of the place, and not many people were going to look at his goods. I'm glad I was one that did go and look.
He had this little robot, of course I knew what it was. I asked how much he wanted, and was shocked, shocked I tell you - He wanted a whole $20.00 dollars. It was then that he told me, that it had been in a barn for probably the last 20 years or so, and upon closer look there had been furry creators living in it. Wires had been chewed, main board had been mostly destroyed. The batteries were not usable. The thing was a mess, and that is as nice as I can be about it.
It even had all the cartridges with it, and they looked pretty good considering.
Despite how it looked, I saw something that I had wanted since I was young. I gave the farmer $20 and thank him. Carrying my prize back to the car.
It took about a month or so to get it cleaned up enough to start to look at the electronics, and to see what worked, and what didn't. I was finally able to get power too it, surprisingly it passed it's self check - I thought, hey, great this was a great deal even if I had to do some work to clean it up. Well, it passed it's self check once, that was it, I was never able to get it to pass again.
I pulled the main boards, sold them.
Checked the drive motor, and the stepper motor (the stepper had wires that were starting to corrode, and were not in the best condition), but both worked, so I keep them.
I put the robot up as kind of a display piece, because I wasn't too sure what I wanted to do with.
In late 2015 a group of makers and tinkers that I joined was asked if we wanted to do something for "Star Wars Day" for our local library, So we thought about, and I said, what if I bring "Hero Jr" back to life using the Arduino micro-controllers. And that is what I did - I gave it some extra flare and used 7 Arduinos in it....probably more that I needed, but at the time I was still learning. And I wanted it to "multi-task" which at the time I didn't know how to do any other way. I documented that project here: https://www.instructables.com/id/Heathkit-Hero-Jr-...
Well, that was 2015, the light saber was removed, and most of the Arduinos that were specific for that project. For the most part one Arduino can run this if you don't want anything special to happen. The robot went back to his space as a display piece. I learned a few things along the way, and was even going to up grade his power supply back then. Time got the best of me, and I only ordered a 12v to 5v 4 port USB 8 amp board. Unfortunately I can't find that board anywhere on line now, I don't know if they stopped making it or ? But even that board sat in a box until now.
One of the goals of the original project was to keep him looking as vintage as I could, but replace most of the hardware with modern stuff. In 2020, I've decided to even upgrade his LEDs to RGB (neopixels) more on that later. The goal is still to keep it looking vintage, I think it does until you use a color other than red.
This project is using one Arduino Mega 2560 mini (clone board, I don't like it), A Raspberry Pi 3+, Original Google AIY board/speaker/microphone, replaced the stepper motor with a ASMC-04 servo motor, a 36v LIPO battery pulled from a broken hover board. I have a 36v to 12v 5amp DC-DC converter, and the 4 port 12v to 5v 8amp USB device. A cheap ultrasonic, and LDR, Quite a bit of 3D printed mounts. 8 small ws2812 leds (also known as neopixels), a couple of cat5 keystones, and a short cat5 cable. (a voltage divider left from the 2015 project, but it was for 12v/24v not 36v so it's not correct. It needs to be fixed), and I'm using a L298 motor driver (also left over from the 2015 project)
What is left from the original 1984 robot - 12v DC drive motor, the original keypad also still works, as well as the original "green power" led. The shell, and frame as still the same. But that is it. Everything else has been replaced.
This is still a work in progress at this point - I am still working on making some python software for the Raspberry PI, I need to fix a couple of small problems I found in the Arduino sketch (mostly working). I jokingly say this is one of those projects that will never end. At this point, the LEDs all work, Ultrasonic is working, LDR working, Servo motor working, Drive motor goes forward, not reverse (broken wire that I need to track down). The 36v to 12v works, and 12v to 5v works, Raspberry Pi powers up, Arduino powers up off the PI. Mostly the hardware is wired and working. Now it's all software.
Step 1: The LEDs and the Upgrade!
The original 1984 model had the LEDs soldered just "strange" if you ask me, they needed to be off the board, but solder was on the same side as the LEDs. In 2015 some of these LEDs worked, some didn't I was able to replace the ones that didn't work, but that caused some of them to become very dim, and some just never did work. Looking close at the board, you might be able to see that a few of the solder pads lifted and broke.
They all shared the same 5v positive, so to turn them on or off you switch the grounds. Which I know is a thing, but I didn't like that. You know, in an Arduino sketch a "HIGH" is normally on, and "LOW" is normally off - well in this case, the "HIGH" was turning off the LEDs, and "LOW" is on. reverse logic on the LEDs.
In 2015 I just let this slide as I had more important things to worry about at the time.
This year, I decided that I like the idea of WS2812 RGB LEDs, they are cheap, and easy to use, they use one data line, and only need 5v and ground. These are 5mm LEDs, so they fit very nicely in just about everything that a standard LEDs fits in. I found them on eBay, they were a little more than I usually pay for these types of LEDs, however I choose to order from the States this time because shipping from China is taking a very long time. So pay a little more, get them a lot faster. 10 LEDs cost me $10.00 not bad I guess, but also not a great price.
Wiring these up is pretty easy and straight forward, there is a ground, a positive (5v), a data in, and a data out. I choose to use an old method of hookup, and wire-wrap these. my thought was if it would be harder to line the data out and data in lines up if I were to solder them, it may also be harder if I cut the leads back too far, they wouldn't fit correctly in the holes already in the Hero Jr. With wire-wrap, I can kind of move them around a bit, and shape them a little better.
After I got them wired up, I hooked them up to an Arduino UNO and used one of the examples from Adafruit for the neopixels. Happy that everything worked. I placed them in the robot head, and put double back tape over them to both protect them from the circuit board, and hold them in place a bit better.
I then hooked them back up to the Arduino, and ran the example again, just to be sure I didn't bump a wire, or make sure they weren't shorting out. Everything worked. It took a little time to wire everything up, But honestly once you get started wire-wrapping you can move along pretty quickly.
The pictures above, show the original RED LEDs, the board, I tried to show the broken traces, the new leds in various stages of being wired. And finally them working in the head.
I also have videos of the Hero Jr "mouth" which when it is speaking, the LEDs animate a "mouth", and the pixels running the Adafruit examples. I've not uploaded them yet, but that will be soon.
Step 2: Raspberry PI Google AIY, and the Arduino Mega 2560 Mini
2015, It was a different time - and a different project. I used 7 different Arduinos, most were either UNOs or Nanos, a couple of MEGAs. I had one just to play MP3s using a MP3 shield, I had one for controlling an EMIC 2 speech synthesizer, one for the light saber. Motor driver, stepper motor -keypad, the list goes on. Needless to say I've learned a lot since 2015, and honestly it's amazing that the 2015 version worked as well as it did (me not knowing anything and learning and guessing).
2020 - Because the "Star Wars Day" version was always going to be one time use, my plans were to simplify things from the beginning. In 2015 I did toy with the idea of using a Raspberry PI then, but I didn't really know enough at the time to make that work. I decided that an Arduino Mega 2560 mini would do anything as far as Input/Output was needed, IE: turn motor on/off, turn the stepper/servo, read the LDR, read the ultra sonic, read the voltage divider. In this case, the Mega is basically a "dummy" device, with only a few things it really needs to do, But the Mega is also being used to read the keypad, so I really needed a method of two way communication between the Mega and the Raspberry PI. I choose to use the MQTT protocol, but that proposed another problem how to get that over the serial port? Luckily I found this project on github "serial2mqtt" https://github.com/vortex314/serial2mqtt Which is really a type of gateway, the software runs on the Raspberry PI - The Arduino just sends the correctly phrased serial message, and that is then passed to the MQTT broker. It took a little bit to get it to work correctly, but it worked pretty well, and appears to do what I need it to do. The Arduino Mega will publish when it's online, the ultrasonic reading, the ldr reading, the voltage reading. It will listen for commands, motor movements, servo movement, and what to do with the LEDs. While all that seems like a lot, the overhead is pretty small, and it works fairly well.
The Raspberry PI will be programmable with python, C++, just about anything that can use the serial port, and use MQTT. Since I wasn't going to use Google with the AIY, I needed to install the drivers, and make sure it worked. Another luck break Github to the resue, Shivasiddharth make GassistPI, and figured out just what needed to be installed to make this work, instructions can be found here: https://github.com/shivasiddharth/GassistPi
The PI hosts the MQTT broker, espeak for speech, and other software as needed. To access it I am currently using SSH, I have plans to build a web interface, but that isn't even close to being done. I've been "playing" with learning python for this project, still I don't have many programs ready yet.
Some special notes here:
The original Mega 2560 Mini I had was a small clone of the Original Arduino Mega 2560 using the same serial chip for communication, so while testing I just used a full size Mega on the work bench. Unfortunately, I had soldered the keypad wires to that board (un-soldering the header pins, what was I thinking, I wish I could blame that one on 2015, but I can not) The unfortunate part, I had couple of those wires snap off, and I couldn't get a clean hole to re-solder too. I ended up going to a clone of a clone it is still an Arduino Mega 2560 but cheaper version, and with a cheap serial port chip. This is causing me some issues with dropped packets about 10% or so, it's not enough to pull everything back out and try again with a different board. But it is just enough to drive me a little crazy. On the "new" (version 2) Mega I used wire-wrap and left the header pins (hey maybe future expansion, I only using 12 or 13 pins right now)
I also 3D printed (as well as reused some failed prints) mounts for the Raspberry PI, and the Mega Mini. I'd have to hunt up the design files if anyone wants them. They aren't very good as I used a rotary tool to cut a few holes, or shape them a little, but if someone wants them I'll look for them.
Pictures above: Raspberry PI 3+ with Google AIY Hat, in a custom made mount, Original Mega 2560 the one I wanted to use but really messed up, the replacement Mega 2560 (v2) the one I'm not that happy with but it works, with wire-wrap wire, and custom 3D printed mount
Step 3: From Stepper to Servo
Unfortunately I didn't take a lot of pictures of this, and I don't have any pictures of the old stepper motor.
1984 - a stepper motor was probably cheaper than a large servo in 1984 I'm not sure. There were end stops, and the stepper had to home it-self with each power on. Think 3D printer and how they home.
2015 - In another move of not really knowing what I was doing, I removed the end stops - and proceeded to lose them. As I stated earlier the small creators had eaten some of the wires on the stepper, the wires were more/less exposed and starting to corrode. I'm surprised that it worked in 2015, but it did.
2020 - The stepper did stop working, and I started to look for a replacement. I came across the ASMC-04 large servo motor, this wasn't the cheapest option, but it was one of the better ones that I found. The stepper was $50+ dollars from China, and the horn mount was another $13 or $14. For me the benefits out weighed the cost.
The Servo driver is either 12 or 24 volt, the rotation angle is 0 to 300 degrees (limited in my Arduino sketch to 0 to 180), I can control this with 1 wire from the arduino, (2 if you count a ground wire). It's a high torque RC servo, it really isn't that fast in turning however.
The disappoint of this was even thou the specs provided looked like it would just mount in the same holes as the stepper, it didn't match up correctly and I had to drill new holes for it. The servo horn mount is also a lot bigger than the original stepper motor mount, so more holes needed to be drilled.
To me it reminds me a lot of the speed of the stepper, so over all a good replacement & something that you'll not notice has changed unless you look inside the robot.
I didn't take many pictures of this, there might be a couple more some where, but they will pretty much look like these.
Step 4: Some More Pictures
Since I am still working on this Robot (mostly software at this point) I thought I would just share a few more pictures
4 port USB 12v to 5v 8 amp DC-DC converter, I can't find this any more, and I wish I had bought a couple of them.
36v LiPo battery removed from a broken hover board
Pictures of the inside of the robot, wires, ect. Some more pictures of the LED replacements, a few more pictures of the Arduino Mega w/wire-wrap, picture of the ultra-sonic with covering over it (actually this is the way it was in 2015)
Pictures of the body without the shell on it, and a picture of using a console to test it over MQTT.
That about it for now, Thanks for looking, and if you like it, please vote for me :-) I could use some more parts for projects LOL - Have a good day, and try to be safe everyone.
Participated in the