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

Hardware Libero - Linux Day 2007

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