Hypnotriod's BeagleBone AI-64 Robot Has a Go Heart and a First-Person View
"The BeagleBone AI-64 is a good built powerful platform," the maker says. "But unfortunately it is not beginner-friendly."
Pseudonymous maker "Hypnotriod" has built a video-streaming remote-controllable robot car, based around the BeagleBoard.org BeagleBone AI-64 single-board computer (SBC) — and software written in Go.
"By choosing the BeagleBone AI-64 board I decided (I guess) to not follow the [NVIDIA] Jetson Nano/Raspberry Pi mainstream. Plus it was slightly cheaper than [the] Jetson," Hypnotriod explains of the choice of board driving the device. "I’m using the Waveshare UPS Module['s] 5V output for the BeagleBone AI-64 and 12V for the the L293D based 600mA motor driver. [A] 3.3v to 5v Logic Level Converter to connect four PWM [Pulse Width Modulation] pins to the driver. [And an] AX210 PCIe Wi-Fi module for wireless control."
The BeagleBone AI-64 is installed atop a two-wheel drive acrylic robot platform, powered by the motor driver. An Arducam IMX219 Camera Module is installed at the front, providing a first-person view — though getting it up and running wasn't straightforward. "It is possible to grab the camera picture with v4l2
from /dev/video*
and use it [in any] Linux program you want," Hypnotriod explains. "But the problem is that [the Sony] IMX219 sensor requires additional image signal processing to control the white balance, exposure, etc.
"TI’s DCC ISP [Image Signal Processor] files needed by the tiovxis
plugin are missing in the [BeagleBone's Linux] distro, [but] can be taken for example from TI J721E SDK and placed in [the] /opt/imaging
folder," the maker adds of the tricks required to get things up and running with a correct picture. "This knowledge came to me after a few weeks of digging the forums/documentation without having any clue what I’m looking for."
With the video streaming handled, Hypnotriod turned to a somewhat unusual choice of programming language for embedded projects: Go. "I can say that my experience with Go on [the] BeagleBone AI-64 is quite positive," the maker writes. "Ease of use, powerful out of the box web stack. Goroutines can be threaded similar to the Tasks in FreeRTOS. So [a] program can be divided into a set of independent modules running in parallel and communicating to each other through channels."
Hypnotriod has documented the project on Hackaday.io, with source code on GitHub under an unspecified license.