concurrency.cc OSHUG #3

1,553 views
1,449 views

Published on

The slides we presented at the third meeting of the Open Source Hardware Users Group in London on the 1st of July 2010.

More details about the event at: http://oshug.org/event/3
More details about the Concurrency Project at: http://concurrency.cc

Contains slides from Adam Sampson (http://offog.org)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,553
On SlideShare
0
From Embeds
0
Number of Embeds
504
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

concurrency.cc OSHUG #3

  1. 1. concurrency.cc Hardware Projects  Omer Kilic  University of Kent (Ack to: Matt Jadud, Christian Jacobsen, Adam Sampson)
  2. 2. Arduino is great! Open Source Cross Platform Cheap, flexible, easily available Abundant projects/articles/howtos Standard tools across a range of boards
  3. 3. A great tool for... Education Hacking/Prototyping
  4. 4. We discussed... and discussed...
  5. 5. The Concurrency Board Developed by Omer Kilic, based on the Arduino  Duemilanove Reference Design and inspired by many of  the Freeduino clones.
  6. 6. A family shot
  7. 7. The Cardboarduino Developed by Matt Jadud, based on the  PAPERduino by Guilherme Martins.
  8. 8. Photo by Matt Jadud
  9. 9. Photo by Matt Jadud
  10. 10. Interested? Design files will be on the web site real soon! http://concurrency.cc/hardware/ Join our mailing list: http://concurrency.cc/docs/mailinglists
  11. 11. Plumbing the Arduino Adam Sampson University of Kent (and a cast of thousands, including Matt Jadud,  Christian Jacobsen, Omer Kilic, Carl Ritson...)
  12. 12. A brief history lesson ● In the 1980s, INMOS created the Transputer ● … and an unusual programming language, called occam ● Further developed at Kent in the 1990s and 2000s: occam-pi ● Here's what it looks like...
  13. 13. C++: doThing(); doOtherThing(); occam: SEQ doThing() doOtherThing()
  14. 14. PROC main () WHILE TRUE SEQ digitalWrite (13, HIGH) delay (200) digitalWrite (13, LOW) delay (200) :
  15. 15. PROC blink (VAL INT pin, period) WHILE TRUE SEQ digitalWrite (pin, HIGH) delay (period) digitalWrite (pin, LOW) delay (period) : PROC main () blink (13, 200) :
  16. 16. PROC main () blink (13, 200) :
  17. 17. occam: PAR x y C++: ??!?!!!?
  18. 18. PROC main () PAR blink (13, 300) blink (14, 500) :
  19. 19. This is a channel.
  20. 20. sender receiver
  21. 21. inputPin outputPin
  22. 22. inputPin invert outputPin
  23. 23. Concurrency in action ● We call this “process-oriented programming” ● Build your program out of little, isolated components, and connect them together ● Plumbing is a library of ready-made components (like inputPin, invert and blink) for the Arduino
  24. 24. 64 LEDs (well, 128, actually...)
  25. 25. One
  26. 26. How does that work? buffer buffer buffer ... buffer
  27. 27. How does that work? buffer buffer buffer ... buffer column column column ... column
  28. 28. How does that work? black. source buffer buffer buffer ... buffer hole column column column ... column
  29. 29. Distributed embedded system black. source buffer buffer buffer ... buffer hole column column column ... column
  30. 30. First node source buffer buffer buffer ... buffer serial.tx column column column ... column
  31. 31. Other nodes serial.rx buffer buffer buffer ... buffer serial.tx column column column ... column
  32. 32. The RepRap ● X, Y and Z axes with steppers and endstops ● Print head with heater, temperature sensor and extruder motor ● Serial interface to accept commands from a host computer
  33. 33. Plumbing the RepRap heater thermostat temp. sensor motor x motor. motor motor. motor serial.port command.parser control motor. axis. y control control endstop endstop z endstop extruder
  34. 34. How do I learn more? ● Read the book! ● Available from our web site along with the software (all open source): http://concurrency.cc/ ● For more about occam-pi: http://occam-pi.org/ ● Thanks – any questions?

×