Hardware Libero - Linux Day 2007

2,459 views

Published on

Presentation on Free Hardware (Open Source Hardware) held at Turin Linux Day 2007

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

  • Be the first to like this

No Downloads
Views
Total views
2,459
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
59
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hardware Libero - Linux Day 2007

  1. 1. Linux Day 2007 <ul><li>Hardware Libero </li></ul><ul><li>GNU/Linux User Group Torino </li></ul><ul><li>(info@glugto.org) </li></ul>
  2. 2. Indice <ul><li>Introduzione al Hardware Libero </li></ul><ul><li>I microcontrollori AVR e il loro utilizzo con GNU/Linux </li></ul><ul><li>Utilizzo di un server GNU/Linux + Java </li></ul><ul><li>Presentazione dei progetti Open WebServo e zAutomation </li></ul><ul><li>Demo </li></ul><ul><li>Progetti futuri </li></ul>
  3. 3. Hardware Open Source <ul><li>Il Personal Computer (PC) ha iniziato la sua diffusione capillare nel mondo intorno agli anni 80, entrando negli uffici e nelle case, dopo che la IBM ha “aperto i sorgenti” (schemi elettronici, specifiche elettriche, meccaniche, etc.) del PC progettato da lei. </li></ul><ul><li>La Sun Microsystems ha rilasciato i sorgenti dei microprocessori UltraSPARC T1 e T2 sotto il nome di OpenSPARC: http://www.opensparc.net/ </li></ul><ul><li>Un'azienda italiana (Simply RISC) ha creato un microprocessore a singolo-core, che deriva da OpenSPARC a otto-core, destinato a dispositivi mobili. </li></ul><ul><li>Stanno sorgendo molti siti per la condivisione di progetti hardware: </li></ul><ul><ul><li>http://opencircuits.com (player MP3, microscopi atomici, PDA, cellulari, etc.) </li></ul></ul><ul><ul><li>http://opencores.org/ (CPU, VGA, controller, schede, memorie, etc. su FPGA) </li></ul></ul><ul><ul><li>http://openmoko.org (cellulare con sistema GNU/Linux) </li></ul></ul><ul><li>In Italia e' nata la Free Hardware Foundation: http://fhf.it/ </li></ul>
  4. 4. Microcontrollori AVR <ul><li>Gli AVR sono microcontrollori RISC a 8 bit che contengono: </li></ul><ul><ul><li>CPU </li></ul></ul><ul><ul><li>RAM </li></ul></ul><ul><ul><li>EEPROM </li></ul></ul><ul><ul><li>Flash memory (per i programmi) </li></ul></ul><ul><ul><li>UART (comunicazioni seriali) </li></ul></ul><ul><ul><li>Timers/Counters/PWM </li></ul></ul><ul><ul><li>Convertitori A/D </li></ul></ul><ul><ul><li>I2C, etc. </li></ul></ul><ul><li>Costano poco (circa 3 euro) </li></ul><ul><li>Programmabili in assembler, C </li></ul><ul><li>Ottima comunita': http://avrwiki.com , http://avrfreaks.net/ </li></ul><ul><li>L'architettura AVR e' supportata da GNU/Linux (avr-binutils, avr-gcc, avr-libc) </li></ul>
  5. 5. Sviluppo sotto GNU/Linux <ul><li>Tutorials: </li></ul><ul><ul><li>http://www.linuxfocus.org/English/November2004/article352.shtml </li></ul></ul><ul><ul><li>http://avrwiki.com/wiki/index.php/Building_AVR_GCC </li></ul></ul><ul><li>Esiste uno script (build_avr_toolchain.sh) che installa automaticamente i seguenti programmi su una macchina GNU/Linux basata su Debian: </li></ul><ul><ul><li>Binutils (2.17) </li></ul></ul><ul><ul><li>avr-gcc (4.2 Snapshot) </li></ul></ul><ul><ul><li>Avr-libc (1.4.4) </li></ul></ul><ul><ul><li>Dfu-programmer (0.3.0) </li></ul></ul><ul><li>Esiste un debugger grafico: gdb-avr + ddd (data display debugger) </li></ul><ul><li>Esiste un simulatore di AVR: simulavr </li></ul><ul><li>Esistono vari programmi per flashare (programmare) i chip: dfu, uisp, avrdude, etc. </li></ul><ul><li>Esiste uClinux: versione di Linux per sistemi senza MMU (es. microcontrollori) </li></ul>
  6. 6. Server GNU/Linux + Java <ul><li>Perche' Java ? </li></ul><ul><ul><li>Indipendente dalla piattaforma hardware e software (basta che esista la JVM) </li></ul></ul><ul><ul><li>Relativamente facile da programmare (piu' facile di C e C++) </li></ul></ul><ul><ul><li>Stabile, sicuro, robusto </li></ul></ul><ul><ul><li>Open source </li></ul></ul><ul><li>Programmi utilizzati sul server GNU/Linux: </li></ul><ul><ul><li>Java Runtime Environment (JRE) con JavaComm (oppure RXTX) </li></ul></ul><ul><ul><li>Tomcat (servlet container) </li></ul></ul><ul><ul><li>Apache (web server) </li></ul></ul><ul><ul><li>webcam_server (oppure motion) </li></ul></ul>
  7. 7. Open WebServo <ul><li>Il progetto Open WebServo ha lo scopo di permettere il controllo remoto di servo motori attraverso internet, con un semplice web browser. </li></ul><ul><li>E' rilasciato con licenza open source GPL su SourceForge (openwebservo) </li></ul><ul><li>E' costituito da 3 livelli: </li></ul><ul><ul><li>Hardware: AVR, seriale, servomotori </li></ul></ul><ul><ul><li>Firmware: linguaggio C </li></ul></ul><ul><ul><li>Software: Java, Tomcat </li></ul></ul><ul><li>Il software e' multipiattaforma (Java) e puo' quindi essere utilizzato su sistemi GNU/Linux, BSD-like, Mac OS X, Solaris, Windows, etc. </li></ul><ul><li>Esempio di applicazione: controllo remoto di una webcam (sistema di video sorveglianza) con i comandi di pan e tilt via web browser. </li></ul><ul><li>Evoluzioni future del progetto: utilizzo di una FOX board come controllore dei servo motori, via seriale oppure sviluppando un modulo ad-hoc per il kernel Linux, che permette di eliminare la scheda esterna </li></ul>
  8. 8. zAutomation <ul><li>Il progetto zAutomation ha lo scopo di permettere il controllo remoto di attuatori e sensori nell'ambito della domotica e robotica, attraverso l'utilizzo di comunicazioni wireless ZigBee. </li></ul><ul><li>E' rilasciato con licenza open source GPL su SourceForge (zautomation) </li></ul><ul><li>E' costituito da 3 livelli: </li></ul><ul><ul><li>Hardware: AVR, ZigBee, rele', sensori (es. temperatura, umidita') </li></ul></ul><ul><ul><li>Firmware: linguaggio C </li></ul></ul><ul><ul><li>Software: Java, Tomcat, Python </li></ul></ul><ul><li>Il software e' multipiattaforma (Java o Python) e puo' quindi essere utilizzato su sistemi GNU/Linux, BSD-like, Mac OS X, Solaris, Windows, etc. </li></ul><ul><li>Esempi di applicazione: a) controllo remoto di una lampadina via web browser; b) monitoraggio della temperatura via web browser </li></ul><ul><li>Evoluzioni future del progetto: a) controllo remoto di un robot; b) controllo remoto del consumo elettrico; c) controllo remoto dei punti luce di un appartamento </li></ul>
  9. 9. Demo <ul><li>Telecamera remota web-comandata: </li></ul><ul><ul><li>widget per Opera browser: http://widgets.opera.com/widget/6455 </li></ul></ul><ul><ul><li>widget per Yahoo: http://widgets.yahoo.com/gallery/view.php?widget=41802 </li></ul></ul><ul><li>Lampadina remota web-comandata: </li></ul><ul><ul><li>http://dimingo.homelinux.com:8080/zsocket </li></ul></ul><ul><li>Sensore di temperatura remoto con lettura via web on-demand: </li></ul><ul><ul><li>http://dimingo.homelinux.com:8080/sod </li></ul></ul>
  10. 10. Prossimi Progetti <ul><li>Server Lemote Fulong </li></ul><ul><ul><li>http://www.linux-mips.org/wiki/Fulong </li></ul></ul><ul><li>Server FOX </li></ul><ul><ul><li>http://acmesystems.it/ </li></ul></ul><ul><li>zRobot </li></ul><ul><ul><li>http://sourceforge.net/projects/zautomation </li></ul></ul><ul><li>Lego Mindstorm </li></ul><ul><ul><li>http://mindstorms.lego.com/ </li></ul></ul><ul><ul><li>LEJOS: http://lejos.sourceforge.net/ </li></ul></ul><ul><li>SunSPOT </li></ul><ul><ul><li>http://www.sunspotworld.com/ </li></ul></ul>

×