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."

This two-wheeled robot has a BeagleBone AI-64 brain and a front-facing IMX219 camera for first-person video streaming. (📷: Hypnotriod)

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."

The robot is coded in Go, which the maker says was a "quite positive" experience on the single-board computer. (📷: Hypnotriod)

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.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles