Skip to content

pawelkowalak/berrybot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

RaspberryPi bot steered remotely via GRPC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published