Skip to content

Livestream a web-programmable Arduino board to multiple programmers - useful for classes, art projects, and getting to know Arduino.

Notifications You must be signed in to change notification settings

mapmeld/CrowdBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

CrowdBot Readme

CrowdBot makes an Arduino connected to your computer available for programming over the internet.

Use cases:
- A teacher can set up an Arduino board for multiple students to share and run their programs
- Students in online classes can learn to program on an Arduino before investing in the full kit
- A public art project, similar to the programmable lights being produced for the Oakland Bay Bridge http://www.ledinside.com/node/14357
- A Kickstarter project could demo their working Arduino shield to encourage users to build one into their own projects
- A university-level class could observe the LEDs lit by several different programs and work to determine which logic gates are used

Three main components:
1) appengine-server
--- a simple page to watch a live stream and datastream of the Arduino
--- a simple form and database program to store users' sketches
--- an API for the CrowdBot host
2) crowdbot-host
--- a script which periodically scans for new sketches on the appengine-server
--- scripts to compile and upload Arduino sketches from a command line
--- PySerial library to livestream data from the Arduino
3) the Arduino Uno with an ATMEGA328P
--- hook your Arduino up to a cool project!

Configuring CrowdBot on Windows:
1) Download and install an older version of Arduino (v20 confirmed working) and Python (2.6 or 2.7 recommended)

2) Install PySerial ( pyserial.sourceforge.net ) by running python appengine-host/pyserial-2.6/setup.py install

3) Set crowdbot-host/CrowdBotBase.py to point to the correct USB port, directories, and AppEngine URL

4) Add Twitter App information and your admin e-mail address to appengine-server/crowdbotconfig.py

5) Open the Control Panel and search for system environment variables. These parameters are recommended for an Arduino Uno with an ATMEGA328 processor:
ARDUINO_BURNRATE	115200
ARDUINO_COMPORT		COM2	(depends on your system - open the Arduino program and use the drop-down to determine COM port - reassign if number is COM10 or higher)
ARDUINO_FCPU		16000000
ARDUINO_MCU			atmega328p
ARDUINO_PATH		C:\Users\ndoiron\Arduino\  (depends on your system)
ARDUINO_PROGRAMMER	stk500

These values come from piecing together information from multiple sources.  If you are not using an Arduino Uno with an ATMEGA328 processor, consult these pages:
The original program: http://www.arduino.cc/playground/Code/WindowsCommandLine
Users' updates: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1168127321;start=all
Update for the Uno: http://www.andrewvos.com/2011/04/29/how-to-upload-code-to-an-arduino-uno-from-the-command-line/

Configuring CrowdBot on Mac OSX:
1) Download and install an older version of Arduino (v20 confirmed working) and Python (2.6 or 2.7 recommended)

2) Install Xcode from Apple's developer site. You will need an Apple developer account and an iTunes account (both are free, neither require a credit card)

3) Download scons from http://www.scons.org/ and run sudo python setup.py inside its directory

4) Use git to download arscons http://code.google.com/p/arscons/source/checkout and place all its files in your Documents/CrowdBot directory

5) Add two lines to arscons's file named SConstruct based on your Arduino (these are for Uno ATMEGA328P):
F_CPU = '16000000' after F_CPU = ARGUMENTS...
UPLOAD_SPEED = '115200' after UPLOAD_SPEED = getBoardConf...

6) Set crowdbot-host/MacCrowdBot.py to point to your USB port, directories, and AppEngine URL

7) Add Twitter App information and your admin e-mail address to appengine-server/crowdbotconfig.py

Wish list:
- Use the YouTube Data API to upload and annotate a video of each program running
- E-mail or Tweet video to the programmer of the sketch
- Documentation for Linux host machines

About

Livestream a web-programmable Arduino board to multiple programmers - useful for classes, art projects, and getting to know Arduino.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published