Linux Android e Internet of Things ITIS G






























- Slides: 30
Linux, Android e Internet of Things ITIS G. Galilei - San Secondo (PR)
1 La GPIO della RPi Come interagire con l’I/O della Raspberry PI
La GPIO
La GPIO OUTPUT Un pin può essere impostato via software. L’uscita può variare in digitale tra 0 e 3. 3 V (NON 5 V COME ARDUINO) INPUT Un pin può mettersi in «ascolto» sulla base della tensione applicata a tale ingresso. È sempre digitale e può variare massimo tra 0 e 3. 3 V (ATTENZIONE A NON APPLICARE TENSIONI MAGGIORI) All the pins have 3. 3 V logic levels and are not 5 V-safe so the output levels are 0 -3. 3 V and the inputs should not be higher than 3. 3 V. If you want to connect a 5 V output to a Pi input, use a level shifter https: //learn. adafruit. com
La GPIO
Raspberry vs Arduino
Raspberry vs Arduino ARDUINO • • • Low level Micro ATMega 328, 16 MHz Controllo totale dell’hardware Task semplici e ben definiti No memoria di massa RASPBERRY • • • High level Piattaforma Linux-like Multitasking Presenza di memoria di massa Programmi complessi Possiamo utilizzare Raspberry per fare quello che si può fare con Arduino, ma serve alla mia applicazione cosi tanta memoria e capacità di calcolo?
La GPIO - File Prima di iniziare diventare amministratori sudo su Collegare un LED, usando una resistenza, tra il pin GPIO 11 e GND Se scrivete sul file. /export nella cartella /sys/class/gpio, il sistema crea un file per gestire direttamente il GPIO desiderato. Nel nostro caso vogliamo pilotare il GPIO 11 per accendere e spegnere il LED. echo 11 >> /sys/class/gpio/export Configurare la direzione del pin (In/Out) echo out >> /sys/class/gpio 11/direction
La GPIO - File TURN OFF echo 0 >> /sys/class/gpio 11/value TURN ON echo 1 >> /sys/class/gpio 11/value Per eliminare il GPIO creato echo 11 >> /sys/class/gpio/unexport
La GPIO - Wiring. PI
La GPIO – Installazione della libreria Wiring. PI Il compilatore gcc è già preinstallato su Raspberry Pi. Occorrerà solo installare la libreria Wiring. Pi. Dal Raspberry (connesso a Internet) lanciare in successione i seguenti comandi: pi@raspberrypi ~ ~ $ sudo apt-get install git-core $ sudo apt-get update $ sudo apt-get upgrade $ git clone git: //git. drogon. net/wiring. Pi Quindi: pi@raspberrypi ~ $ cd wiring. Pi pi@raspberrypi ~/wiring. Pi $ git pull origin Infine, senza spostarsi dalla directory wiring. Pi: pi@raspberrypi ~/wiring. Pi $. /build
La GPIO – Utilizzo della libreria Wiring. PI La compilazione e il linking possono essere fatti specificando con -l la libreria wiring. Pi (prestare attenzione alle maiuscole/minuscole). Supponendo che il nostro programma si chiami blink. c: gcc -o blink. c -lwiring. Pi Nel caso occorra compilare anche una libreria e collegarla al programma principale, bisognerà specificarla dopo il nome del sorgente principale. Per esempio, supponendo che il file di implementazione della libreria si chiami debounce. c, si avrà: gcc -o blink. c debounce. c -lwiring. Pi
La GPIO – Utilizzo della libreria Wiring. PI #include <wiring. Pi. h> int main (void) { wiring. Pi. Setup () ; pin. Mode (0, OUTPUT) ; for (; ; ) { digital. Write (0, HIGH) ; delay (500) ; digital. Write (0, LOW) ; delay (500) ; } return 0 ; } gcc -Wall -o blink. c -lwiring. Pi sudo. /blink https: //github. com/Wi ring. Pi/Wiring. Pi/blob/ master/gpio. 1
La GPIO – Utilizzo della libreria Wiring. PI L'accesso alla funzione wiring. Pi. Setup() richiede privilegi di root. Quindi qualsiasi programma che sia stato scritto usando wiring. Pi. Setup() deve essere lanciato mediante sudo : pi@raspberrypi ~ $ sudo. /blink E' sempre possibile eseguire il programma in background, ignorando però i messaggi di errore e sulla console (come eventuali printf() presenti nel programma. pi@raspberrypi ~ $ sudo. /blink > /dev/null & L'esecuzione del programma può essere terminata resettando il sistema oppure da tastiera (mediante il classico Ctrl-C) o ancora, se il relativo processo è in background, con sudo killall -9 , che, nel caso dell'esempio in questione, diventa: pi@raspberrypi ~ $ sudo killall -9 blink
La GPIO - Java ed Eclipse http: //pi 4 j. com/install. html http: //tsvetan-stoyanov. github. io/launchpi/
La GPIO - Web. IOPi • • sudo apt-get update sudo apt-get install gcc-4. 7 sudo apt-get install python 3. 2 wget http: //webiopi. googlecode. com/files/Web. IOPi-0. 6. 0. tar. gz tar xzvf Web. IOPi-0. 6. 0. tar cd Web. IOPi-0. 6. 0 sudo. /setup. sh L’avvio del server è semplicissimo, eseguire come root il seguente comando: sudo /etc/init. d/webiopi start Collegarsi da remoto a webiopi http: //[RASPBERRY IP]: 8000
2 Esempi di utilizzo Alcuni esempi su come utilizzare la GPIO
Blink
Led & Button
Sensore di temperatura
Rele
Comunicazione seriale con XBEE ESEMPIO: http: //www. brettdangerfield. com/post/raspberrypi_tempature_monitor_project/
3 Raspberry e Arduino Come interagire tra la Raspberry e Arduino
Gertduino Il Gertduino è un Raspberry Pi-add-on che offre le stesse funzionalità di un Arduino Uno, ma con alcune caratteristiche extra. La scheda Gertduino presenta un microcontrollore Atmega 328 e dispone di connettori che sono 100 % Arduino Uno compatibile. Contiene anche il pulsante di reset, 2 pulsanti e 6 LED. La scheda Gerduino ha anche un convertitore di livello RS 232 che permette di convertire i segnali formano un UART per le tensioni standard RS 232. Questo permette la comunicazione diretta con la RPi http: //www. element 14. com/community/docs/DOC-64326 Per configurarla: https: //projects. drogon. net/raspberry-pi/gertduino/atmega-setup/
4 Il modulo Camera Come utilizzare la camera sulla RPi
RPi 007!! Camera
RPi 007!! Abilitare da RASPI-CONFIG il modulo camera!! HOW TO TAKE A PHOTO WITH YOUR RASPBERRY PI CAMERA MODULE 1. "raspistill" is a command line application that allows you to capture images with your camera module. Below is an example of this command in use. 2. To capture an image in jpeg format, type "raspistill -o image. jpg" at the prompt, where "image" is the name of your image HOW TO RECORD A VIDEO WITH YOUR RASPBERRY PI CAMERA MODULE 1. "raspivid" is a command line application that allows you to capture video with your camera module. Below is an example of this command in use. 2. To capture a 10 second video with your Raspberry Pi camera module, run "raspivid -o video. h 264 t 10000" at the prompt, where "video" is the name of your video and "10000" is the number of milliseconds SHELL PYTHON
Raspberry Camera application Apertura di un forziere con face recognition https: //learn. adafruit. com/downloads/pdf/raspberry-pi-face-recognition-treasure-box. pdf Camera di sorveglianza http: //www. instructables. com/id/Raspberry-Pi-as-low-cost-HD-surveillance-camera/
Thanks! ANY QUESTIONS? You can find me at: mirko. mancin@gmail. com
CREDITS Special thanks to all the people who made and released these awesome resources for free: ▪ Busy Icons by Olly Holovchenko ▪ Presentation template by Slides. Carnival ▪ Photographs by Unsplash ▪ Source slide ▪ http: //wasnlab. tlc. unipr. it This template is free to use under Creative Commons Attribution license. If you use the graphic assets (photos, icons and typographies) provided with this presentation you must keep the Credits slide.






























