Raspberry Pi for IPRUG
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Raspberry Pi for IPRUG

on

  • 1,115 views

A short talk about the Raspberry Pi for the Ipswich Ruby User Group

A short talk about the Raspberry Pi for the Ipswich Ruby User Group

Statistics

Views

Total Views
1,115
Views on SlideShare
511
Embed Views
604

Actions

Likes
0
Downloads
14
Comments
0

6 Embeds 604

http://raspberryalphaomega.org.uk 380
http://iprug.org 180
http://localhost 22
http://abtasty.com 19
http://iprug.github.io 2
http://131.253.14.66 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Raspberry Pi for IPRUG Presentation Transcript

  • 1. Raspberry Pi Frank Carver frankcarver.meraspberryalphaomega.org.uk
  • 2. • ARM1176 CPU @700MHz• Broadcom BCM2835 chipset & GPU• 512MB* RAM• USB, Ethernet, 1080p HDMI, audio• 8 GPIO pins + UART, SPI, 12C• Storage on SD/SDHC Card• Linux, RiscOS etc. or “bare metal”• About £25
  • 3. Arduino Uno
  • 4. • ATmega328 CPU @16MHz• No GPU• 32K Flash, 2K SRAM, 1K EEPROM• USB, no network or video• 14 GPIO pins, 6 analogue inputs• No storage• “Bare metal” cross-compile only• About £18
  • 5. Cheap Dell PC
  • 6. • Intel CPU @2.8GHz• Intel HD GPU• 2GB RAM• USB,Ethernet,SATA,HDMI,Wireless,…• No IO pins• 500GB hard drive, DVD• Windows, Linux, etc.• About £300
  • 7. Software DevelopmentBare Metal Linux• Assembler • Pretty much anything• Cross-compiled C/C+ • Python + etc. • Ruby• Hand-built languages • Java • perl • PHP • bash • …
  • 8. So let’s do some Ruby
  • 9. So let’s do some Ruby Step 1: installation
  • 10. So let’s do some Ruby Step 1: installation• sudo apt-get install ruby1.9.3 That wasn’t so hard 
  • 11. Ruby talks to hardwareFile.open(/sys/class/gpio/export, w) { |file| file.write("17") }File.open(/sys/class/gpio/gpio17/direction, w) { |file| file.write("out") }File.open(/sys/class/gpio/export, w) { |file| file.write("27") }File.open(/sys/class/gpio/gpio27/direction, w) { |file| file.write("out") }File.open(/sys/class/gpio/export, w) { |file| file.write("22") }File.open(/sys/class/gpio/gpio22/direction, w) { |file| file.write("out") }beginwhile true do for r in 0..1 File.open(/sys/class/gpio/gpio17/value, w) { |file| file.write("#{r}") } for g in 0..1 File.open(/sys/class/gpio/gpio27/value, w) { |file| file.write("#{g}") } for b in 0..1 File.open(/sys/class/gpio/gpio22/value, w) { |file| file.write("#{b}") } sleep 1 end end endendrescue SignalException File.open(/sys/class/gpio/gpio17/value, w) { |file| file.write("0") } File.open(/sys/class/gpio/gpio27/value, w) { |file| file.write("0") } File.open(/sys/class/gpio/gpio22/value, w) { |file| file.write("0") }end
  • 12. A nicer wayrequire "pi_piper"pin_r = PiPiper::Pin.new(:pin => 17, :direction => :out)pin_g = PiPiper::Pin.new(:pin => 27, :direction => :out)pin_b = PiPiper::Pin.new(:pin => 22, :direction => :out)beginwhile true do for r in 0..1 if r==1 ; pin_r.on else pin_r.off end for g in 0..1 if g==1 ; pin_g.on else pin_g.off end for b in 0..1 if b==1 ; pin_b.on else pin_b.off end sleep 1 end end endendrescue SignalException pin_r.off pin_g.off pin_b.offend
  • 13. Another wayrequire "wiringpi"io = WiringPi::GPIO.new(WPI_MODE_GPIO)beginwhile true do for r in 0..1 io.write(17,r) for g in 0..1 io.write(27,g) for b in 0..1 io.write(22,b) sleep 1 end end endendrescue SignalException io.write(17,0) io.write(27,0) io.write(22,0)end
  • 14. Inputrequire pi_piperinclude PiPiperwatch :pin => 23 do puts "Pin changed from #{last_value} to #{value}"end#Orafter :pin => 23, :goes => :high do puts "Button pressed"endPiPiper.wait
  • 15. So what makes it special?
  • 16. Raspberry Piis the gateway drug to microelectronics
  • 17. More Fun – Ruby USB• wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb- 1.0.9/libusb-1.0.9.tar.bz2• tar xjf libusb-1.0.9.tar.bz2• cd libusb-1.0.9• ./configure• make• sudo make install• sudo apt-get install libusb-1.0-0-dev• sudo gem install libusb