berrybot

command module
v0.0.0-...-fd62092 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2016 License: MIT Imports: 24 Imported by: 0

README

Report CircleCI

BerryBot

BerryBot is a simple driving robot based on Raspberry PI and DC motors. You can control it over WiFi using mobile application that connects to server process running on RPI. Both app and server are implemented in Go, using gRPC for communication.

Hardware

Chassis: I'm using chassis below which come with 2 DC motors already. Good enough for your first robot.

Raspberry PI (I'm using rev 2, but 3 should be better due to built-in WiFi)

DC motors controller. To connect DC motors to RPI, you need a controller with separate power source. You can't simply power up those motors directly from RPI. I'm using controller exactly as linked below (sorry, no English source for this), but you can find multiple alternatives that work exactly the same way.

Battery pack is needed to give enough power for DC motors. I've tried using provided chassis for AA batteries, but motors barely moved. I'm using 1300mAh, 7.4V LiPo pack now and it lasts for 30mins of fun or few hours of idling.

Distance sensors. I'm using ultrasonic sensors, because they are cheap, but operating them is quite problematic (and require logic levels converter below).

Logic levels converter is needed to connect ultrasonic distance sensors (using 5V) above to Raspberry Pi (using 3.3V). You can burn your RPI without it.

Software

Generate proto:

protoc -I ./proto/ ./proto/steering.proto --go_out=plugins=grpc:proto

Install and run mobile app locally:

go install github.com/viru/berrybot && berrybot

Build and install mobile app on connected Android device:

gomobile install github.com/viru/berrybot/berrycli

Build and install mobile app on connected iOS device:

gomobile build -target=ios github.com/viru/berrybot
ios-deploy -b berrybot.app

Build server and upload to your RPI:

GOOS=linux GOARCH=arm go build -o build/bbserver ./bbserver/ && scp build/bbserver pi:

Run server on your RPI using sudo, because using GPIO pins requires it.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package steering is a generated protocol buffer package.
Package steering is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL