Making the menu start when the Pi starts
You now have a menu system launching robot behaviors. Using SSH to log in is great to debug, see problems, and fix them. However, when you want to demonstrate your robot, a SSH session will become inconvenient.
The ideal is to turn on the robot, wait for a light to come on, then point your phone browser at it to control it.
We are going to do two things to make this useful, as follows:
- Use an LED to indicate that it's ready (in menu mode) to allow the robot to tell us before our phone has linked to the page
- Use
systemd
to automatically start the menu Flask server when we turn on the robot
Let's get stuck in with the lights.
Adding lights to the menu server
We won't want the whole robot class loaded in our menu, but it can use the lights to indicate our robot is now ready. We will import the LED system, turn it on as the server starts, and then turn it off/release it when the first /run
request arrives...