Stirling vacuum, electronics
15th November, 2018
Updated 30th January, 2018
In this article we'll delve further into the existing electronics in the vacuum cleaner, and how we'll modify or replace these components to get our new smart robot working.
We'll update the article regularly as we get our heads around everything.
Use the buttons above to read all of the Stirling Robot tutorials.
Drive motor units
As mentioned in the previous article, Striling uses self-contained units with gearboxes and drop-sensors built in. We've since opened one of these to see what's inside.
As we suspected there is a rotary encoder attached to the back of the motor.
The black dome pictured above has 18 slots around its edge to give 20 degree increments. You can see the infrared (IR) receiver to the left of the dome.
It would usually takes some effort to figure the connections for this circuit board, but here we're in luck.
The 10-pin plugs connecting the drive units to the main board are clearly labeled!
Eight of the wires are in use. The two motor wires are m+ and m-, and the ground is obvious enough.
The A on one edge of the plug will be anode (+) for the IR encoder. I'm hoping this powers both the transmiter and receiver.
C may stand for cathode (-) for the LED, but I'm hoping it actually stands for collector, the output from the encoder. This would mean that the encoder board already has the circuitry connecting the cathode and emitter to GND, and I just need to connect C to the arduino, possibly with a 10K pullup resistor. I'm guessing the anode will have a built in resistor on the board, they're usually around 220 Ohm.
K1 and K2 are the in/out for the wheel drop-sensor. I'll need to include a 10K current-limiting resistor between K1 and the Arduino, and K2 will connect directly to 5V
We're building Stirling in several phases. Phase one is purely to test our movement interfaces and GUI's.
For now all we've done is cut the wires from the m+ and m- tabs and extended them to my motor-controller.
The other pins from the motor unit are still plugged into the old main board, and the vacuum's old brain has no idea anything has changed. The LCD shows no errors. I did say it was stupid.
The power comes from the battery via the power switch/charging board on the side of the vacuum.
Wired like this, the power switches on the motor-controller when I flick the main switch on the side. It will also switch on and stay on while the charger is plugged in.
The old brain's power-monitoring functions are still working, and it will power everything off if the battery gets too low. The LCD displays a three-bar battery status so we can see when it's getting low.
Unfortunately some clown put a giant head over the LCD, but that's okay. I'm only using it like this while I build a new power system. After that I'll ditch the main board altogether. This was just a safe way to get phase one going without smoking batteries, but it has it's drawbacks.
The vacuum cleaner's old brain must be powered on anytime the motor_controller is running. This is obviously using a lot of unnecessary battery power, and all it's really doing is displaying the battery status (which I can't see).
In phase two we'll connect directly to the battery with our own power switch instead. During normal operation the vacuum's own main board will be powered off, and it will only switch on while charging.
You can see the new brain above. So far there is just a Raspberry Pi and a seven-way power splitter for the sensors.
The Pi is powered by a 10,000mA USB battery that lasts at-least 36 hours.
As well as holding the brain, the head will act as the platform to attach hat-like tools and accessory boards we'll make later.
The head holds three distance-sensors for now, with three more coming soon. I want one more for the back and one on each front corner. The front sensor doesn't see things on the flanks. At the moment I've fixed that by having the robot look 20 degrees left and right to measure the flanks before it moves ahead each time, but that makes it a lot busier.
The PIR movent sensors in the front corners will tell the robot when people are near and detect their approximate position. They are not connected yet, I don't really need them until I build the Nerf gun hat.
The next brain component to come is a gyroscope/accelerometer. This will sit in the center next to the Pi.
After that we'll move onto the built-in sensors, starting with the motor-encoders.
That's all for today.
In the next article I'll cover the software we're building for Stirling.