All Projects → jabelone → Car Controller

jabelone / Car Controller

An arduino firmware that outputs a PWM signal for steering motor control via serial.

Labels

Projects that are alternatives of or similar to Car Controller

Ol3d
A tiny portable 3D graphics lib for micro controllers
Stars: ✭ 90 (-8.16%)
Mutual labels:  arduino
Hellodrum Arduino Library
This is a library for making E-Drum with arduino.
Stars: ✭ 95 (-3.06%)
Mutual labels:  arduino
Esp32 soundrecorder
ESP32 Sound recorder with simple code in arduino-esp32. (I2S interface)
Stars: ✭ 96 (-2.04%)
Mutual labels:  arduino
Sketchbook starter kit v2.0
Stars: ✭ 90 (-8.16%)
Mutual labels:  arduino
Arduinogameboy
Arduino based Game Boy cartridge reader and writer. It can dump ROM and RAM to SD card.
Stars: ✭ 93 (-5.1%)
Mutual labels:  arduino
Teensyterpreter
A Teensy script to open up a reverse TCP shell on Windows machines in as little time as possible.
Stars: ✭ 95 (-3.06%)
Mutual labels:  arduino
Adalight ws2812
This is a fork of Adalight working with WS2811/WS2812 LED using the last version of FastLED. 💡
Stars: ✭ 88 (-10.2%)
Mutual labels:  arduino
Erika3
ERIKA Enterprise v3 RTOS
Stars: ✭ 98 (+0%)
Mutual labels:  arduino
Knx
knx stack (TP, IP and RF) for arduino and linux, Can be configured with ETS
Stars: ✭ 94 (-4.08%)
Mutual labels:  arduino
Blockly At Rduino
[email protected] : Blockly remix for Arduino. Totally new version, enhanced one !
Stars: ✭ 96 (-2.04%)
Mutual labels:  arduino
Nrf24 Esk8 Remote
A remote used to control an electric skateboard
Stars: ✭ 91 (-7.14%)
Mutual labels:  arduino
Arduino Amiibo Tools
Arduino sketches to play with amiibo
Stars: ✭ 93 (-5.1%)
Mutual labels:  arduino
Exploring Arduino 1st Edition
Companion Code for the 1st Edition of "Exploring Arduino," the book by Jeremy Blum
Stars: ✭ 95 (-3.06%)
Mutual labels:  arduino
Timeframe
Get your own time portal on your desk!
Stars: ✭ 90 (-8.16%)
Mutual labels:  arduino
Reference En
Editable source for the Arduino Reference
Stars: ✭ 97 (-1.02%)
Mutual labels:  arduino
Pixelbot
Stars: ✭ 90 (-8.16%)
Mutual labels:  arduino
Esp8266button
An IoT Button using an Adafruit Huzzah or SparkFun Thing, push button and IFTTT
Stars: ✭ 95 (-3.06%)
Mutual labels:  arduino
Stm32generic
Generic implementation of Arduino for STM32 boards
Stars: ✭ 98 (+0%)
Mutual labels:  arduino
Growerbot
growerbot sources
Stars: ✭ 97 (-1.02%)
Mutual labels:  arduino
Easyddns
Easy to Use ESP8266 DDNS Update Client Library.
Stars: ✭ 96 (-2.04%)
Mutual labels:  arduino

Car Controller

This project provides firmware that runs on an arduino. This firmware, coupled with an arduino, provides a serial (UART) interface for outputting PWM signals. Something like a raspberry pi has lots of processing power and I/O; but it can't reliably drive PWM outputs for servos etc. Due to the PWM being done in software, any slight lag will effect the precise timing required.

By sending the steering and motor outputs over UART to a real time microcontroller, reliability can be ensured. This is because these microcontrollers are specifically designed for stuff like this with very precise timing. The firmware also reports the voltage of a battery; which is great for remote monitoring and safety. I created this for use in our machine learning car.

##Click the video below to see it in action! IMAGE ALT TEXT

Setup

It's fairly straight forward to use. The PWM output and voltage monitoring pins are in configurable variables at the start of the program. Specify which pins you're using; bear in mind the voltage monitor must be an analog input.

Voltage Monitoring

If the maximum voltage of the battery is less than your microcontroller's operating voltage no extra hardware is needed. Just splice a wire into where you want to measure and connect it to the arduino's pin. For LiPo and other multi cell batteries, it is generally only necessary to monitor a single cell. Simply tap into the first cell on the balance connector. If you need a higher voltage lookup how to make a voltage divider to measure battery on arduino.

Steering/Motor Driver

Steering

The steering pin will output a PWM signal using Ardiuno's built in servo library. It will drive practically any servo.

Motor Controller

The motor controller pin will output a PWM signal using the arduino servo library. This means it will drive most servos (ie throttle for an IC engine) or most ESC's.

Usage

You can send it two commands via UART, "motor,x" to control motor output and "steer,x". X is usually a value between 40 and 150 as the input centers around 90. Car-controller also continusously sends back a measured voltage over the UART when the correct flag is set. If the debug flag is set to true when uploaded, it sends debug messages over UART.

License

As with all my projects this is released under a GNU GPLv3 or later license in the hope it will be useful.

References

This is what we used in Kendricks Suiron project. Checkout my detailed blog post showing this in action! (link)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].