Introduzione ad Arduino
Upcoming SlideShare
Loading in...5
×
 

Introduzione ad Arduino

on

  • 2,286 views

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

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

Statistics

Views

Total Views
2,286
Views on SlideShare
2,286
Embed Views
0

Actions

Likes
1
Downloads
84
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

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
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Introduzione ad Arduino Introduzione ad Arduino Presentation Transcript

  • 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
  • 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
  • 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
  • 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
  • Perché Arduino? (2)• Nessuna saldatura richiesta con Arduino Novemila/Diecimila/Uno• Montaggio su Breadboard• Disponibili versioni per sistemi Embedded 5
  • Perché Arduino? (3)• Made in Italy• Open source hardware & software: - disegni CAD - schemi circuiti - sorgenti IDE• Facilmente integrabile in sistemi più complessi 6
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Dove comprare• Ebay• Negozi di elettronica• Arduino.cc Shop• Accessori su SparkFun - http://www.sparkfun.com/ 13
  • 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
  • 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
  • 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
  • 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
  • E noi cosa facciamo? 18
  • 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
  • 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
  • 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