Close

It works!

A project log for The Dark Side Challenge

A DIY Arduino robot project for teaching kids how to combine machine autonomy with human decision points. And programming.

nicolas-guilbertNicolas Guilbert 02/26/2019 at 17:190 Comments

Project status: after quite a bit of effort, the full stack now works! We have a rover that can be remote-controlled from anywhere in the world and send sensor-data back (including photos). The rover reacts to a,w,s,d commands for direction, m makes it scan the distances in front of it (servo + ultrasound sensor), an p makes it take a picture.

It's been a bumpy ride getting the Arduino Uno+ESP8266 (clone) to work. We tried programming the ESP directly but ended up using the stock firmware and have the Uno communicate with it via a SoftwareSerial interface. Tried several libraries but ended up writing our own (150 lines). The library (EspSerial.h, see the gitlab repo) supports http GET'ing and POST'ing files.

Getting the ArduCam to play nicely wasn't completely hassle-free either, and we ended up writing our own ArduCamStream.h (180 lines).

The server is a simple Spring Boot REST-based device (8kb when zipped) using the file system to store commands and measurements.

Next steps: 

* field test the rover

* tidy all the cables, 3D print some cable holders?

* we have 3 pins left for say SPI devices, come up with something to use them for

* create an autonomous mode where the rover navigates on its own for some time, involve the kids in that.

* consider using long polling / MQTT

* find out if we can use bit rates higher than 9600 bauds, possibly use the hardware Serial, making debugging more difficult.

Discussions