For this project I'm taking the Unihiker device and utilizing it as a remote control for my Adeept Omnidirectional robot. The robot comes with CircuitPython installed on the Banana Pi PicoW S3 it comes with so the installation process is pretty straightforward.
The code and images used here can be found in the following GitHub repository: https://github.com/Cosmic-Bee/unihiker-remote
Adeept hosts the code and tutorials for their vehicle here: https://www.adeept.com/learn/detail-76.html
When the project completes you'll have a working remote controller that can be further augmented as needed. This guide will walk you through this process.
The first step is to get your Banana Pi PicoW S3 setup to have the CircuitPython code. The majority of the libraries used for this project come as part of the omnidirectional car kit’s logic but a CircuitPython bundled library is needed as well.
If you reference the code only the code.py file from the repository will be used for car.
Depending upon the version of CircuitPython you used you may need either the 8.x or 9.x bundle. I used the 9.x bundle as I flashed that version of CircuitPython to the board.
Setup steps:
- Copy adafruit_ht16k33 to the drive’s lib folder- From Adeept’s code bundle for the car copy over the avoid_obstacles.py and BPI_PicoW_S3_Car.py. I placed them at the root folder of the project- Finally copy the code.py from the repository above to the drive
With those in place the setup process for the car is complete and we can move onto the Unihiker setup
For this step you can visit http://10.1.2.3 and visit the “Network Settings” tab for configuring the Unihiker. The SSID I had in the code is “BPI-PicoW-S3” with a password of “12345678”. You will need to scan after the access point has started and then connect via this form. It took me a few attempts to make the connection so retry if there is a failure. Once this is setup you will not need to visit this page again as it will connect to the access point going forward if available.
The next step is to upload the images and code.
The Unihiker getting started page has instructions for setting up the SSH connection.
With the SSH connection to the Unihiker ready you need only drag and drop the associated images folder from the code repository to get them on the device. These images include ones for each button, a background with the title, and a splash screen.
Like the images the unihiker_remote.py can be dragged over.
Once on the device you can get to the code (assuming it was placed in the root) by long pressing the side button to open the menu, selecting “2 - Run Programs”, selecting the “root” folder, and then selecting the program from within there.
With that set you can now use the Unihiker remote as a controller for the Adeept Omnidirectional car.
One could further improve this by adding sensor data to the remote controller, using a device with a camera to take photos from the robot and display them, and so on.
If interested I've gone into more detail about the associated code on my website for this project: https://www.cranberrygrape.com/mini-projects/unihiker-remote/
There is also a section about generating the images used for this project with the help of ChatGPT.