Up to this point I had been running the vehicle with an rc transmitter. It was a simple solution, but certainly not practical in the long run. I wanted a system that was simple and cheap, and could be made as modular as possible so that it could just be bolted on to vehicles made by local people. I decided not to reinvent the wheel when it came to interfaces. I liked the feel of the wii nunchuck, and it gave me the buttons I needed. I already had one out here, for another project, so it was donated for the cause. Unfortunately the cheap ebay knockoff versions are not as 5v tolerant as the Nintendo original, and I seemed to have lost the I2c chip. This wasn't a big deal, because I didn't need the accelerometer, so I rewired it and just read the joystick and buttons with the Arduino.
The Arduino sends control codes to the Sabertooth 2x60 motor controllers via serial packets. The button button will activate a PID control loop when pressed which will control the angle at the pivot point to control turning. Right now there is a pot at the pivot point, but I hope to move to some kind of hall effect based angular position sensor. The other button is for a horn which is turned on with a mosfet.
I wanted to keep the drive as simple as possible to avoid anything weird. All the other non critical components are controlled by a second Arduino. This Arduino connects to the sensors which include 6 ds18b20 temperature probes to measure temperature for all motors and batteries, an 3 Allegro Microsystems ACS758 current sensors. It controls output to lights, two case fans, and accessories via mosfets. Its main function is to display all of this information on a 20 x 4 LCD screen, and set parameters for things like temperature alarms, and fan on temps.
The programs are still works in progress, but they are functional. The code in its current state is available in the github repository along with pinouts and my wiring layout.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.