Arduino&Raspberry
Upcoming SlideShare
Loading in...5
×
 

Arduino&Raspberry

on

  • 208 views

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 ...

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.

Statistics

Views

Total Views
208
Views on SlideShare
207
Embed Views
1

Actions

Likes
0
Downloads
6
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Arduino&Raspberry Arduino&Raspberry Presentation Transcript

  • ARDUINO & RASPBERRY PI CASI DI OPEN HARDWARE EMBEDDED Parma – Mirko Mancin 2014
  • ARDUINO Parma – Mirko Mancin 2014 1. Una scheda elettronica (con le porte di I/O e un microcontrollore contenente un firmware) 2. Un ambiente di programmazione (ambiente di sviluppo sketch, linguaggio Arduino, Wiring ed eventualmente Processing) 3. La comunità degli utenti.
  • ARDUINO – IN SINTESI Parma – Mirko Mancin 2014 • Processore: ATMEGAxxx AVR microcontroller • I/O: Header per pin analogici, digitali, seriali, power • Porta USB e convertitore USB-Seriale • Regolatore di potenza • Tasto di reset • Led di status • Scheda di PROTOTIPIZZAZIONE!!
  • ARDUINO – LE DIVERSE SCHEDE Parma – Mirko Mancin 2014 Arduino UNO LilyPad Arduino Arduino Nano Arduino Leonardo Arduino Mega 2560Arduino Mini
  • ARDUINO – LE DIVERSE SCHEDE Parma – Mirko Mancin 2014 Arduino Due Arduino Yun Arduino Zero Arduino Tre Arduino Galileo
  • ARDUINO – LE SHIELD Parma – Mirko Mancin 2014 Tassello fondamentale del successo di arduino sono le shield. Si trattano di «espansioni» per Arduino che permettono di aggiungere sopra di essi ulteriori funzionalità Motor ShieldEthernet Shield Proto Shield WiFiXbeeWireless Shield
  • ARDUINO – COSA C’È DI DIVERSO Parma – Mirko Mancin 2014 • Piattaforma di prototipazione elettronica open-source che si basa su hardware e software flessibili e facili da usare; • Scheda molto economica (a partire da 30 euro), che sta nel palmo di una mano e consente di applicare sensori, attuatori e altre componenti elettroniche per poi programmarle con semplicità; • Circuiti open source => open hardware; • Non serve costruirsi la «base elettronica» da zero; • Elettronica quasi «plug&play».
  • ARDUINO – COME SI PROGRAMMA Parma – Mirko Mancin 2014 BOOT SETUP() { } LOOP() { } http://arduino.cc/en/Main/Software IDE Arduino Atmel Visual Studio 6
  • ARDUINO – BLINK (HELLO WORLD) Parma – Mirko Mancin 2014 const int ledPin = 13; int ledState = LOW; long previousMillis = 0; // memorizza il tempo dell’ultimo aggiornamento // long perchè il tempo è in millisecondi long interval = 1000; // intervallo di lampeggio (millisecondi) void setup() { pinMode(ledPin, OUTPUT); // metto il piedino in Output } void loop(){ unsigned long currentMillis = millis(); if(currentMillis - previousMillis > interval) { // Salvo il tempo dell’ultima volta che ha lampeggiato il LED previousMillis = currentMillis; // se il LED è On mettilo OFF e viceversa: if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(ledPin, ledState); } }
  • ARDUINO – I/O Parma – Mirko Mancin 2014 Nello schema di Arduino UNO in verde sono raffigurati 14 PIN digitali ON/OFF sia IN che OUT. I PIN 0 e 1 solitamente non vengono utilizzati nei collegamenti perché adibiti alla comunicazione seriale con il PC (USB) o con altri dispositivi. In basso a destra sono rappresentati con il colore celeste i 6 PIN analogici, utilizzabili in ingresso con una risoluzione di 2^10 (1024). Inoltre sono disponibili altri pin come quello verde acqua a destra per collegare dispositivi in SPI o le shield.
  • ARDUINO – I/O DIGITALE Parma – Mirko Mancin 2014 In entrambi i componenti è presente una resistenza: nel caso del LED dobbiamo limitare la corrente a 10mA, quindi andremo ad utilizzare una resistenza di 330Ω = (5V-1,6V)/0,01A. Nel caso dell'ingresso, invece, dobbiamo proteggere ARDUINO; l'amperaggio massimo consentito è di 40mA ma la guida ufficiale consiglia di utilizzare una resistenza di 470Ω quindi con i 10mA che otteniamo stiamo su una soglia decisamente più sicura. È possibile anche attivare le resistenze interne di ARDUINO via software. Controlliamo l'accensione del LED mediante il PIN 13 e leggiamo lo stato del pulsante tramite il PIN 3. Lo stato del pulsante dipende ovviamente dal fatto se è normalmente aperto o chiuso e dalla resistenza applicata. Vi consiglio di fare delle prove per capire cosa sta leggendo ARDUINO e quindi eventualmente modificare resistenze o codice. - Led rossi = 1,6 V - Led giallo = 2,2V - Led verde = 2,4 V - Led bianco = 3,0 V ( warm o sunny ) - Led bianco ( cold ) o blu = 3,5 V
  • ARDUINO – I/O DIGITALE Parma – Mirko Mancin 2014 #define buttonPin 2 // il numero del PIN del tasto #define ledPin 13 // il numero del PIN del LED int buttonState = 0; // variabile che assumerà il valore letto dal PIN del tasto void setup() { // inizializzo il PIN del LED indicando il numero e che si tratta di un'uscita: pinMode(ledPin, OUTPUT); // inizializzo il PIN del Tasto indicando il numero e che si tratta di un ingresso: pinMode(buttonPin, INPUT); } void loop(){ // a ogni ciclo leggo il valore del tasto: buttonState = digitalRead(buttonPin); // controllo se il tasto è premuto. // se lo stato è HIGH: if (buttonState == HIGH) { // accendo il LED: digitalWrite(ledPin, HIGH); } // altrimenti: else { // spengo il LED: digitalWrite(ledPin, LOW); } }
  • ARDUINO – I/O ANALOGICO Parma – Mirko Mancin 2014 #define sensor A0 // il numero del PIN del sensore #define ledPin 11 // il numero del PIN del led int value = 0; // variabile che assumerà il valore letto int LEDbrightness; void setup() { // inizializzo la seriale per stampare a video Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop(){ // a ogni ciclo leggo il valore del tasto: value = analogRead(sensor); Serial.println(value); LEDbrightness = map(value, 0, 1023, 0, 255); // il LED diventa più luminoso quanto tu più premi analogWrite(ledPin, LEDbrightness); delay(100); }
  • ARDUINO – COSA SI PUÒ FARE Parma – Mirko Mancin 2014 Tweet Arduino 3D printer Wii Nunchuck YougurtIno Segnalatore per ciclicsti Mini robot
  • ARDUINO – COSA SI PUÒ FARE Parma – Mirko Mancin 2014 Stazione meteo Agro Stazione meteo UrbanMonitoraggio domotico Wireless Sensors Bung Network
  • RASPBERRY PI Parma – Mirko Mancin 2014 • Scheda nata come piccolo computer delle dimensioni di una carta di credito, economica (circa 30 euro) e basata su Linux. • Nasce come progetto per l’insegnamento dell’informatica a bambini e ragazzi. • Inizialmente doveva essere solamente un interprete Python. • SystemOnChip Broadcom (ARM11).
  • RASPBERRY PI – LE DIVERSE VERSIONI Parma – Mirko Mancin 2014
  • RASPBERRY PI – LE DIVERSE VERSIONI Parma – Mirko Mancin 2014 «New compute module for business and industrial users. The compute module contains the guts of a Raspberry Pi (the BCM2835 processor and 512Mbyte of RAM) as well as a 4Gbyte eMMC Flash device (which is the equivalent of the SD card in the Pi). This is all integrated on to a small 67.6x30mm board which fits into a standard DDR2 SODIMM connector (the same type of connector as used for laptop memory*). The Flash memory is connected directly to the processor on the board, but the remaining processor interfaces are available to the user via the connector pins. You get the full flexibility of the BCM2835 SoC (which means that many more GPIOs and interfaces are available as compared to the Raspberry Pi), and designing the module into a custom system should be relatively straightforward as we’ve put all the tricky bits onto the module itself.”
  • RASPBERRY PI – LE DIVERSE DISTRIBUZIONI Parma – Mirko Mancin 2014
  • RASPBERRY PI – FUNZIONALITÀ Parma – Mirko Mancin 2014 • Controllo della GPIO • Web/Cloud/Torrent Server • Smartdisplay • Videosorveglianza • Mediacenter • Gaming • Robotica • Piattaforma entry di programmazione
  • RASPBERRY PI – COSA SI PUÒ FARE Parma – Mirko Mancin 2014
  • RASPBERRY PI – COSA SI PUÒ FARE Parma – Mirko Mancin 2014 Gestione impianti d’irrigazione Sistema di comunicazione tra macchine CNC Gateway per reti di sensori
  • RASPBERRY PI – COME PROGRAMMARE Parma – Mirko Mancin 2014 Essendo un linux pc a tutti gli effetti la programmazione di tale dispositivo può essere effettuata attraverso la maggior parte dei linguaggi di programmazione conosciuti. • C/C++ (con Eclipse, Qt, …) • Java • Python • Web (Apache, MySql, …) • Controllo diretto della GPIO (https://code.google.com/p/webiopi/) • …
  • RASPBERRY PI & ARDUINO Parma – Mirko Mancin 2014 http://www.makeuseof.com/tag/how-to- build-home-automation-system-raspberry- pi-and-arduino/ Il collegamento tra i due dispositivi può avvenire in differenti modalità: • Attraverso la connessione seriale tra la GPIO della raspberry e la seriale di Arduino • Wireless attraverso dispositivi radio • Attraverso la rete internet usando la raspberry come «server» e gli arduino come client • …
  • LINK UTILI Parma – Mirko Mancin 2014 Altro mio materiale • Corso Arduino ( https://www.slideshare.net/mancio90/ ) • Github ( https://github.com/loweherz/ ) Community • Forum Arduino • Slideshare Basic connections ( http://www.robot-italy.com/it/blog/tutorial_ita/475 ) Componentistica • Robot-italy • Seeedstudio • Conrad.it mirko.mancin@gmail.com www.mancio.myds.me