03/08/2019 at 16:17 •
03/05/2019 at 17:49 •
Field test near LA's coolest attraction!
03/01/2019 at 13:33 •
The first field test went quite well for a first try. The challenge consisted of finding the presentation screen during a conference. The rover started out under a chair in the room and the kids had to maneuver it into position to see the screen.
One dark side moment occurred when the access point inadvertently turned off and had to be reactivated.
The navigation process required some patience from the participants as the images currently take around 30 seconds to upload. Also, the rover on two occasions started behaving weirdly, turning around continuously, as if it had gotten interrupted while the motor pins were high.
The http GET that sends the distance measurement fails, a problem that can be "fixed" by disabling the camera-related code. That dependency is quite weird and might be pointing at a stack or heap overflow.
It might anyways be a good idea to get rid of the SoftwareSerial library and use the hardware serial bus between the ESP and the Arduino. That will make debugging via the serial interface impossible and it might anyways be a good idea to be able to do debugging via the http requests.
In summary, the kids found the challenge highly motivating and that was by far the most important.
02/26/2019 at 17:19 •
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.
* 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.