• Home
  • Projects
  • Bio
    • Hpsaturn photo

      Hpsaturn

    • About
    • Twitter
    • Github
    • StackOverflow
    • Hackaday
    • LinkedIn
    • Instagram
    • Youtube
  • Posts
    • All Posts
    • All Tags

Self Balancing Robot

03 Apr 2016

Reading time ~1 minute

Self Balancing Robot

Source code: Github

Initial technologies and hardware:
  • Base CPU: Teensy32
  • Comm and BUS network: ESP8266
  • Balancing Sensors: IMU6050
  • Motor Driver: L298N
  • Motors: Basic DC Motors
  • Tools and software PlatformIO framework
Alpha Test Boards:
  • NodeMCU 1.0 (ESP-12E Module) (ESP8266)
  • Teensy32
  • RaspberryPi 3

Objectives:

  • Two PID stages (accelerometer and pitch control)
  • ESP8266 basic control (MiniOSC)
  • ESP8266 to RaspberryPi Wifi interface via CoAP or OSC protocols (Bus data, control, others)
  • RaspberryPi+Camera+ServoMotors (image processing via OpenCV)
  • Suggest others features!

Current main config:

Teensy32 (Arduino framework)

[env:teensy31]
platform = teensy
framework = arduino
board = teensy31
targets = upload
#build_flags = -DTEENSY31 -UUSB_SERIAL -DUSB_SERIAL_HID

Firmware Installation

Current firmware (Teensy32)

First install PlatformIO via pip

$ pip install -U platformio 

or via IDE. More info in the oficial documentation: http://docs.platformio.org/en/latest/installation.html

Compile project and deploy

$ platformio run

Firmware v1.0 for Arduino ProMini

From main source and previous steps

$ git checkout tags/v1.0-ArduinoProMini
$ platformio run --target clean
$ platformio run

Schematics

Initial basic robot (ArduinoProMini)

(Alpha version, click for last schematic update)

Click for last schematic update

Teensy32 and ESP8266

(cooming soon)



ESP32PlatformIOArduinoTeensy32C++IoTOpenHardware Share Tweet +1