Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Raspberry Pi für Entwickler

Raspberry Pi für Entwickler

Slides von der Session auf der DWX2014

Marcus Ross

July 15, 2014
Tweet

More Decks by Marcus Ross

Other Decks in Technology

Transcript

  1. <<<  „Hi,  I´m  Marcus!“   h7p://about.me/marcus.ross   Historie:   • 

    Developer   •  Weltenwandler   •  Trainer  /  DevCoach   •  Unbequem-­‐Frager   •  Vater  
  2. Raspberry  Pi  für  Entwickler   •  notwendiges  zum  Starten  

    •  Rezepte  für  den  Servereinsatz   –  LAMP  Server   –  node.js   –  Ruby  on  Rails   •  Der  Java-­‐Mythos   •  Python  und  der  Pi   •  Hardware  Steuerung  per  GPIO   •  Der  eigene  Cluster  (Hadoop)  
  3. Raspberry  Pi   •  700  MHz  ARM(11)  Single  Core  

    •  Broadcom  VideoCore  IV  GPU  (1080p/MPEG4)   •  512  MB  RAM  (Modell  B)   •  100  MBit  Ethernet   •  HDMI  und  FBAS  Ausgang   •  2×  USB  2.0   •  3,5  Klinke  Audio   •  GPIO  Interface   •  GPU-­‐Treiber  (in  Arbeit)  
  4. Starter  Kit  –  Was  wird  gebraucht?   h@p://4.bp.blogspot.com/-­‐W9S3HizxW_E/UpA1xUeegtI/AAAAAAAAJzg/movAMd_c_tQ/s1600/Raspberry+Pi+Ulnmate+Starter+Kit.jpg   EDIMAX

     WiFi  à     mind.  16  GB     /  Class  10  à     USB-­‐Serial  Console  à   mind.  1  Ampere  à   <-­‐  Pi  Cobbler   <-­‐  Breadboard   <-­‐  HDMI   <-­‐  MicroUSB  
  5. Und  los...   •  Finger  weg  vom  Strom!   • 

    Bi@e  alles  vorher  verkabeln!  (HDMI)   •  Aktuelle  Version  von  raspbian.org  laden   •  Debian  Linux  Image  schreiben   $  sudo  dd        if=<version>-­‐wheezy-­‐raspbian.img      of=/dev/rdisk1  bs=1m   •  apt-­‐get  install  update  /  upgrade   •  Und  bei  WIFI...  
  6. EDIMAX  EW-­‐7811UN   •  Konfiguranon  unter:   sudo  vi  /etc/network/interfaces

      •  Achtung  ECO-­‐Mode!   sudo  vi  /etc/modprobe.d/8192cu.conf     options  8192cu  rtw_power_mgnt=0   rtw_enusbss=0  
  7. sudo  raspi-­‐config   •  Speicherverteilung   •  Expand  Filesystem  

    •  i18n  Sewngs   •  SSH   •  Kamera  Socket  (opnonal)   •  Firmware  Upgrade  (opnonal)  
  8. Das  LAMP  Rezept   •  Installieren   – sudo  apt-­‐get  install

     apache2   – sudo  apt-­‐get  install  mysql-­‐server   – sudo  apt-­‐get  install  php5   – sudo  apt-­‐get  install  php5-­‐mysql   •  Starten   – sudo  service  apache2  start  
  9. •  curl  h@p://nodejs.org/dist/v0.10.3/node-­‐ v0.10.3.tar.gz  |  tar  xvz   •  cd

     node-­‐v0.10.3   •  sudo  ./configure   •  sudo  make  (2h  Kaffee  trinken)   •  sudo  make  install   •  node  app.js   Rezept  
  10. RoR  Rezept   •  sudo  apt-­‐get  update  &&  sudo  apt-­‐get

     upgrade   •  sudo  apt-­‐get  install  -­‐y  git  curl  zlib1g-­‐dev   subversion  openssl  libreadline6-­‐dev  git-­‐core   zlib1g  libssl-­‐dev  libyaml-­‐dev  libsqlite3-­‐dev   sqlite3  libxml2-­‐dev  libxslt-­‐dev  autoconf   automake  libtool  bison   •  curl  -­‐L  get.rvm.io  |  bash  -­‐s  stable  -­‐-­‐rails  
  11. Jaein  –  Wirklich?   •  512MB  RAM  /  700  MHz

     –  Erwartung?   •  openJDK  –  ja,  viel  zu  langsam   •  Oracle  Java  7  –  schon  besser  (Okt  2013)   •  Oracle  Java  8  –  wirklich  besser!  (März  2014)   – apt-­‐get  install  oracle-­‐java8-­‐jdk  
  12. Die  Schlange  macht  das  Licht  an!   import  RPi.GPIO  as

     GPIO   from  time  import  sleep     GPIO.setmode(GPIO.BOARD)   GPIO.setup(25,  GPIO.OUT)       while  True:        GPIO.output(25,  True)      print  'LED  on'      sleep(1)      GPIO.output(25,  False)      print  'LED  off'      sleep(1)  
  13. Strippen  ziehen…   •  LED   •  Widerstand   • 

    2  Kabel   •  PIN  3  (GND)   •  PIN  22     (GPIO  25)  
  14. Das  Breadboard   •  Bus  Stripes   –  sind  über

     die  komple@e  Länge  des  Boards  verbunden   •  Terminal  Stripes   –  sind  immer  in  kleinen  Gruppen  vernkal  miteinander   verbunden,  aber  nie  horizontal  
  15. Cluster,  ja  und?   •  Gleichen  Vorgänge  wie  beim  HPC

      •  Verteiltes  Rechnen  spart  Zeit   •  Neue  Art  der  Programmierung   •  Es  macht  Spaß!  
  16. •  Ein  einfaches  Beispiel   – Wörter  zählen   •  Nimm

     einen  großen  Text,   zähle  was  am  häufigsten  vorkommt   •  In  der  Praxis   – z.B.  Log-­‐Auswertung  
  17. Die  „Magie“  von  Hadoop   •  Hadoop  verteilt  die  Daten

     mehrfach     im  Cluster  (HDFS)   •  Hadoop  verteilt  die  Arbeit  auf     viele  Rechner  (map/reduce)   •  Hadoop  delegiert  die  Arbeit  an   Rechner  die  bereits  die     notwendigen  Daten  für     den  nächsten  Job  haben  
  18. Beispiel   •  Frage:  Was  ist  das  meist  genutzte  Wort

     in   „Hamlet“  von  Shakespeare?  (Tip:  3.73  %)   •  Hadoop  verteilt  die  Seiten  des  Textes     an  jeden  Rechner   •  Jeder  Rechner  zählt  die  Wörter   in  seinen  Seiten   •  Hadoop  kombiniert  die  Teilergebnisse  und   gibt  das  höchste  Ergebnis  aus.   *Distribute   *Map   *Reduce   *the  
  19. Hallo  analoge  Welt!   •  Idee:  Imperial  Collage  Robonk  Society

      •  PIN  4  mit  etwas  Draht  verbinden   •  sudo  ./pifm  sound.wav  100.0   •  WAV  Format,  16bit  und  mono   WICHTIG:     Radio  ohne  Lizenz  ist  in  Deutschland  verboten!  
  20. DANKE!   Marcus  Ross  –  Zahlenhelfer  Consul\ng  -­‐  @zahlenhelfer  

    alle  Folien  auch  auf  www.speakerdeck.com/u/zahlenhelfer   #dwx14