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
Il Linux Day è una giornata nazionale di promozione di GNU/Linux e del software libero.
Il tema nazionale dell'edizione 2012 era: "Il Software Libero nella Piccola e Media Impresa".
Ho voluto dare il mio contributo mostrando come anche l’openhardware possa entrare nella PMI.
Qui il mio talk, tenuto a Castelfranco Veneto come socio MonetelLUG e TV-AUG.
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.
Un talk tenuto all'Università di Genova Disi/DIbris, il 3 Giugno 2014 per parlare di possibli interfacciamenti tra un arduino UNO/YUN e uno smartphone.
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
Il Linux Day è una giornata nazionale di promozione di GNU/Linux e del software libero.
Il tema nazionale dell'edizione 2012 era: "Il Software Libero nella Piccola e Media Impresa".
Ho voluto dare il mio contributo mostrando come anche l’openhardware possa entrare nella PMI.
Qui il mio talk, tenuto a Castelfranco Veneto come socio MonetelLUG e TV-AUG.
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.
Un talk tenuto all'Università di Genova Disi/DIbris, il 3 Giugno 2014 per parlare di possibli interfacciamenti tra un arduino UNO/YUN e uno smartphone.
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.
- 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
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 è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...Codemotion
Chi di noi non ha mai visto un gadget elettronico che gli sarebbe piaciuto possedere? Oppure rendere la propria casa più interattiva e controllabile? Fino a poco tempo fa, questi dispositivi venivano acquistati già fatti o, se non esistavano, si desisteva dal mettersi a costruirli in quanto, se non eri un ingegnere elettronico, risultava impossibile capirci qualcosa. Arduino è stata la svolta, permettendo ad uno sviluppatore appassionato di elettronica di creare questi dispositivi.
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
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
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.
Slide del corso Arduino Base tenuto presso il Museo della Scienza e Tecnologia "Leonardo da Vinci" di Milano.
Argomenti trattati:
- I componenti elettronici di base
- Introduzione alla scheda Arduino
- Le basi della programmazione
- Le comunicazioni seriali
- Input digitali e analogici semplici
- Ricavare input dai sensori
- L’output visivo
- L’output fisico
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 l’universo 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.
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.
- 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
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 è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...Codemotion
Chi di noi non ha mai visto un gadget elettronico che gli sarebbe piaciuto possedere? Oppure rendere la propria casa più interattiva e controllabile? Fino a poco tempo fa, questi dispositivi venivano acquistati già fatti o, se non esistavano, si desisteva dal mettersi a costruirli in quanto, se non eri un ingegnere elettronico, risultava impossibile capirci qualcosa. Arduino è stata la svolta, permettendo ad uno sviluppatore appassionato di elettronica di creare questi dispositivi.
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
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
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.
Slide del corso Arduino Base tenuto presso il Museo della Scienza e Tecnologia "Leonardo da Vinci" di Milano.
Argomenti trattati:
- I componenti elettronici di base
- Introduzione alla scheda Arduino
- Le basi della programmazione
- Le comunicazioni seriali
- Input digitali e analogici semplici
- Ricavare input dai sensori
- L’output visivo
- L’output fisico
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 l’universo 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.
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
Seconda lezione del corso: Alfabeto di Arduino.
Il seguente corso intende fornire le competenze di base per la realizzazione di lezioni di didattica delle robotica nella scuola secondaria di secondo grado.
Il corso ben si adatta a tutti i maker, studenti ed adulti, che per passione nell’elettronica necessitano di un’introduzione all’uso di Arduino.
Il docente che intendesse sviluppare un percorso didattico in cui si desidera realizzare dispositivi elettronici in grado di interfacciarsi col mondo fisico, potrà utilizzare queste lezioni come base per implementare moduli didattici aggiuntivi, pertanto questo corso è da intendersi come il mio personale tentativo di strutturare un percorso iniziale e modellabile a seconda del tipo di indirizzo della scuola. Chi vorrà potrà effettuare miglioramenti su quanto da me scritto.
Il percorso scelto è un estratto delle lezioni svolte durante i miei corsi di elettronica, sistemi ed impianti elettrici.
Nelle slide vi sono cenni teorici di elettrotecnica che non sostituiscono in alcun modo il libro di testo, ma vogliono essere un primo passo per condurre il lettore ad un approfondimento su testi specializzati.
Il corso è basato sulla piattaforma Open Source e Open Hardware Arduino e fa uso dell’Arduino starter kit.
Questa scelta non implica l’adozione di queste slide in corsi che non fanno uso di questo kit, ma è semplicemente una scelta organizzativa per lo svolgimento di questo corso di formazione.
Alle proposte incluse nel kit ho aggiunto ulteriori sperimentazioni. Tutti i componenti possono essere acquistati separatamente.
Ulteriori approfondimenti e risorse a questo corso possono essere trovate sul mio sito personale al seguente link:
http://www.maffucci.it/area-studenti/arduino/
Nella sezione dedicata ad Arduino, sul mio sito personale, oltre ad ulteriori lezioni, di cui queste slide ne sono una sintesi, è possibile consultare un manuale di programmazione, in cui vengono dettagliate le istruzioni. Per rendere pratico l’utilizzo del manuale ne è stata realizzata anche una versione portable per dispositivi mobili iOS e Android, maggiori informazioni possono essere trovate seguendo il link: http://wp.me/p4kwmk-23g
Introduzione all’Iot e alle schede elettronicheEnrico La Sala
Una breve introduzione all'IOT e delle risorse che possono essere utili a cominciare con i primi progetti con schede elettroniche come Arduino, Raspberry, ecc.
CodingGym - Lezione 2 - 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
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Gabriele Guizzardi
Slide delle 8h di workshop su Raspberry Pi presso Warehouse Coworking Pesaro, 13/12/2014
Slides of 8h workshop about Raspberry Pi at Warehouse Coworking Pesaro, 13/12/2014
Come funzionano i Retrieval-Augmented Generators (RAG) e quanto i database vettoriali sono fondamentali per poter memorizzare e utilizzare le sorgenti dati aziendali e personali?
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
Open source, in Python, compatibile con vari LLM ed estendibile tramite plugin: queste sono solo alcune delle potenzialità del framework Cheshire Cat AI!
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
This document contains slides from a presentation by Luca Del Puppo about building GraphQL servers using Fastify and Mercurius. The presentation introduces GraphQL and its advantages over REST APIs. It then discusses why Mercurius is a good choice for building GraphQL servers on Fastify and outlines some features it provides out of the box. The presentation concludes by providing resources for learning more about Fastify, Mercurius and building GraphQL servers.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
A volte essere pigri è una qualità, evita (quasi) tutte le richieste di personalizzazioni lasciando "finestre aperte" nei tuoi componenti generici.
Gli slots sono un modo per passare il contenuto a un componente in Vue.js. Permettono di definire una sezione nel template di un componente che può essere sostituita dall'esterno.
È inoltre possibile assegnare un nome o uno "scope" agli slots, garantendo così maggiore controllo e personalizzazione sul contenuto. I "named slots" consentono di definire più slots nello stesso componente, assegnando dei nomi specifici.
Gli "scoped slots" ti consentono di accedere dall'esterno ai dati interni del componente.
Quante volte mi è capitato di migliorare applicazioni lente e difficili da ottimizzare, ma poi ho scoperto Qwik e tutto è cambiato.
Con il suo nuovo modello mentale è in grado di fare la differenza e scalare facilmente qualsiasi applicazione.
Non conosci questo framework? Nessuna paura...andiamo a scoprirlo assieme!
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
Backstage is an open source platform for building developer portals that unifies all tooling, services, apps, data, and documentation with a single consistent UI. It allows developers to focus on their work by providing a centralized location to create software, manage what they own, and explore the entire software ecosystem. Backstage has a customizable, extensible plugin architecture built with modern technologies to make it easy to develop for and contribute to developer portals in a cloud-agnostic, vendor-neutral way.
Nella giungla degli ORM node, Prisma sta prendendo sempre più piede. Ha migliorato la Developer Experience, si integra perfettamente con Typescript e funziona dannatamente bene con diversi provider. In questo talk, vedrai come Prisma può migliorare il tuo lavoro quotidiano e come ti permette di avere un maggior controllo della tua code base aiutandoti a prevenire fastidiosi errori nella tua applicazione nodejs.
Decision-making for Software Development Teams - Commit UniversityCommit University
Ti senti bloccato quando si tratta di prendere decisioni critiche su aspetti tecnologici? Vuoi conoscere i processi decisionali collaborativi e come applicarli al tuo team?
Francesco Strazzullo, Chief Operating Officer di Claranet Italia, ti insegnerà gli elementi chiave per prendere decisioni critiche su aspetti tecnologici, gestire i requisiti non funzionali e lavorare con processi decisionali collaborativi.
L’Advisor Leader dell’area Game di NABA, Marco Secchi, ti insegnerà come migliorare la gestione degli oggetti in-game e la loro comunicazione utilizzando Unity Engine e Design Pattern Component.
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
KMM survival guide: how to tackle struggles between Kotlin and SwiftCommit University
Kotlin Multiplatform Mobile (KMM) è un SDK per lo sviluppo di applicazioni Android ed iOS che consente agli sviluppatori di condividere la business logic mantenendo UI/UX native.
Ogni SDK/framework cross/multi platform ha i suoi pro ed i suoi contro, e purtroppo KMM non è l'eccezione che conferma la regola.
Se sei uno sviluppatore Android potresti pensare che tutto funzionerà correttamente, ma purtroppo non sarà così quando dovrai confrontarti con Swift.
Se sei uno sviluppatore iOS saprai che Swift è simile a Kotlin, ma non in tutto, dovrai quindi conoscere alcune sue caratteristiche.
In questo talk vedremo quali sono i problemi che si possono riscontrare nell'interoperabilità tra Kotlin e Swift, i motivi che li causano, e come risolverli.
Stai perdendo la testa cercando di convertire il tuo state manager da Vuex a Pinia?
Ecco una guida step-by-step per affrontare questo task senza difficoltà.
I micro-frontend sono uno degli argomenti più interessanti nel mondo frontend dell'ultimo periodo ma nonostante la loro popolarità, non esistono delle linee guida comuni per svilupparli. micro-lc risponde a questa esigenza e permette di raccogliere in un unico applicativo tanti micro-frontend, orchestrandoli e rendendoli parte della stessa applicazione e non più componenti singoli, scollegati e sconnessi.
Fastify è il web framework del momento e diverse aziende in tutto il mondo lo stanno utilizzando in produzione da anni.
Costruito da zero per essere il più veloce possibile, con un overhead minima e una potente architettura a plugin, Fastify fornisce la migliore esperienza di sviluppo, senza sacrificare prestazioni e sicurezza.
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
Workshop RaspberryPi 20/11/2014
1. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Raspberry Pi
Una introduzione
Gianluca Ghettini
http://www.gianlucaghettini.net
email: gianluca.ghettini@gmail.com
Gianluca Ghettini
2. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: Raspberry Pi
Cosa e il Raspberry Pi?
Gianluca Ghettini
3. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: Raspberry Pi
SBC (Single Board Computer)
Gianluca Ghettini
4. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: Raspberry Pi
CPU ARM11 700MHz
256 MB RAM (o 512)
VIDEO/AUDIO OUT
USB x2
GPIO
Ethernet card!
Gianluca Ghettini
5. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: Raspberry Pi
Piccolo come una carta di credito
Gianluca Ghettini
6. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: Raspberry Pi
Potente: equiparabile ad un PC desktop di inizio 2000
Gianluca Ghettini
7. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: Raspberry Pi
Economico: praticamente costa 25-35 Euro
Gianluca Ghettini
8. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: come fa a costare cosi' poco?
Niente case esterno
No alimentatore incluso
Nessun on/o switch
Nessun manuale cartaceo a corredo (c'e il sito)
scatola di cartone inclusa :-)
Gianluca Ghettini
9. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: storia
Nasce nel 2012 come strumento didattico
Progetto open-source
Basato su GNU/Linux: gira Linux sopra!
Community
Gianluca Ghettini
10. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: storia
Doveva essere solo un Python Interpreter
Basato sul CPU ARM11 700MHz
Successo enorme tra i Maker
Gianluca Ghettini
11. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: storia
Curiosita: Autore del progetto e David Braben, programmatore di
Elite, uno dei primi giochi in gra
13. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: lista della spesa
Alimentatore 5V 2000mA micro usb
Gianluca Ghettini
14. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: lista della spesa
Tastiera mouse USB
Monitor HDMI o TV
Sistema operativo Linux (e free ovviamente!)
Gianluca Ghettini
15. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: sistema completo
Gianluca Ghettini
16. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: il grande assente
Manca qualcosa?
Gianluca Ghettini
17. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: il grande assente
Ma il disco rigido dov'e?
Gianluca Ghettini
18. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: il grande assente
Raspberry Pi ha sul retro uno slot SD card!
Gianluca Ghettini
19. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Introduzione: SD card
L'SD card e il disco rigido del Raspberry
Almeno 4GB
Una moltitudine di OS derivati GNU/Linux
Gianluca Ghettini
20. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Caratteristiche: CPU
CPU ARM11 32 bit
single core, 700MHz
La stessa che sta nell' iPhone EDGE e nell iPhone 3G
Gianluca Ghettini
21. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Caratteristiche: consumi
Consuma all'incirca 3W
Piu o meno 1 cent Euro al giorno :-)
Gianluca Ghettini
22. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Caratteristiche: scheda video GPU
Broadcom VideoCore GPU IV
Quake 3 Arena gira tranquillamente sul Raspberry :-)
Gianluca Ghettini
23. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Connettori: analog audio video out
Speci
24. che
RCA video out (PAL)
Audio stereo
Qualsiasi TV va bene!
Casi d'uso
Un bel Mediacenter?
Cartellonistica digitale?
Gianluca Ghettini
26. che
HD 1080p
Audio integrato
Casi d'uso
Console Retro gaming?
Postazione Desktop da
ucio?
Gianluca Ghettini
27. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Connettori: Ethernet RJ45
Speci
28. che
10/100 MBit/s
No gigabit! Glielo
perdoniamo via...
Casi d'uso
Web server casalingo?
Torrent download station?
Firewall casalingo?
Gianluca Ghettini
30. che
USB 2.0
500mA max? dipende...
Meglio alimentare a parte
Casi d'uso
Dongle Wi-Fi?
Lettore codici a barre?
Hard disk esterno?
Ci colleghiamo di tutto!
Gianluca Ghettini
32. che
Sono ben 17
SPI, I2C e UART incluse
Casi d'uso
Cosa ci comandiamo?
Tutto quello che risponde ad
un segnale elettrico!
Rele
Altri Microcontrollori
LED
Gianluca Ghettini
33. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Connettori: cos'e un GPIO?
Se impostato come OUTPUT
Un pin che puo essere messo a 0 o 5 Volt via software
Se impostato come INPUT
Un pin che sente la tensione applicata ai suoi capi e lo noti
35. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Connettori: cos'e un GPIO?
Gianluca Ghettini
36. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Connettori: cos'e un GPIO?
#include wiringPi.h
int main (void)
{
wiringPiSetup () ;
pinMode (0, OUTPUT) ;
for (;;)
{
digitalWrite (0, HIGH) ; delay (500) ;
digitalWrite (0, LOW) ; delay (500) ;
}
return 0 ;
}
Gianluca Ghettini
37. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Arduino != Raspberry
Raspberry non e Arduino!
Arduino e puro embedded
Raspberry e letteralmente un PC
in miniatura + GPIO
Gianluca Ghettini
38. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Arduino != Raspberry
Arduino
Low level
Micro ATMega328, 20MHz
Pieno controllo dell'hardware
Task semplici e ben de
39. niti
No memoria di massa
Raspberry
High level
Gira Linux sopra!
Multitasking
Hard disk!
Programmi complessi
Possiamo utilizzare Raspberry per fare quello che si puo fare con
Arduino ma e uno spreco!
Gianluca Ghettini
40. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Arduino != Raspberry
Bit-banging VS Gang-banging :-)
Arduino = Bit-Banging
Bit-Banging: quando manca un
protocollo e suciente
implementarselo a mano in
assembler (es. I2C su 2 GPIO
disponibili)
Gianluca Ghettini
41. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Arduino != Raspberry
Bit-banging VS Gang-banging :-)
Raspberry = Gang-Banging
Gang-Banging: quando manca
un protocollo e suciente
comprare e collegare l'adattatore
USB opportuno (es. USB to I2C
adapter)
Gianluca Ghettini
42. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
GPIO
5V
3.3V
SPI (x2)
I2C
UART
PWM
Gianluca Ghettini
43. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
GPIO: Libreria Wiring Pi
Libreria Wiring Pi (http://wiringpi.org)
Gianluca Ghettini
44. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
GPIO: Don't cross the streams!!!
Il Raspberry funziona in logica CMOS (3.3Volt) ma molti
dispositivi sono in logica TTL (5Volt)
Don't cross the
streams!!!
Occhio a non
scambiare la linea
5V con quella a
3.3V!
Gianluca Ghettini
45. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
GPIO: Don't cross the streams!!!
Level shifter
Trasforma segnali a
5V in segnali a 3.3V
e viceversa
Gianluca Ghettini
46. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
GPIO: library WiringPi, OUTPUT mode
#include wiringPi.h
int main (void)
{
wiringPiSetup();
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
return 0;
}
Gianluca Ghettini
47. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
GPIO: library WiringPi, INPUT mode
#include wiringPi.h
int main (void)
{
wiringPiSetup();
pinMode(17, INPUT);
int value = digitalRead(17);
return 0;
}
Gianluca Ghettini
48. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Getting started: Installazione OS
www.raspberrypi.org
Gianluca Ghettini
49. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Getting started: Installazione OS
NOOBS: New Out Of Box Software
NOOBS include:
Raspbian (derivato Debian)
Pidora (derivato Fedora)
Arch Linux (ArchLinux per ARM)
OpenELEC (derivato XBMC)
RaspBMC (derivato XBMC)
RISC OS (senza fronzoli, leggerissimo)
Esistono moltissimi altri OS non inclusi in NOOBS
Gianluca Ghettini
50. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Getting started: Installazione OS
Semplicissimo!
Scarichiamo NOOBS
Scompattiamo su SD card
Avviamo Raspberry Pi
Gianluca Ghettini
51. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Getting started: Installazione OS
Here we go!
Gianluca Ghettini
52. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Programmazione
Per programmare il Raspberry Pi ci serve...
il Raspberry Pi :-)
Concetto della programmazione Desktop, non Embedded!
Niente programmatore esterno
Bastano una tastiera, mouse e video collegati
Installiamo il nostro IDE preferito!
Gianluca Ghettini
53. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Programmazione
Quale linguaggio?
Arduino
Mikro C
Assembler ATmega328
Raspberry Pi
C/C++
Python
Java!!!!!!!!!
Assembler ARM
C# (Mono)
.
Perche cosi' tanti linguaggi? Raspberry e un PC!
Gianluca Ghettini
54. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Programmazione: C/C++
Installiamo Eclipse
Funzioni
Socket di rete
File I/O
Gra
55. ca (OpenGL)
Sonoro
Tutto quello che possiamo
fare in Linux si puo fare su
Raspberry Pi
Gianluca Ghettini
56. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Programmazione: Scratch!
Scratch!
Scratch!
Educativo!
Drag drop
Animazioni e giochi
Tipo Clik Play, chi se lo
ricorda?
Gianluca Ghettini
57. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Programmazione: Bare metal programming
Bare metal programming: giusto per s
58. zio
Bare Metal Programming
Non serve l'OS
L'intera scheda SD e la
memoria programma
Programmazione in
assembler
Conoscenza dell'hardware al
100%
Interfacce dicili da
utilizzare
Gianluca Ghettini
59. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso
Ma cosa possiamo fare con Raspberry?
Gianluca Ghettini
60. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso
Ma cosa possiamo fare con Raspberry?
Gianluca Ghettini
61. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: solar panel datalogger
Datalogger per impianti fotovoltaici
Gianluca Ghettini
62. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: solar panel datalogger
Datalogger per impianti fotovoltaici
RS485
MySQL
Connessione LAN
Monitoring 24h/24
Possibilita di monitorare
molti inverter
Gianluca Ghettini
63. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: solar panel datalogger
Per il collegamento agli inverter?
Due possibilita
USB to RS485
RS232 (GPIO) to RS485
Gianluca Ghettini
64. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: solar panel datalogger
Ma non bastava arduino?
Utilizzando Raspberry abbiamo un serie di vantaggi
XAMP server per gestione remota da browser web
Connessione LAN a PC
Storage dei dati di produzione
Gianluca Ghettini
65. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: Chiosco eliminacode
Chiosco eliminacode
Gianluca Ghettini
66. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: Chiosco eliminacode
Pulsanti
UP/DOWN
Pulsante
PRINT
Stampa
biglietto
Informazioni a
video
Anche audio
volendo
Gianluca Ghettini
67. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: Console per retrogaming
Console per retrogaming
Gianluca Ghettini
68. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: Console per retrogaming
Basato su RetroPie OS
Emulatori
SEGA mega drive
SEGA master system
MAME
Commodore 64
NES SNES
Atari 2600
Gianluca Ghettini
69. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: Console per retrogaming
RetroPie: multi emulatore per Raspberry Pi
Gianluca Ghettini
70. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Casi d'uso: Console per retrogaming
Cosa serve
Raspberry Pi :-)
Bottoni arcade
Joystick arcade
RetroPie OS
Un bel case?
Gianluca Ghettini
71. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Domande? :-)
Gianluca Ghettini
72. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Alcuni link utili
http://www.raspberrypi.org/
http://wiringpi.com/
http://www.vincenzov.net/
http://raspberrypi.stackexchange.com/
http://rpy-italia.org/
Gianluca Ghettini
73. Introduzione
Caratteristiche
Connettori
Arduino != Raspberry
Getting started
Programmare con Raspberry Pi
Casi d'uso interessanti
Grazie per l'attenzione!
email: gianluca.ghettini@gmail.com
website: www.gianlucaghettini.net
Gianluca Ghettini