Robot Erasor



For a Power 1 course, my professor challenged us to design a machine which would combine two different power sources and perform a useful task. For this project I proposed to combine Solar power + a Linear shake generator to control a robot that erases whiteboards...

My idea was to 3D print an enclosure and design my own circuit board. I took this project as an opportunity to develop my fabrication skill. I started by researching low power - high torque DC motors which would propel the robot on only a solar panel, the linear generator was thrown into the mix to fulfill project requirements and would produce minimal power.

This post ties into Learning PCB design in one week. Where I describe in detail the hardest part of designing and fabricating the PCB.

After deciding on board and motor sizes I began the 3D print design. This is 3D print that I designed using TinkerCad. TinkerCad is free cloud software that rocks.


As you can see I placed columns to hold the Magnets which would adhere the robot to the board. I also found brackets and wheels for the N20 Motors online which where extremely useful.

This is the 3D print result with the PCB fitted. Thanks to Juan at FIU Make-It-Studio for the awesome printing job. My only regret is not making the walls a mm thicker as they where quiet thin. Sanding the column's bore was a pain.

3D enclosure + PCB
Onto the PCB. I decided to built my chip to resemble an Arduino board. I am very comfortable with these boards so I felt confident in modifying them. I went ahead and ordered a handful of the Atmel Atmega328p from ebay (They where labeled as bootloaded but they were not...) and boot loaded them....


Meanwhile I researched different low power designs and found some really great resources. Solarobotics.com designed a very small minimal chip called Ardweeny. This chip is as small as it gets for through hole pins. This website was incredibly resourceful because they provide Altium files for their designs!!! I decided to use their Altium schematic and modify it for my application. Read more about that process at Learning PCB design in one week.
I downloaded Altium and fumbled with it for about a week to create the design. I discovered OSHpark.com and got three boards printed for $10 with a two week turnaround! This is what they looked like before sanding.
My baby
I grabbed my Iron and soldered in the most important components. At first I tried using a resonator but it was giving me issues. I ordered some crystals and paired them with their capacitors and I got a heart beat. 

A heart beat is when the board's LED pin blinks on and off. This indicated that the chip is working.
About this time is when I actually started programming the chip. Originally my design used transistors to power the DC motors but I began having issues with them. Ultimately I ditched the transistors and powered the motors straight from the Atmega pins. This is usually not recommended because the pins are limited to 40mw however in my probing actually performed better than the transistors for some reason.

I programmed the chip as a lillypad and used another Arduino Uno as a programmer. Eventually my FTDI chip came in the mail and I would use that instead. The program was ultra simple and resulted as such. As you can see I programmed the motors digitally using the code from an LED write example sketch in the Arduino IDE. This ended up working better than the transistor based programs that I had planned on using originally. This program drives the robot straight and then completes a turn and continues.

digitalWrite(9, HIGH);   // turn the LED on (HIGH is the voltage level)
digitalWrite(8, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(5000);              // wait for a second
  
digitalWrite(9, LOW);    // turn the LED off by making the voltage LOW
delay(2000);              // wait for a second
digitalWrite(9, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(5000); 


digitalWrite(8, LOW);    // turn the LED off by making the voltage LOW
delay(2000);              // wait for a second
digitalWrite(8, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(5000); 



Now all that was left to do was to fit all of the components. I started by gluing a 3D printed wheel to the N20 Motors and gluing a rubber band strip for traction. Then I soldered the motors into the board and glued the motors and PCB in. I also glued in magnets. 

All that was left here was to design a bracket system to hold the solar panel in place and to build the linear generator. I wanted to be able to open and close the robot like a lid so that I would be able to program it easily. After much thought I decided to use an old pair of eyeglasses and up cycle their metal hinges. I didn't have time to 3D print brackets so I got medieval with wood and carefully carved out a strong support. The result was great and very sturdy. For the linear generator I took apart an old transformer and tinned the magnet wire at both ends. I wrapped a pen in the wire and added the magnet. Then I soldered the wires into their header port and the robot was COMPLETE!

The last step was the painstaking process of balancing the robot to have the right amount of magnets to adhere to the board. This proved to be the last hurdle. After days of attempting different configurations this was the best performance we were able to achieve.

 The obvious problem here is that there is not enough torque. At first the robot would inch forward and then it would stop... I realize a few things where at play here. The solar panel has a rated temperature of 77 Degrees and I was able to measure a sharp drop off in power output after my hot lamp heated the panel. Also, of the advertised 1 Watt rated solar output, I was only able to measure 0.25 Watts generated. This became a big problem.

For the sake of the project at the last minute we pivoted and presented the robot as a Zumba. The lack of power output made whiteboard erasing impossible however the robot worked perfectly on the ground. The professor was very impressed and proclaimed that we had earned a 100.

In the upcoming days I will be wiring the robot to a battery. The higher amperage will definitely give the torque that I am expecting and should zip across a whiteboard flawlessly. Stay tuned....