Embedded Computing and Go
Christopher AgocsSouth Side Hackerspace: Chicago and Backstop Solutions GroupChicaGoLang, April 13 2015
What is embedded computing?
Loose definition <
Internet of Things
or:putting Computers on Stuff
Stuff with Computers:
Adding Sensors Plants Wine Bottles Mail Boxes
Adding Displays Digital Signage Clock that chimes when your bus is due
Adding Capability Robots, etc.
Why?
Why bother? Display information Expand capabilities Fun of it
Why Go? Dependency hell Awesome standard library Fun of it
Options
Arduino Raspberry Pi Beaglebone Black
Arduinos
Pros Tons of ‘em Dirt cheap Wildly good support
Cons Tons of ‘em Dirt cheap Storage
Arduinos
Varieties Uno Due Micro/Nano
Arduinos
Arduino: 32 KB
Go HelloWorld: 609KB
Arduinos
Why did I waste all that time talking about Arduinos?
Demo
192.168.2.118:9000
How it works
Computer
Arduino
Serial protocol “Fermata”
Some possibilities
Load level LEDs Server room temp monitor
Raspberry Pi
Good at displays Fewer GPIO pins Digital Signage HTPCs
Raspberry Pi styles
Raspberry Pi A B B+
Model 1 1 Core ARM V61 USB256 MB RAM
1 Core ARM V6512 MB RAM2 USB + Ethernet
1 Core ARM V61 GB RAM4 USB + Ethernet
Model 2 4 Core ARM V74 USB + Ethernet
Raspberry Pi’s Most Annoying Feature
Beaglebone Black
1 USB port More GPIO 1 GHz ARM processor 512 MB RAM 4 GB onboard storage!
Beaglebone Black
Better for developers Cloud9 Node
Beaglebone’s Most Annoying Feature
Angström Linux
Go powered telescope
Overview
Telescope Server
Stepper motor driver
Stepper motor driver
Pan
Tilt
WebcamControls
Image
HTTP GET and POST
PWM
USB
Bigger Picture
TelescopeAgocs.orgUser
VPNProto-CDN
Where am I now
Done Motor control▪ Left▪ Right▪ Down
Serving control page
Where am I now
Needs doing Motor control – Up Make motors faster Serve it on the ‘net
Where am I now
Needs figuring out Exposure control on web cam Capture web cam image Serve it▪ Mini-CDN?
In conclusion
Robots are cool Go is for more than just servers Hack on robots at the South Side
Hackerspace sshchicago.org