Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Gabriele Guizzardi
油
際際滷 delle 8h di workshop su Raspberry Pi presso Warehouse Coworking Pesaro, 13/12/2014
際際滷s of 8h workshop about Raspberry Pi at Warehouse Coworking Pesaro, 13/12/2014
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Sardegna Ricerche
油
L'intervento di Paolo Paolucci durante l'Arduino Day, che si 竪 tenuto il 29 marzo 2014 presso il FabLab Sardegna Ricerche, nella sede di Pula del Parco scientifico e tecnologico della Sardegna.
Introduzione ad arduino e raspberry. Lezione svolta presso l'Universit degli studi di Parma durante il corso di sistemi di automazione. Con questa lezione si vogliono introdurre le due piattaforme e darne i contenuti essenziali per iniziarle ad usare. Inoltre vengono mostrati alcuni progetti da me svolti con questi due device.
In questo workshop esploriamo le potenzialit musicali della scheda Arduino e di alcuni suoi shield, come il Wave Shield ed il Music Shield. Potete trovare il video qui: http://youtu.be/p1weY_R2r64
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usogianlucaghettini
油
Una introduzione al Raspberry Pi
Presentazioni
Cosa 竪 Raspberry Pi
Storia
Caratteristiche
Specifiche CPU
Alimentazione & consumi
Arduino != Raspberry
Differenze
Applicazioni
Connettori
Video
Audio
GPIO
SD card
Ethernet
USB
GPIO
Configurazione dei pin
Porte native (I2C, SPI, UART)
wiringPi
Esempio
Getting started
Raspian OS
Installazione
Programmare il Raspberry
C (esempio)
Ma anche C++/PHP/Java
Scratch (esempio)
Bare metal programming
Casi d'uso (miei)
Solar panel power production meter
Chiosco eliminacode
Casi d'uso (trovati in rete)
Domotica
Mediacenter
Arcade machine Link
Saluti
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate pi湛 o meno tutte le funzionalit della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate pi湛 o meno tutte le funzionalit della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Rapida dimostrazione di quanto sia semplice automatizzare elettrodomestici casalinghi. In questo caso, comanderemo una macchina da caff竪 espresso via Android e Bluetooth.
Seminario tenutosi al Linux Day 2011 di Perugia.
E' un'introduzione iniziale al mondo della Physical Computing tramite Arduino. Il talk spiega i principi base di funzionamento del dispositivo ed 竪 corredato da un prototipo finale per la domotica.
Sorgenti o spiegazioni migliori possono essere fatte su richiesta via e-mail.
ArduinoCamp2012 竪 un evento che si 竪 svolto a Torino il 16 e 17 giugno 2012, presso Officine Arduino / FabLab, con lo scopo di coinvolgere diversi utenti della Comunit e semplici curiosi che hanno voglia di conoscere luniverso che ruota intorno ad Arduino: http://arduino.cc/playground/Italiano/ArduinoCampItalia2012
Questa 竪 la mia presentazione Pecha-Kucha, che riguarda un progetto che ha lo scopo di tracciare gli stati di lavoro o pausa di macchine di produzione, in un contesto di Lean Production.
Arduino, workshop di due giorni: materiale didattico.
ARGOMENTI:
- basi della programmazione di Arduino
- fondamenti di elettronica
- interagire con sistemi di input
- interagire con sistemi di output
- comunicazione seriale con processing
** E' possibile scaricare tutto il codice degli esercizi: https://github.com/hold3n/Arduino-Basic-Workshop
CC 2014 Daniele Iori e Ivan De Cesaris per Officine Giardino. Quest'opera e distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.
Analizziamo Arduino ai raggi X sia lato hardware che software, studiamo i suoi limiti e vediamo le soluzioni possibili. Lavoriamo con Arduino in modo professionale! Queste le slide del talk tenuto in Roma il 22-09-2015
Teaching within the course "The frontier of the Internet of Things", organized by "Ordine degli Ingegneri della Provincia di Salerno". Lecturing on the subject held "IoT and the Arduino platform" on October 29, 2016
- Introduzione
Cosa 竪 arduino?
Cosa non 竪 arduino?
Cosa si pu嘆 fare?
- Descrizione di Arduino
Breve introduzione storica e curiosit
Hardware generico di Arduino
I vari modelli di Arduino
Hardware di Arduino UNO
Hardware di Arduino Micro
- Segnali
Segnali digitali
Segnali analogici
Sensori ed attuatori
- Software
Il linguaggio di programmazione
Breve descrizione e curiosit
Le funzioni setup() e loop()
L'IDE
Setup e funzioni principali
Codice di esempio incluso nell'IDE
- Hello world: blink sketch (Esempio di output digitale)
L'obiettivo
I LED
Richiami di elettronica
Legge di Ohm
Le resistenze
La breadboard
La basetta millefori
Coding step by step
Test
Modifica di parametri e i relativi effetti
- Button sketch (Esempio di input digitale)
L'obiettivo
Il pulsante
Resistenza di pull-up
Coding
Test
- Comunicazione seriale
- Twilight switch sketch (Esempio di input analogico)
L'obiettivo
La fotoresistenza
Coding
Test
- Variable light sketch (Esempio di output analogico)
L'obiettivo
PWM (Pulse width modulation)
Coding
Test
- Cos'altro posso fare?
Gli shield
Buzzer
LED Infrarossi
Orologio RTC
Display
Moduli a caratteri
Moduli grafici
Motori
Semplici
Passo passo
RFID
Sensori ambientali
Temperatura e umidit
Rilevatore di movimento
Sonar
Wifi
Internet of things
Relay elettromagnetici
- Esempi di progetti curiosi trovati su internet
- Siti di riferimento
CodingGym - Lezione 3 - Corso Linux, Android e Internet of ThingsMirko Mancin
油
Corso frontale di 20 ore indirizzato a docenti di scuole superiori nel settore ICT. Il corso vuole essere una palestra (per questo CodingGym) di rafforzamento delle basi gi esistenti e di supporto per corsi futuri. Queste slide sono rilasciate con la licenza Creative Commons e quindi potete scaricarle ed utilizzarle a vostro piacere. Ricordate per嘆 di CITARMI! :D
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate pi湛 o meno tutte le funzionalit della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate pi湛 o meno tutte le funzionalit della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Rapida dimostrazione di quanto sia semplice automatizzare elettrodomestici casalinghi. In questo caso, comanderemo una macchina da caff竪 espresso via Android e Bluetooth.
Seminario tenutosi al Linux Day 2011 di Perugia.
E' un'introduzione iniziale al mondo della Physical Computing tramite Arduino. Il talk spiega i principi base di funzionamento del dispositivo ed 竪 corredato da un prototipo finale per la domotica.
Sorgenti o spiegazioni migliori possono essere fatte su richiesta via e-mail.
ArduinoCamp2012 竪 un evento che si 竪 svolto a Torino il 16 e 17 giugno 2012, presso Officine Arduino / FabLab, con lo scopo di coinvolgere diversi utenti della Comunit e semplici curiosi che hanno voglia di conoscere luniverso che ruota intorno ad Arduino: http://arduino.cc/playground/Italiano/ArduinoCampItalia2012
Questa 竪 la mia presentazione Pecha-Kucha, che riguarda un progetto che ha lo scopo di tracciare gli stati di lavoro o pausa di macchine di produzione, in un contesto di Lean Production.
Arduino, workshop di due giorni: materiale didattico.
ARGOMENTI:
- basi della programmazione di Arduino
- fondamenti di elettronica
- interagire con sistemi di input
- interagire con sistemi di output
- comunicazione seriale con processing
** E' possibile scaricare tutto il codice degli esercizi: https://github.com/hold3n/Arduino-Basic-Workshop
CC 2014 Daniele Iori e Ivan De Cesaris per Officine Giardino. Quest'opera e distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.
Analizziamo Arduino ai raggi X sia lato hardware che software, studiamo i suoi limiti e vediamo le soluzioni possibili. Lavoriamo con Arduino in modo professionale! Queste le slide del talk tenuto in Roma il 22-09-2015
Teaching within the course "The frontier of the Internet of Things", organized by "Ordine degli Ingegneri della Provincia di Salerno". Lecturing on the subject held "IoT and the Arduino platform" on October 29, 2016
- Introduzione
Cosa 竪 arduino?
Cosa non 竪 arduino?
Cosa si pu嘆 fare?
- Descrizione di Arduino
Breve introduzione storica e curiosit
Hardware generico di Arduino
I vari modelli di Arduino
Hardware di Arduino UNO
Hardware di Arduino Micro
- Segnali
Segnali digitali
Segnali analogici
Sensori ed attuatori
- Software
Il linguaggio di programmazione
Breve descrizione e curiosit
Le funzioni setup() e loop()
L'IDE
Setup e funzioni principali
Codice di esempio incluso nell'IDE
- Hello world: blink sketch (Esempio di output digitale)
L'obiettivo
I LED
Richiami di elettronica
Legge di Ohm
Le resistenze
La breadboard
La basetta millefori
Coding step by step
Test
Modifica di parametri e i relativi effetti
- Button sketch (Esempio di input digitale)
L'obiettivo
Il pulsante
Resistenza di pull-up
Coding
Test
- Comunicazione seriale
- Twilight switch sketch (Esempio di input analogico)
L'obiettivo
La fotoresistenza
Coding
Test
- Variable light sketch (Esempio di output analogico)
L'obiettivo
PWM (Pulse width modulation)
Coding
Test
- Cos'altro posso fare?
Gli shield
Buzzer
LED Infrarossi
Orologio RTC
Display
Moduli a caratteri
Moduli grafici
Motori
Semplici
Passo passo
RFID
Sensori ambientali
Temperatura e umidit
Rilevatore di movimento
Sonar
Wifi
Internet of things
Relay elettromagnetici
- Esempi di progetti curiosi trovati su internet
- Siti di riferimento
CodingGym - Lezione 3 - Corso Linux, Android e Internet of ThingsMirko Mancin
油
Corso frontale di 20 ore indirizzato a docenti di scuole superiori nel settore ICT. Il corso vuole essere una palestra (per questo CodingGym) di rafforzamento delle basi gi esistenti e di supporto per corsi futuri. Queste slide sono rilasciate con la licenza Creative Commons e quindi potete scaricarle ed utilizzarle a vostro piacere. Ricordate per嘆 di CITARMI! :D
Parliamo dell'Internet delle cose e dei Maker, concetti inziali per capire questo nuovo mondo e come la tecnologia pu嘆 essere applicata ad ogni oggetto.
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con ArduinoPaolo Aliverti
油
Prendete una Arduino board, alcune linee di codice, una cucchiaiata di breadboard. Spolverate con dei componenti passivi. Saldate a 200属 con buono stagno. Versate in una pentola e mescolate il tutto con metodo Agile. Lasciate raffreddare per pochi secondi. Servite il vostro prototipo elettronico e lasciate di stucco i vostri clienti! Ecco la ricetta per creare rapidamente prototipi elettronici su cui sviluppare i vostri prodotti di successo. Lo sviluppo Agile si puo applicare anche allelettronica senza essere grandi esperti di circuiti. Durante il workshop spiegheremo come costruire un prototipo per dimostrare il nostro approccio in un contesto diverso dal software.
This is a basic implementation of the famous game Arkanoid running on a FPGA that I've developed for the final project of Electronic II FPGA course at the University of Trieste.
The development board I've used is TERASIC DE1 with Cyclone II FPGA by Altera.
Features:
- 6 different angles of impact for the sphere.
- The ball striking a brick causes the brick to disappear.
- When all the bricks are gone, the player has won.
- Some bricks are indestructible.
- The Player has 3 lives to win the game.
- Start/Pause and restart game button.
For More Informations and for the english version look at this: http://www.vuolsavest.net/t3o/arkanoidFpga/
Talk organizzato da The Hive e DevMarche sulle blockchain. Relatore Gabriele Guizzardi di Brain & Bytes. Panoramica sulla struttura delle blockchain e su come possono essere utilizzate.
This document provides an overview of prototyping with a Raspberry Pi, including common operating systems, programming languages, GPIO pin usage, sensors, motors, I2C, PWM, SPI, and UART communication protocols. It discusses connecting an LED and button to the GPIO pins, as well as code examples for blinking an LED, reading a button press, and communicating via I2C, SPI, and UART. The online community is highlighted as a key benefit of the Raspberry Pi platform.
Dal 10 al 18 ottobre 2015 si svolge la settimana europea della programmazione, Europe Code Week, arrivata alla terza edizione. Nel corso della settimana si svolgeranno migliaia di eventi in ogni parte dEuropa per offrire a giovani e giovanissimi lopportunita di iniziare a programmare! Non si trattera di semplici seminari, ma di vere e proprie esperienze di programmazione, che consentiranno anche ai piu piccoli di divertirsi in modo costruttivo vedendo le proprie idee prendere forma. Anche questanno Warehouse Coworking factory partecipa alliniziativa con un evento rivolto ai ragazzi delle scuole elementari, medie e superiori e per tutti quanti vogliono sapere cosa sia linformatica.
3. NOTA
Questo incontro e queste slide possono essere considerate
il naturale continuo del Workshop fatto presso il Warehouse
Coworking di Pesaro.
Consiglio quindi di visualizzare prima tali slide enchesse
presenti sul mio account 際際滷Share.
http://www.slideshare.net/guizzardigabriele
4. Quali SO sono disponibili
- Raspbian (porting di Debian Wheezy 7)
- Ubuntu Mate (RPi 2)
- Windows 10 IoT (RPi 2)
- Arch
- Debian
- Pidora (Fedora)
- RISC OS (non 竪 Linux)
- OpenElec e altri (media center)
- ...e altri...
6. I protocolli del GPIO
Il RPi ha tre protocolli seriali: UART, SPI e I2C
UART (Universal Asynchronous Receiver-Trasmitter) trasmetti flussi di dati
in modo seriale. Asincrono significa che usa i dati stessi per sincronizzare la
trasmissione.
SPI (Serial Peripheral Interface) 竪 una trasmissione seriale sincrona che
opera in modalit Full Duplex cio竪 permette la comunicazione bidirezionale
simultaneamente.
I2C (I quadro C, Inter-Integrated Circuit) bus di tipo sincrono, si basa su due
linee, una per i dati (sda) e una per il clock di sincronizzazione (scl).
7. Pulse Width Modular (PWM)
La modulazione di larghezza di impulso, 竪 un tipo
dimodulazione digitale che permette di ottenere una
tensione media variabile dipendente dal rapporto tra la
durata dell'impulso positivo e di quello negativo (duty-
cycle), allo stesso modo 竪 utilizzato per protocolli di
comunicazione in cui l'informazione 竪 codificata sotto forma
di durata nel tempo di ciascun impulso. Grazie ai moderni
microcontrollori 竪 possibile attivare o inattivare un
interruttore ad alta frequenza e allo stesso modo rilevare lo
stato e il periodo di un impulso. (wikipedia)
9. Pulse Width Modular GPIO
p = GPIO.PWM(channel, frequency) #istanzia PWM
p.start(dc) #avvia PWM dove dc 竪 il duty cycle (0.0 <= dc <= 100.0)
p.ChangeFrequency(freq) #cambiare frequenza dove freq 竪 la nuova frequenza in Hz
p.ChangeDutyCycle(dc) #cambiare il duty cycle dove 0.0 <= dc <= 100.0
p.stop() #ferma PWM
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(12, 0.5)
p.start(1)
input('Premi un tasto per fermare')
p.stop()
GPIO.cleanup()
10. Come funziona I2C
Usando 7 bit per gli indirizzi si possono collegare fino a 128 Slave (alcuni riservati quindi sono meno)
14. Abilitiamo I2C
- apt-get install i2c-tools
- reboot
- modprobe i2c-dev
- ls /dev/i2c* (vedremo le porte)
- chmod o+rw /dev/i2c*
(ora possiamo usare le porte, dovremo rilanciare modprobe
e chmod ad ogni avvio. Se vogliamo automatizzare il
processo inseriamo i due comandi in /etc/rc.local)
16. Installare una dash board
apt-get install curl php5-curl php-json
(andare nella cartella /var/www)
git clone https://github.com/afaqurk/linux-dash.git
(oppure scaricare lo script)
sul browser digitare: 192.168.n.n/linux-dash
17. Utility utili
apt-get install mc (il vecchio Norton Commander)
apt-get install jed (editor)
apt-get install tree
apt-get install epiphani-browser (browser)
apt-get install fbi (visualizza immagini da shell)
apt-get install iptraf (analizza il traffico di rete)
apt-get install nmon (monitorare Linux da riga di comando)
19. Versione della GPIO
Python 竪 il linguaggio principale e ufficiale della Raspberry Pi
pertanto troviamo gi presente una libreria per usare la GPIO:
RPi.GPIO
Per sapere quale versione 竪 installata eseguire:
- find /usr | grep -i gpio
20. Python
import RPi.GPIO as GPIO # carica la libreria per gestire la PGIO
from time import sleep # importa sleep da time per gestire la pausa
GPIO.setmode(GPIO.BCM) # settiamo BCM come numerico
GPIO.setwarnings(0) # sopprimo i messaggi di errore
GPIO.setup(17, GPIO.IN) # settiamo GPIO17 come input (pulsante)
GPIO.setup(18, GPIO.OUT) # settiamo GPIO18 come output (LED)
print "Lampeggio LED con GPIO 18"
try:
while True: # eseguiamo fino a che non si preme CTRL+C
if GPIO.input(17): # se NON premo il pulsante, stato = 1 (alto)
print "LED SPENTO"
GPIO.output(18, 0) # settiamo la porta a 0
else:
print "LED ACCESO"
GPIO.output(18, 1) # settiamo la porta a 1
sleep(0.5) # attende mezzo secondo
finally: # * vedi testo
GPIO.cleanup() # pulisce gli stati
21. Accendiamolo usando il C
Possiamo usare una libreria inizialmente scritta per Arduino
e adattata per RPi: WiringPi.
La libreria pu嘆 essere usata anche per Python, Ruby e
Perl.
- git clone git://git.dragon.net/wiringPi
- cd wiringPi
- ./build
22. C
#include <stdio.h> //libreria standard IO
#include <wiringPi.h> //libreria WiringPi
//vedi tabella pin della GPIO, colonna wiringPi
#define LED12 1 //alla variabile LED12 assegno il pin 0
#define PULSANTE11 0 //alla variabile PULSANTE11 assegno il pin 1
int main(void)
{
printf("Lampeggio LED su GPIO 18n");
wiringPiSetup(); //inizializzo la libreria
pinMode(LED12,OUTPUT); //essendo un LED lo imposto come "output"
pinMode(PULSANTE11,INPUT); //essendo un pulsante lo imposto come "input"
23. C
for (;;) //ciclo infinito
{
if (digitalRead(PULSANTE11)==LOW) //premuto il pulsante
{
printf("LED ACCESOn");
digitalWrite(LED12,HIGH); //accendo il LED
delay(1000); //acceso per 1 sec.
}
printf("LED spenton");
digitalWrite(LED12,LOW); //spengo il LED
delay(1000); //rallento un po'
}
return 0; //chiudo main
}
gcc -o PulsanteLed PulsanteLed.c -lwiringPi
24. Setup di wiringPi
wiringPiSetup();
(usa la numerazione semplificata, 11 = 0)
wiringPiSetupGpio();
(usa la numerazione Broadcom, 11 = 17)
ce ne sono altre meno importanti (vedi sito).
28. Java
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.io.gpio.GpioPinDigitalInput;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
import com.pi4j.io.gpio.event.GpioPinListenerDigital;
public class PulsanteLed {
public static void main(String args[]) throws InterruptedException {
System.out.println("Lampeggio LED alla pressione di un pulsante");
//creo il controller
final GpioController gpio = GpioFactory.getInstance();
29. Java
//imposto myButton come input dal pin 0 (GPIO17) e imposto pin come output
sul pin 1 (GPIO18)
final GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin
(RaspiPin.GPIO_00, PinPullResistance.PULL_DOWN);
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin
(RaspiPin.GPIO_01, "MyLED", PinState.LOW);
//mi metto in ascolto dello stato del pin in input (listener)
myButton.addListener(new GpioPinListenerDigital() {
@Override
public void handleGpioPinDigitalStateChangeEvent
(GpioPinDigitalStateChangeEvent event) {
30. Java
System.out.println("PULSANTE: " + event.getState());
pin.toggle(); //cambio di stato il LED
System.out.println("LED ACCESO");
try {
Thread.sleep(1000); //attendo 1 sec.
}
catch (InterruptedException ie) {
//gestisci eccezzione
}
}
});
//creo un loop infinito solo per attendere l'evento (pulsante
premuto)
for (;;) {
Thread.sleep(500);
}
}
}
32. Web Server LAMP
- apt-get install apache2 (collegandosi a localhost si pu嘆
vedere che funziona)
- apt-get install mysql-server mysql-client
(durante linstallazione chiede di cambiare la password)
- apt-get install php5 libapache2-mod-php5 php5-mysql
(andare in /var/www e creare un file .php)
<?php phpinfo(); ?>
Ricollegarsi a localhost, lanciare il file .php creato e se tutto ok
viene visualizzato un elenco delle funzionalit di php
33. Web Server Python
python -m CGIHTTPServer
Da un altro PC collegarsi a
http://[indirizzo ip]:8000