Luna (as in Moon Rover) is a remote exploration probe originally based very loosely on the PiBot-B Project. Her maiden voyage was 11 MAR 2016, so I thought I would post here for her birthday
At her core she is a Raspberry Pi with an attached Arduino to handle sensor data. Pololu now has better interface options like the A-Star 32U4 Robot Controller SV with Raspberry Pi Bridge, but when i started building this I just used the Pi for primary communications, visuals, and driving and fed Arduino sensor data to it over a USB connection to the Pi. All Pi-side work is in Python.
Specifics:
- Raspberry Pi 2-b (1 Gb RAM) running Raspian Jessie
- Pololu Dual MC33926 Motor Driver for Raspberry Pi
- Pololu A-Star 32U4 Mini LV
- Dagu Wild Thumper 4WD All-Terrain Chassis, Black, 75:1
** was originally a Dagu Rover 5 Tracked Chassis - Logitech USB Webcam C300 (mounted on a servo)
Sensor bank:
- Adafruit Si1145 UV/IR/Visible Light Sensor
- Adafruit BMP280 temperature & pressure sensor
- Adafruit Si7021 Temperature + Humidity Sensor
** original build had two different generic DHT22 Temperature and Humidity Sensors - Generic photoresistor
- Generic ultrasonic rangefinder
- DF Gas Sensor
Power:
- 7.2V RC battery pack (motors)
- 2x DC 5v 1000mA (2200mAh) Powerbank batteries (phone chargers)
Initially I was very happy with the Dagu Rover 5 Tracked Chassis, but it did not offer a lot of clearance and I sometimes bottomed-out in rougher terrain. Over time the legs start to bow in and the chassis starts to throw tracks with increasing frequency, eventually making it impossible to drive without constant assistance. I substituted 120x60mm Dagu Wild Thumper Wheels, but learned an important lesson about torque and why differential steering does not work on a two-wheel-drive robot:
20160408: Replaced tracks with 120mm x 60mm Dago Wild Thumper wheels... single LUNA_forward.py jumped to 31in (78.5 cm) 90cm? 81cm? Unfortunately the turn radius is slow and pained on hard surfaces and non-existant on grass due to high angular friction on the back wheels during differential steering. http://www.rakeshmondal.info/4-Wheel-Drive-Robot-Design Pololu topic notes that if you do not cut off the extra 10mm or so of axle the axles with start to warp! https://forum.pololu.com/t/dagu-rover-5-tracks-come-off/4419
Eventually I was able to upgrade to the Dagu Wild Thumper 4WD All-Terrain Chassis. This brought a few new challenges, but I will discuss them later if there is any interest.
Operation is done from the command prompt, ssh-ed in over the Raspberry’s wifi connection, viewing what the camera sees over HTTP using a Motion-based web server approach. I have very small python scripts that take an argument integer and drive either forward, back, left, or right using the argument as a duration in seconds. More recently I have the ability to drive semi-autonomously using the input from the ultrasonic rangefinder, stopping and turning when an obstacle is detected.
Originally the sensor data was manually pulled from the Pololu A-Star 32U4 Mini LV over the USB serial connection and printed raw to console:
20160909_2101 Ping: 344cm DHT1 Hum: 34% Temp: 29*C DHT2 Hum: 36% Temp: 29*C BME Temp: 29.86*C 85.75*F BAR: 28.58 InHg Alt: 350.73m Vis: 260 IR: 254 UV: 0 gas: 508.00=2.48V Photo: 86
…then was simplified to write to a flat text file, and now uploads to a remote MySQL database running on another device.