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.
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.