My first one ran too fast for the wheel edge encoders, and if you drove him slow, he would stall under the weight.
Botoo (bot-2) will be equipped with:
- Raspberry Pi Model B (512mb) with wifi
- 1 Arduino UNO and 2 Arduino Pro Minis
- The I2C Sonar Pod that I'm working on.
- A set of standard Sharp 2Y0A02 IR sensors on front/rear/left/right ( I may also put two more on 45 degree front-right/front-left).
- A pulsed line lazer with Webcam for Paralax ranging, and ....
- I just bought a Kinect
Got power supplies, Raspberry PI, and Arduino UNO up and running, and running simple sketches to tune wheel encoders.
So, this is the oldschool laserprinted encoder wheel and QRD1114 that I'm using on Robbie... I will admit to wasting more time on this little POS circuit than any other piece of this build.
So, I treated myself to a commercial set of encoders from Solarbotics. As well as the typical quadrature encode funtions, they have a CLK pin pwm modulated and a direction pin. (Also have a serial out with distance/velocity, but...)
I had to enlarge the hole by a few thou to get it over the hub of my new wheels. Not what Solarbotics intended, im sure...
Fine print warned me against using it on anything other than their GM 2/3/8/9 gear motors... My skull's too thick for that to register though...
And yes!!! that is hot glue holding it all together. Once I get the alignment validated.... then we'll put in the screws!
Telemetry control board - 1/2 completed...
Apologies for the slow progress on this. Three kids under 7 means little time to myself or my projects. :)
I'm all wired up now, and working on my code. If I were to admit to having any skills whatsoever in coding, I'd have to say PHP is my comfort zone. However I2C capabilities on the Raspberry Pi are pretty much non existent in PHP.
I found this https://github.com/tbrianjones/raspberry-pi-i2c-bus/blob/master/peripherals/i2c_bus.php as a good start.
I'm expanding upon this, using the Adafruit python I2C bus code as a template.
I need to read/manage:
- HMC6352 compass module
- ADXL345 3 axis accelerometer
- BMP085 barometer and thermometer (also provides altitute via algorithm)
- Arduino UNO motor driver / wheel encoders
- Arduino Mini Sonar Pod and IR proximity
Update 2: 14/01/16
It's been a rather productive, yet expensive day. I somehow shorted out and destroyed my 18v Lithium ION motor battery. Awesome!
So, I'm improvising with 8 AA NiMH rated @2100 mah... we'll see how that does for now.
Here's is a picture of it's first "un-tethered" voyage....
... and yes.... it hit the stack of DVDs. apparently I was scanning right over top of them.
Video to come soon. (Is this the part where I admit to my lack of skill at making/editing videos?)
I've replaced the dead 18v Lithium Ion battery with a standard 12v gel cell. Easier to charge, weighs a bit more, but... whatever...
I get bored easily, and have too many little things that I jump around between. Lately I've been working on various routines for "self preservation". Nothing extraordinary, just typical things like if the battery gets below a certain point, come back to base to charge . The latest one was regarding wifi connectivity on the Raspberry Pi. The routine would evaluate the wifi connection with the WebServer (commands coming in/telemetry going out) and if it hasn't connected in a while, or the wifi signal is too low (small usb dongle inside chassis... bad idea...) the rover would seek out a stronger signal. Sounds great in theory.
So I went downstairs this morning, to find the rover huddled in my living room directly below the wifi router.... battery dead as a doornail. Upon reading the logs, it appears that I accidently connected the routine that would send him back to the charging station on low battery with the new one that would attempt to correct wifi issues. Battery got low, so he looked for a stronger signal! Makes sense to me...
btw.... I said something like "Awwwww... it looks like he was trying to get a better signal..." in hearing distance of the wife... She just looked at me, and said "He?..."