Connecting Hardware to the Web with the BeagleBone

download Connecting Hardware to the Web with the BeagleBone

If you can't read please download the document

Transcript of Connecting Hardware to the Web with the BeagleBone

Connecting Hardware to the Web with the BeagleBone

Frank HunlethTwitter: @fhunlethPi Masters Meetup 11/21/13

What!?!?! This isn't a Raspberry Pi?

But, they're both low cost Linux-based ARM platforms used and supported by many people just like us

Nuts & Bolts

Fast1 GHz ARM Cortex A8

Two 200 MHz microcontrollers (super cool!)

Lots of memory512 MB DRAM

2 GB Flash and MicroSD card slot

Connects to everythingEthernet, USB, HDMI

Tons of I/Os via the 2 46 pin headers

What You Need

Black vs. white Get the BeagleBone Black (BBB)

FTDI cable

Wired Ethernet*

4 GB+ MicroSD card

Memory card reader

5V power brick

Options!

Which OS?Angstrom Linux - default

Ubuntu Linux - lots of users

Buildroot - my favorite

Bare metal - OSs are for wimps

Which language?Javascript (node.js) - most support especially for new users

Python - lots of users, but not as popular as on the RPi

C/C++ - only option for some features

Assembly language - embedded microcontroller programming

Erlang - :-)

Connecting to the BeagleBone

Ethernetssh (user: root, password: root)

Webserver with docs and helpful links

Cloud9 editor at http://beaglebone:3000/

USB cableJust plug the USB cable into your PC for power

BeagleBone shows up as a network adapter

FTDI cableLooks like a serial port on your PC (115200 8N1)

Super helpful for debugging networking or boot issues

Cloud9

Use Firefox - not Chrome

BoneScript

Arduino-like library, but Javascript for Node.js

http://beagleboard.org/Support/BoneScript/

pinMode()digitalWrite()digitalRead()analogWrite()analogRead()readTextFile()writeTextFile()

pinMode() - set whether a pin is an input or outputdigitalWrite() - set a pin to high or lowdigitalRead() - read whether a pin is high or lowanalogWrite() - set the PWM period and durationanalogRead() - sample an ADCreadTextFile() - read a Linux kernel driver's sysfs file (or any other file)writeTextFile() - write to a sysfs file to interact with a Linux kernel driver

Demo Demo Demo

Demo Schematic

Code Walk-through

https://github.com/fhunleth/pimasters-bbb-demo

Going Further

BeagleBone capesTons of pre-made daughterboards available

Custom ones are not that hard to make!

BeagleBone microcontroller programmingReal-time logic

Assembly language (but not too hard)

NervesMy project for using the Erlang programming language to build embedded systems

http://nerves-project.org/

Connecting Hardware to the Web with the BeagleBone

Frank HunlethTwitter: @fhunlethPi Masters Meetup 11/21/13