Introduzione ad Arduino

2,563 views

Published on

Breve introduzione ad Arduino per presentazione all'IIS A.Badoni di Lecco il 17 Ottobre 2011.

Published in: Self Improvement
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,563
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
108
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Introduzione ad Arduino

    1. 1. Introduzione ad Arduino Lunedì 17 Ottobre 2011 Mauro Bolis <mauro@bazingalabs.it> Emanuele Brivio <emanuele@bazingalabs.it> Simone Lusenti <simone@bazingalabs.it> © 2011 Bazinga Labs 1
    2. 2. Cos’è Arduino? (1)• “Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software”• Derivato da Wiring (http://wiring.org.co)• Può ricevere input da sensori collegati• Può controllare l’ambiente circostante• Microcontrollore programmabile (ATmega168)• Programmazione in un linguaggio basato su C e simile a Processing (Language reference: http://cuttr.it/mj5h2) 2
    3. 3. Cos’è Arduino? (2)“Physical Computing is about prototyping with electronics: turning sensors, actuatorsand microcontrollers into materials for designers and artists.”“It involves the design of smart objects that can communicate with humans usingsensors and actutors controlled by a behaviour implemented as software running inside amicrocontroller.” Massimo Banzi, Tinker.it & Arduino Co-Founder 3
    4. 4. Perché Arduino? (1)• Prototipi low-cost (circa 22€ per Arduino Uno), installazioni e oggetti interattivi• Semplice da programmare (es: no gestione memoria, ...)• Board Shields (Estensioni): - WiFi/Bluetooth/Ethernet - ZigBee - Servo - SD Card 4
    5. 5. Perché Arduino? (2)• Nessuna saldatura richiesta con Arduino Novemila/Diecimila/Uno• Montaggio su Breadboard• Disponibili versioni per sistemi Embedded 5
    6. 6. Perché Arduino? (3)• Made in Italy• Open source hardware & software: - disegni CAD - schemi circuiti - sorgenti IDE• Facilmente integrabile in sistemi più complessi 6
    7. 7. Programmare Arduino (1)• Connessione via USB a un computer (OS X/Linux/Windows), rilevato come porta seriale (adattatore FTDI integrato)• L’IDE è già predisposto per compilare il sorgente ed effettuare l’upload sul microcontrollore• Nessun hardware aggiuntivo grazie al Bootloader AVR ISP• Il cavo USB/Seriale può essere scollegato una volta effettuato l’upload 7
    8. 8. Programmare Arduino (2)• Microcontrollore ATmega168 Flash 16k bytes (of which 2k is used for the bootloader) SRAM 1024 bytes EEPROM 512 bytes• 14 KB per memorizzare il programma (compilato)• 1024 B SRAM per memorizzare le variabili (incluse eventuali stringhe)• 512 B EEPROM per memorizzare dati persistenti (numero limitato di cicli di scrittura, ogni scrittura di 1 Byte impiega 3.3ms) 8
    9. 9. Programmare Arduino (3) Input/Output• Pin digitali - ogni pin può fungere da ingresso o uscita, per selezionare: pinMode(pinNumber, INPUT|OUTPUT) - ingresso: lettura stato logico (0-5V), elevata resistenza in serie (100MΩ), bassa corrente. - uscita: stato logico H/L, bassa resistenza, corrente max 40mA. Collegare in serie una resistenza da almeno 470Ω per evitare di rovinare pin/µC. - lettura dello stato del pin: val = digitalRead(pinNumber) - impostazione dello stato del pin: digitalWrite(pinNumber, LOW|HIGH) 9
    10. 10. Programmare Arduino (4) Input/Output• Pin analogici: - 6 pin di input con ADC (analog-to-digital converter) - ingresso: numero intero da 0 a 1023 - uscita: usano Pulse-Width Modulation (PWM) per “simulare” un’uscita analogica generando un pattern a onda quadra. Da 0 a 5V. - lettura dello stato del pin: val = analogRead(pinIdentifier) - impostazione di un valor di tensione in uscita: analogWrite(pinNumber, value) - dettagli: http://cuttr.it/itutx 10
    11. 11. Programmare Arduino (5)• Scrivere programmi è molto semplice!• Per iniziare: - Download Arduino IDE: http://cuttr.it/ksksk - Esempi (File->Examples)• Tanti esempi richiedono solamente un Arduino, una breadboard, qualche cavo da laboratorio, resistori e LED 11
    12. 12. Interagire con Arduino• Hardware - usando sensori e shield• Software - connessione con porta seriale usando qualunque linguaggio di programmazione: Java, PHP, Python, Perl, Ruby, VB.NET, …• Comunicare con il mondo - Bluetooth, WiFi, ZigBee, 3G, Ethernet - GPS, Accelerometri, Giroscopi - Display LCD, Touch Screen 12
    13. 13. Dove comprare• Ebay• Negozi di elettronica• Arduino.cc Shop• Accessori su SparkFun - http://www.sparkfun.com/ 13
    14. 14. Arduino vs Others• Pro - Facile apprendimento - Programmazione ad altro livello (altre devel boards devono essere programmate in assembly o con costosi cross-compilers, es: TI MSP430F2013) - Board espandibile con shield - Molti esempi - Community molto attiva (anche Italiana)• Contro: - Debug dei programmi non possibile - Consumi più elevati rispetto ad alcuni concorrenti 14
    15. 15. Esempi (1)• Garage Parking Assistant http://leblanc.co.cc/?p=1011• Grow Room Controller http://cuttr.it/0325a• Scrolling News http://cuttr.it/5jik5• Dog Writing Light http://cuttr.it/8c28f• “sudo make me a sandwitch” 15
    16. 16. Esempi (2)• Auto Rosary (?) http://www.chriseckert.com/• Mouse Glove http://mouseglove.sourceforge.net/• Digital Graffiti / Vandal Spray http://cuttr.it/tnm8p (Arduino + WiiFlash)• Botanic Calls http://cuttr.it/8bqe0 (Arduino + ZigBee + PHP + MySQL + Asterisk) 16
    17. 17. Esempi (3)• TableTalk http://cuttr.it/mu4po• Digital Clock http://cuttr.it/qdch7• Simple Web Server• Real Time GPS Tracker http://cuttr.it/51ru3 (Arduino + GPS + Google Maps) 17
    18. 18. E noi cosa facciamo? 18
    19. 19. Proposta 1 - Wheeled Robot• Due ruote motrici + ruota folle• Guida autonoma con collision avoidance• Guida in modalità “assistita” da un terminale remoto (PC, iPhone, ...)• Guida con percorso definito da linguaggio a regole 19
    20. 20. Idee e Tutorial• Guide, Tutorial, Language Reference, Hardware Reference http://arduino.cc/• Let’s Make Robots http://letsmakerobots.com/• Makezine http://makezine.com/• Top 40 Arduino Projects http://cuttr.it/w6x9s• Arduino.cc Playground http://arduino.cc/playground/Projects/Ideas 20
    21. 21. CreditsQuesta presentazione è liberamente scaricabileSorgente: https://www.bazingalabs.it/~simone/ArduinoIntro17102011.keyPDF: https://www.bazingalabs.it/~simone/ArduinoIntro17102011.pdfMauro Bolis <mauro@bazingalabs.it>Università degli studi di Milano - Biccoca, 2011Emanuele Brivio <emanuele@bazingalabs.it>IED, 2011Simone Lusenti <simone@bazingalabs.it>CTO, Monkey Trip Communication SrlThis work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Copyright © 2011 Bazinga Labs - https://www.bazingalabs.it 21

    ×