Home
        Corso Arduino - Dipartimento di Fisica, Università della Calabria
         Contents
1.          http   192 168 0 100                                 D    Tentativo connessione con SPI UART     Connesso a SPI UART     7    t Pagina 7 e    Arduino Wifly Shield TEST    i    Avvio impostazioni rete wireless    Za                         O     5  y  Sa   lt   O   A  dee  O  O    Analogico CH0  558      CHECK      IP  192 1   68 0 100       ElettronicaIN WiFly Web Server  Analog input ANO  383    Link  ElettronicaIN     Controllo LED    BLED    submit                              lefono cellulare   Dedicheremo a  ci   le prossime  pagine di que   sta puntata del  corso  In pratica  intendiamo ge   stire ingressi e  uscite di Ardui   no tramite un iPhone  senza per   passare da  un PC oppure da un router sempre accesi per  avere la connessione in rete Wi Fi  Il nostro  approccio  questa volta    diverso  vogliamo  che sia la nostra WiFly a creare una rete di  tipo ad hoc tra essa e una periferica esterna   che nel nostro caso    un iPhone  aprendo un  canale di comunicazione nello standard UDP   Per prima cosa    necessario configurare il mo   dulo RN 131G in modo da renderlo capace di  creare una rete ad hoc tra due dispositivi     valore degli ingressi analogici di Arduino  Per  maggiori dettagli sulle funzionalit   di questo  e degli altri sketch di esempio  si consiglia di  leggere l articolo del corso su Arduino riguar   dante l   Ethernet shield  Anche in questo caso  abbiamo scritto un nostro sketch  che per   mette la gestione tramite browser di un LED   conne
2.      O  z  5  y  b    lt   O  W       O  O          una velocit   di comunicazione di 9 600 baud   Aspettate che si evidenzi la scritta    pronto      inviata dalla scheda Arduino appena termi   nata la programmazione  quindi spedite il  carattere    a    per abilitare il servo  successiva   mente digitate un numero tra 0 e 9 ed inviate   lo  pulsante send   Il servo viene posizionato  tra 0   e 180   in passi di 20      La gestione di due servocomandi    altrettan   to facile  essendo sufficiente dichiarare due  oggetti di tipo servo ad esempio Servo_1 e Ser   vo_2  associarli alle uscite 9 e 10 e comandarli  con le istruzioni Servo_1 write pos1  e Servo_2   write pos2   La gestione di un sistema pan tilt  per il puntamento di una videocamera risulta  molto semplice  un esempio di sketch lo tro   verete assieme ai sorgenti di questa puntata   con il nome di motor_2  Per la parte meccanica  consigliamo di utilizzare due servocomandi   codice SERVO206  in abbinamento al pan   tilt bracket kit di codice PANTILTKIT  il tutto  reperibile presso la ditta Futura Elettronica   www futurashop it     Vediamo ora come sia possibile gestire dei  motori a spazzole in corrente continua  di  quelli  per intenderci  che normalmente ven        Pin 12 Controllo direzione motore A   Pin 10 Segnale PWM per controllo velocit   motore A  Pin 13 Controllo direzione motore B   Pin 11 Segnale PWM per controllo velocit   motore B    Morsetti 1 e 2 collegamento motore A    Morsetti 3 e 4 collegamento 
3.     OO micropulsanti  transistor e molti altri componenti      5 5 necessari per cominciare ad utilizzare    questa potente piattaforma hardware     FL TU Fui Via Adige  11     21013 Gallarate  VA  Maggiori informazioni su questo prodotto e su tutte le altre apparecchiature sono disponibili      ETTRO Krpa Tel  0331 799775     Fax  0331 792287 sul sito www futurashop it tramite il quale    anche possibile effettuare acquisti on line        Ei  ELETTRONICA IN   Novembre 2010 155       Impariamo ad utilizzare i moduli XBee per  realizzare semplici collegamenti Wireless  nelle nostre applicazioni con Arduino   Sesta puntata     dell ing   MIRCO  SEGATELLO      n queste pagine vedremo come sia possibile  dotare la scheda Arduino di un modulo di  comunicazione radio  al fine di comunicare  con un   altra scheda Arduino oppure con un  PC  Tra le infinite possibilit   offerte dal mer   cato  Arduino ha sposato lo standard ZigBee e  quindi le applicazioni si sono orientate verso  uno specifico hardware  comunque disponibi   le a livello commerciale in molteplici versioni     LO STANDARD ZIGBEE   Il termine ZigBee deriva dalle parole inglesi     zigging bee     che significano    danza delle  api        stato adottato ispirandosi al modo di  comunicazione essenziale e veloce che tali  insetti utilizzano per la sopravvivenza di ogni    loro colonia  Il protocollo ZigBee    stato im   plementato dalla ZigBee Alliance  www zigbee   org en index asp  che    un consorzio no profit  per la 
4.     oe ee    Carica 1 dati ricevuti nella variabile c  if gps encode c      Verifica congruenza dati  i getgps gps   Ii estrapola le sotrrosiringhe ci dari ima al PC    j       void getgps TinyGPS  amp gps   i       Richiama la funzione che estrapola dalla sentenza i dati relativi alla posizione  float latitude  longitude   gps f_get_position  amp latitude   amp longitude       d invia al PC 1 darti estrapolati  serial   print Lat Long       serial  print lartitude  S    Sem E   Serial println longitude 5         Richiama la funzione che estrapola dalla sentenza i dati relativi alla data  int year   byte month  day  hour  minute  second  hundredths   gps crack_datetime  amp year  amp month  amp day  amp hour  amp minute  amp second  amp hundredths         Lnvia al PC    dati estrapolati  Serial   print  Dates       Serial  print month  DEC   Serial orint       s  Serial  printlday  DEC   Serial   print          s Serial  printlyear s  serial print     Times        Serial printlhour  DEC s Serial print         s  Serial  print minute  DEC   serial   print   Serial   orint second  DEC   lt   Serial print                Serial  printinilhundredths  DEC  s    AS PUO usare una sintassi Airertta per inviare al PC 1 dati Estratti  Serial printi    Altitude  merters s        serial  printlinlgps t   altirtudel   s  Serial  print  Course  degrees s     s Serial  printinlaps  Tt course     s  Serial print    Speed kmph         Serial printIn gps f_speed_kmph      Serial   printlin  s  
5.    GRER    Arduino    dell ing   MIRCO  SEGATELLO       tra i sistemi di sviluppo pi   noti e  utilizzati  si basa su un processore Atmel  e dispone di numerosi I O  Vediamo come    funziona e come si utilizza  Prima puntata     A rduino    il nome di una piattaforma  hardware per lo sviluppo di applicazioni  basate sui microcontrollori ATMEL  Ideata in  Italia nel 2005     basata su una semplicissima  scheda di I O e su un ambiente di sviluppo  che usa una libreria Wiring per semplificare  la scrittura di programmi in C e C   da far  girare sulla scheda  Wiring    un ambiente di  programmazione open source per impieghi  su schede elettroniche  pensato per una facile  applicazione  si tratta di un progetto italia   no nato ad Ivrea  da un team composto da  Massimo Banzi  David Cuartielles  Tom Igoe   Gianluca Martino e David Mellis  e successi   vamente sviluppato all universit   Los Andes  in Colombia  Arduino pu   essere utilizzato    per lo sviluppo di oggetti interattivi stand   alone  ma pu   anche interagire con software  residenti su computer  come Adobe Flash   Processing  Max MSP  Pure Data  SuperCol   lider  La piattaforma hardware Arduino     distribuita agli hobbisti sia attraverso Internet  che tramite fornitori locali ed    disponibile in  versione pre assemblata  mentre le informa   zioni sul progetto hardware  nel pieno rispetto  della filosofia open source  sono rese disponi   bili a tutti  in modo che  chiunque lo desideri   pu   costruirsi un clone di Ardui
6.    II modulo  Seeeduino     152 Maggio   Giugno 2010   ELETTRONICA IN Ei        O     5  Ke   de   lt   O  W       O  O       del Seeduino    3  Per consentire un facile accesso  tutti i pul   santi e gli interruttori sono vicini ai bordi  del PCB    4  A causa delle sue dimensioni ingombranti   il connettore USB tipo B    stato sostituito  con un connettore Mini USB    5  A causa delle sue dimensioni ingombranti   la presa di alimentazione  jack da 3 5 mm      stata sostituita con connettore JST a 2  poli    6  Dispone di LED indicatore presenza ali   mentazione e di Reset vicino al pulsante  RST    7 Ha la funzione di Auto reset selezionabile    8  Dispone di interruttore di selezione per  tensione a 3 3 V o 5 V    9  Interfaccia UART per FTDI232 che per   mette di trasferire il bootloader senza la  necessit   di utilizzare un cavo ISP    10  Sono state aggiunti 2 ingressi ADC    11  Facile connessione IC e sensori analogici    12  Possibilit   di alimentazione diretta del  Seeeduino a 5 Vcc  Attenzione  Usare solo  5 V  mediante ingresso supplementare    13  Il microcontrollore ATmega168 versione  DIP    stato sostituito con la versione SMD   questo ha permesso di ottenere pi   spazio  sul PCB    14  Dispone di connessione USART    15  Riga supplementare di pin a saldare     cos    possibile utilizzare un connettore femmi   na o maschio a propria scelta    16  Dispone di un regolatore di tensione da  3 3 V in grado di fornire pi   corrente  150  mA  rispetto ai 50 mA forni
7.    Per i primi esperimenti abbiamo utilizzato un  piccolo motore da 6 V  corrente massima di  100 mA  ricavato da un   automobilina gio   cattolo dismessa  cablato come visibile nella  Fig  3  Per l alimentazione abbiamo usato un  alimentatore universale non stabilizzato da 5  W  impostato per fornire una tensione di 6 V   sufficienti per alimentare sia la scheda Ardu   Moto che Arduino    Come primo sketch facciamo in modo da  attivare entrambi i motori con la seguente  sequenza che si ripete all infinito  motore A e  B avanti a mezza velocit    motore A e B avanti  a piena velocit    motore A e B fermi  motore A  e B indietro a mezza velocit      Una possibile ed interessante applicazione      il controllo delle ruote di una piattaforma  robotica come quella commercializzata dalla  ditta Futura Elettronica  codice 7300 2WDP   MA  perfettamente compatibile con le schede  Arduino  L assemblaggio di questa piatta   forma robotica    davvero agevole  in quanto  essa    gi   fornita di tutte le viti necessarie al  fissaggio    Per i pi   tecnici forniamo anche le caratteri   stiche elettriche dei motori  che trovate nella  Tabella 3    Il parametro    a rotore bloccato    si riferisce   al valore della corrente assorbita dal motore  quando la ruota    ferma  ovvero quando al  robot da fermo viene data tensione per farlo  partire o quando lo stesso robot dovesse  andare a sbattere contro una parete rimanen   dovi bloccato     in pratica la massima corrente  assorbita dai motori e
8.    Tastiere b  Tastiere      a Unit   disco ca Unit   disco    gh Unit   DVD CO ROM   gli Unit   DVD CO ROM       152 Marzo 2011   ELETTRONICA IN A       Oz Human Interface Device  HID   Mouse e altri dispositivi di puntamento  A p       FA Mouse e altri dispositivi di puntamento  TP Porte  COM e LPT    T Arduino UNO  COM6   AP Porta di comunicazione  COML   TP Porta di comunicazione  COM2   TP Porta stampante  LPT1        E Processori     APP Schede di rete     ME Schede video    gt  Ma Schermi     e Tastiere      a Unit   disco                eI vAe  I ero        5  O       O     5  y  Sea   lt   O  W  R   O  O       USB Seriale della scheda  il che permette la  comunicazione tramite la porta USB del com   puter  A differenza del chip della FDTI  per il  quale era necessario installare appositi driver   con l utilizzo dell   integrato ATmega8U2 ci    non    pi   necessario  in quanto vengono usati  i driver comuni della periferica USB gi   dispo   nibili con il sistema operativo  Tuttavia  con  sistemi operativi Windows  per la corretta cre   azione di una porta COM virtuale    necessario  installare un driver aggiuntivo  Allo scopo  ricordiamo che Arduino UNO    compatibile  con i sistemi operativi Windows  Mac OS X e  Linux  per i quali sono previsti i driver    Il bus SPI fa capo ai pin 10  SS   11  MOSI   12   MISO   13  SCK  i quali possono essere pro   grammati per realizzare una comunicazione  SPI  appunto    Arduino UNO prevede anche un bus PC   localizzato ai piedi
9.    invariato ma viene aggiunta la sigla    serie  2    e si perde la compatibilit   con i moduli  della serie 1  La serie 2 introduce la possibilit    di configurare un modulo come router  che   inserito in una rete  si comporta da ponte tra il  Coordinator e gli End Device  oppure con altri  router permette di estendere dinamicamente  la rete  Anche in questo caso esiste la versione  PRO con potenza maggiorata  la Tabella 3  riepiloga le caratteristiche tecniche     Vediamo ora  qui di seguito  gli elementi di  base che formano una rete ZigBee    e Node  questo termine indica un qualsiasi di   spositivo della rete che consente lo scambio di  dati via radio ed    identificato da un numero   Identify Device      con antenna  integrata        Modulo   XBee   con attacco  U FL per  antenna esterna     Fig 4  Modulo  XBee    con antenna  esterna integrata     Fig 5  Modulo  XBee PRO  con antenna  integrata     Fig 6   Modulo   XBee PRO   con attacco  U FL per  antenna esterna        Fig 7   Modulo   XBee PRO   con antenna  esterna integrata        A ELETTRONICA IN   Dicembre 2010   Gennaio 2011 148       Tabella 3   Caratteristiche tecniche moduli XBee serie 2  O  o   Frequenza operativa ISM 2 4 GHz ISM 2 4 GHz P  Potenza trasmissiva 2 mW 63 mW O  p Sensibilit   ricezione  92 dB  100 dB  Fig 8 40 m  indoor  90 m  indoor  D  Modulo pomata 120 m  in aria libera    1 600 m  in aria libera     XBee Serie2 TX 40 mA TX 250 mA ol  con antenna consumo RX 40 mA RX 55 mA C  integrata  Powe
10.   Arduino di un modulo ricevitore GPS   Grazie alle librerie disponibili in rete  sono  facilmente realizzabili applicazioni come  data logger  localizzatori ecc  Il GPS Shield     dotato di un connettore per il montaggio    7    pIy OS109       3  O       O  E  5  y  fa   lt   O  W  i   o  O       del ricevitore GPS 8160 EM406A e di una  piccola area riservata alla prototipazione   Tellymate Shield  collegato ad una scheda  Arduino e  utilizzando il comando    Serial   printIn       permette di inviare semplici testi  e grafici sul vostro televisore  La velocit   di  trasmissione pu   essere selezionata tramite  ponticelli    UARTSBV22  si tratta di un convertitore  USB seriale che permette di dotare i vostri  progetti di connessione USB  Viene utilizza   to per gestire la scheda RAIMBOWDUINO  e gli strip di cui    dotato permettono una  facile integrazione con altre schede  La  scheda offre la possibilit   di montare un  modulo XBee o Bluetooth  permettendo in  questo modo di ottenere una connessione  wireless con il PC    SD Card shield     una piccola scheda  dotata di slot per SD Card e permette ai  dispositivi come Arduino e Seeeduino di  leggere e scrivere le SD Card con apposite  librerie disponibili gratuitamente  L unit       dotata di un piccolo deviatore per selezio   nare la fonte di alimentazione dell   SD card   tramite pin o 3 3 V della scheda Arduino    Seeeduino     In questo articolo ci occuperemo essenzial   mente della Danger Shield e dalla sua pro   gram
11.   Arduino fa parte della vostra  rete domestica     Potete usare 1 comandi    show net    e    show For consistent results unplug  amp  replug power to your Arduino and WiFly shield     3 ni A    x  Ensure tha serial monitor is not open when you remove power    connection per conoscere le impostazioni   Attempting to connect to SPI DART      della rete  Connected to SPI UART   Adesso siete pronti per avviare lo sketch   Use      with no line ending  to enver WiFiy command mode      D    denominato WiFly_autoconnect_terminal  che   Than send each command followed by a carriage return   provveder   all associazione automatica alla Waiting for input     vostra rete  le uniche impostazioni da fare  riguardano il file credential h  nel quale dovre  duru  te specificare il nome della vostra rete  char eLa asa    ssid        dlink      Sullo sketch principale dovete aa   indicare che la vostra rete non ha alcuna SSID Ch RSSI Ser MAC Address Suites   password di protezione   WiFly join ssid    Ca  S E A EE ri x  ricate lo sketch  lasciategli qualche secondo e n     E     LL  se tutto    a posto  su serial monitor comparir    la scritta    associated        Provate ora a configurare il vostro router per    l   accesso alla rete con credenziali  come ad                      Carriage retum   5600 baud       Waiting for input   ADVANCED TOOLS STATUS  CHO   var   WiFly Ver 2 21  09 11 2010    lt 2 21   set wlan ssid dlink   ADE    lt 2 21 gt  join dlink   Auto Assoc dlink chan l3 mode 0PE
12.   COMI   TW Porta di comunicazione  COM2   TP Porta stampante  LPT1   EAT USE Seral Por  COMBO    a  Processori   H E Schede di rete          Fig 26   Selezione COM sul software X CTU        DE X CTU  About  PC Settings   Range Test   Terminal   Modem Configuration       3600 E    Flow Control  NONE v    Data Bits     x   Parity  NONE       Stop Bits    Host Setup User Com Ports   Network Interface      User defined com ports   User  COM30     Add User Com Port  Com Port Number     Delete User Com Port    presi    A ELETTRONICA IN   Dicembre 2010   Gennaio 2011 149    Fig 27   Report della funzione Test Query di X CTU     Com test   Query Modem    Communication with modem  OK  Modem type   XBP24    Modem firmware version   10E6  La prima versione  siglata V1 0  faceva uso di  soli componenti non SMD  mentre l   attuale  versione V1 1  che abbiamo utilizzato  Fig   31  dispone di piazzole idonee ad accettare i  componenti sia classici che SMD    Dallo schema  Fig  32  si capisce che la ten   sione di alimentazione per il modulo XBee    pIy OS109          Fig 28   Fase di scaricamento  aggiornamento definizione moduli     z  5  O    Get new versions viene ricavata internamente da un apposito  Update source  regolatore partendo dai  5 V della scheda Ar   E File duino  Le uniche linee utilizzate di Xbee sono  Status la DIN  RX  e la DOUT  TX  le quali fanno  Downloading  XBP08 DP_1027 capo a due jumper  la linea DIN ha un par   O O GO F   titore per poter essere comandata con log
13.   Ci     3332  ID      E  UBEE PRO 802 154 RS232 POWER H permette di usare il modulo XBee diretta   XBEE PRO 802 15 4 RS485 ADAPTER   Do  E  0  OL DS BEE PRO 802154 SENSOR ADAPTER mente da PC  ad esempio per l acquisizione  di dati da una rete di sensori posti in luoghi   gt   gt  N JE                  J  0  MM   MAC Mode diversi  Se il microcontrollore rimane inserito       150 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A       O     3  Ke   de   lt   O  W       O  O       Tabella 5   Lista dei principali parametri di default per modulo XBP24  XBee serie1      Parametro    default J  funzione    CH  ID    DH    DL    MY    SH  SL    C Set read the channel number  Uses 802 15 4 channel numbers   RANGE 0XC 0X17   3332 Set the PAN  Personal Area Network  ID  Set ID   OxFFFF to send message to all PANs  RANGE 0 OXFFFF   0 Set read the upper 32 bits of the 64 bit destination address  Set the DH register to zero and DL less than OxFFFF to transmit using a  16 bit address  0x000000000000FFFF is the broadcast address for the PAN  RANGE 0 OXFFFFFFFF   0 Set read the lower 32 bits of the 64 bit destination address  Set the DH register to zero and DL less than OxFFFF to transmit using a 16 bit  address  0x000000000000FFFF is the broadcast address for the PAN  RANGE 0 OXFFFFFFFF   0 Set read the 16 bit source address for the modem  Set MY   OxFFFF to disable reception of packets with 16 bit addresses  64 bit  source address is the serial number and is always enabled  RANGE 0 OXFFFF  
14.   D SH   Serial Number High  O SL   Serial Number Low      M ALOL Oiasadaaat O adiis       A ELETTRONICA IN   Dicembre 2010   Gennaio 2011 155    dell ing   MIRCO  SEGATELLO    Ardu    1no    Impariamo ad utilizzare le SD Card  con Arduino  avvalendoci di uno shield  realizzato appositamente     Settima puntata     ramai massicciamente utilizzate in fotoca    mere  palmari e navigatori satellitari per  immagazzinare dati  le schede di memoria del  tipo SD Card sono diventate in breve tempo  di largo utilizzo anche in apparecchiature  elettroniche hobbistiche  Il perch      molto  semplice  costano poco  hanno un elevata  capacit   di memoria  sono di facile gestione e  mantengono i dati anche in assenza di alimen   tazione  In breve  sono diventate il naturale  complemento della risicata memoria di cui  dispongono i microcontrollori  in tutte quelle  applicazioni dove si renda necessario l im   magazzinamento o la lettura di una conside   revole quantit   di dati senza spendere grosse  cifre  al momento in cui scriviamo  giusto per    fare le nostre prove  abbiamo comperato una  SD da 2 GB per appena 7 euro  Se conside   riamo che un buon microcontrollore dispone  di circa 1 kB di memoria non volatile  appare  evidente l abisso di prestazioni  La principale  applicazione delle SD riguarda essenzialmente  i data logger  ovvero quelle apparecchiature  che ad intervalli regolari memorizzano su di  un supporto non volatile una serie di dati   come  ad esempio  parametri ambiental
15.   O   I  CE  O  O          I motori passo passo      motori passo passo fanno sempre parte della gran   de famiglia dei motori in corrente continua  per    a  differenza di quelli a spazzole  i loro avvolgimenti  sono esterni  statore  mentre i magneti sono interni   rotore   Quindi non necessitano di spazzole per por   tare corrente al rotore  Questo implica alcuni vantaggi  tra cui l assenza di usura  minimi disturbi  proprio per  la mancanza dei contatti sulle spazzole   possibilit    di bloccare il rotore in una specifica posizione  per  contro  non    sufficiente collegare il motore ad un ali   mentatore ma bisogna comandarlo con un apposito  driver    Il driver deve essere in grado di fornire corrente al   ternativamente con una sequenza prestabilita su  ogni fase del motore  di solito quattro  alla quale cor   risponde la rotazione dell   albero motore di uno step   da cui  appunto  il nome di    step motor      A seconda  del tipo di motore  si possono avere 64  100  200   360 o pi   step con il vantaggio che    possibile man   tenere il motore fermo in un determinato step sempli        cemente fermando la sequenza di alimentazione ma  continuando a mantenere alimentato il motore  con  una corrente impostabile sul driver di comando   Viste  le esigue potenze realizzabili in pratica  questi motori  vengono usati per movimenti di precisione in stam   panti o bracci robotizzati per lo spostamento di piccoli  oggetti  La gestione da parte di un microcontrollore  risulta a
16.   O  Uh  fn  O  O       del chip KS0107B che per   consente una sola  risoluzione fissa pari a 128x64  Questo tipo di  display    abbastanza comune ed economico   ma la risoluzione non troppo elevata lo rende  poco flessibile  Una seconda categoria si basa  sull uso del cip T6963C  il quale permette di  gestire display con le seguenti risoluzioni   128x128  240x64 e 240x128    Esistono in commercio svariati altri modelli  di GLCD  ma non sempre sono disponibili le  librerie per il loro controllo  quindi  di fatto  risultano pi   difficilmente gestibili    Come primo esempio prendiamo in consi   derazione il display modello LM12864MBC  distribuito dalla Futura Elettronica  codice  1446 LCD102B6B  e basato sul chip KS0107B   quindi con risoluzione 128x64 in bianco e  nero  Come gi   spiegato per le prove con   il display di testo     necessario realizzare il  cablaggio elettrico e poi programmare ade     guatamente la scheda Arduino  i collegamenti    sono quelli descritti nella Tabella 5    Visto il carattere sperimentale dell   applica   zione  anche in questo caso utilizziamo una  breadbord su cui eseguire i collegamenti con  dei fili rigidi     possibile saldare sul display  un connettore strip femmina come quelli  presenti sulla scheda Arduino e da l    sempre  con dei filetti rigidi  eseguire i collegamenti   Sarebbe anche possibile saldare direttamen     Tabella 5   Collegamenti fisici tra il display  LM12864MBC e Arduino Duemilanove     Pin display   Nome J  funzione  G
17.   RESET    SCKPBS        MIBO2F3A       JH i    aBn MerxD GND    Gna M8TXD             GRIOI  GPIO0A  GND  GHD2 UCC3I NC  GNDI3  TEST GPI3  AGNO  SLEEP   FT232AL  RE    1k    I piedini di alimentazione risultano dispo   nibili sul connettore POWER e sono elenca   ti qui di seguito     e VIN   tensione di alimentazione esterna   pu   essere fornita tramite questo pin  in  alternativa al plug  oppure prelevata per  alimentare una scheda esterna    e 5V      l alimentazione stabilizzata per il  microcontrollore e i suoi componenti  Pro   viene dal VIN attraverso il regolatore della  scheda  oppure dalla USB o da un altra  linea di alimentazione fissa a 5 V    e 3V3   tensione di 3 3 volt generata dal chip  FTDI della scheda  da essa non    possibile  prelevare pi   di 50 mA  La linea corri   spondente pu   essere usata per alimentare  schede esterne    e GND   piedino di massa  zero volt      Memoria   La ATmega328 dispone di 32 kB di memo   ria flash per caricare il codice  di cui 2 sono  utilizzati per il bootloader   Ha inoltre 2 kB  di SRAM e 1 kB di EEPROM  che pu   essere  letta e scritta con la libreria EEPROM             lt MOS DPBI   xTASLZ  SSPR  cOCIPAI   XTALL cICP3P9o       AREF  lt ADCPC5  AUCE ADC AHPE 4  AGND  AO0CPC3   CADCQIPEZ  uve  cADCALPEIL  GNO CADCOIPCO        CIN POZ  CAINE RDG   TPIS   TEIPDA  SINTI PDG  CINTA PO    TXD  PDL     lt RxDIPDO                ATMEGAS  MERxD RS le  i      R9 ik  METXO        Ingressi e uscite   Ciascuno dei 14 piedini digital
18.   apposi   co a 169 254 1 100 e la maschera di sottorete to editor  touchosc editor  di immediato e facile    al valore 255 255 0 0  i campi DHCP e Router  vanno lasciati vuoti  Cliccate sulla connessio   ne per ottenere l associazione alla nuova rete   un segno di spunta apparir   di fianco al nome  della rete  i                      This is a tool to help you troubleshoot problems with the Wifly shield   For consistent results unplug    replug power to your Arduino and WiFly shield         i Touch  r  Editor   an beyin touchas               Ensure the serial monitor is not cpen when you remove power      Atterpting vo connect vo SPI UART     Connected to SPI UART            Use      with no line ending  to enter WiFly command mode    CMD           Then send each comand followed by a carriage return   Waiting for input     Connected via Ad Hoc on ARDUINO  Using Static IP   IF Up  DECP OFF  Ip 169 254 1 1 8000  NM 255 255 0 0     Gw 0 0 0 0    fi1 togglel        l1 togglel        fi togglel                        A ELETTRONICA IN   Luglio   Agosto 2011 157    Fig 24   Risultati dello sketch wiflyosc_01        OSC Test    Tentativo di connessione a SPI UART     Connesso a SPI UART     Pronto     Adress  l togglel ARG 1 0000000000    Adress  l togglel  ARG 0 0000000000    Adress  l faderl  ABRG 0 0000000000                                         V  Autoscroll    utilizzo tramite PC  Il sito di riferimento     www hexler net    Tramite l editor di Touchosc realizzate una  scher
19.   conosce il numero seriale dei vostri moduli  non potr   in alcun modo intromettersi nella  comunicazione     ESEMPI DI UTILIZZO   Vediamo adesso alcuni esempi di configura   zione di sistemi wireless con moduli XBee   nel primo  il Modulo A pu   trasmettere solo  a B  mentre quest   ultimo pu   trasmettere a  chiunque  La configurazione    la seguente     e Modulo A  DLA SLB DHA SHB   e Modulo B  DLB 0 DHB 0     Il Modulo A usa come indirizzo di destinazio   ne proprio il numero di serie del Modulo B   che quindi    l   unico a poter ricevere i messag   gi di A  B invece ha come indirizzo di destina   zione 0 e quindi trasmette a tutti    Un secondo esempio che possiamo fare   prevede tre moduli A B C che comunicano in  questo modo    e A invia i dati a C    e B invia i dati a C    e C invia i dati sia ad A che a B     Quindi A e B non comunicano direttamente  tra di loro  La configurazione    la seguente   e Modulo A  DLA 2 DHA 0 MYA      e Modulo B  DL8 2 DHB 0 MYB  1     e Modulo C  DLc 1 DHc 0 MYc 2     Il Modulo C ha come indirizzo di destinazio   ne lo stesso valore dell indirizzo sorgente dei  moduli A e B  quindi ogni suo dato inviato   giunger   sia ad A che a B  Sia A che B hanno       Fig  35   Funzione Terminal di X CTU     DE X CTU  COM30   About  PC Settings Range Test   Terminal   Modem Configuration      Clear Stats    Advanced  gt  gt  gt       Test    Todo  00 D    G    Transmit    Receive    COM30  9600 8 N 1 FLOW NONE       Fig  36   Funzione Range Test 
20.   creare una propria Arduino compatibile   con il software originale  sono disponibili in  commercio diversi cloni  Bench   i progetti  hardware e software siano resi disponibili  con licenze copyleft  gli sviluppatori hanno  espresso il desiderio che il nome    Arduino     o  suoi derivati  venga riferito solo al prodotto  originale e non sia usato per indicare opere  derivate senza il permesso  Il documento che  esprime la policy ufficiale sull uso del nome     Arduino    mette l accento su come il progetto    eramma  Dopo qualche secondo dovrebbero sia aperto ad incorporare lavori altrui nel pro     lampeggiare molto velocemente i LED RX e dotto ufficiale  Quale conseguenza di queste  TX sulla scheda convenzioni sulla protezione del nome  molti    prodotti simili ad Arduino sono presenti sul  mercato ma con nome diverso dall originale   come Freeduino o Seeeduino  Il nome non          5  O          Il pulsante di compilazione        Upload    nell interfaccia grafica del pro     Significa che la scheda sta comunicando con  il computer  Se la procedura    andata a buon    fine apparir   il messaggio    Done uploading    a  RA per   inteso come un marchio commerciale    e ma    liberamente utilizzabile da chiunque lo  Arduino Mini  NG  o altri tipi di schede  desideri  Tra le schede disponibili sul mercato    la SeeeduinoV2 12  completamente assembla   ta con componenti SMD  propone una valida  alternativa all originale con alcune differenze   tra cui la possibilit   di prog
21.   l   uso con una sempli   ce breadboard e qualche spezzone di filo non  risulta molto agevole     Tabella 2   Descrizione della piedinatura EM406A    Zero volt alimentazione  ground     Alimentazione positiva 4 5 6 5 V    programmazione    Segnale di uscita RS232  uscita dati     Fornisce un impulso ad ogni lettura   1 al secondo     Segnale di ingresso RS232 per operazioni di       5  O       O     5  y      lt   O  W  fa  o   O       Il primo modello che prendiamo in conside   razione si chiama EM406A ed    un modulo  GPS a 20 canali con antenna integrata  le cui  caratteristiche essenziali sono    e chipset GPS a 20 canali SiRFStar II    e alta sensibilit     159 dBm     e precisione nella posizione di  10 metri  2D  RMS e di  5 metri  2D RMS    e precisione nel calcolo della velocit   di  0 1  m s    e TIFF  Time To First Fix  estremamente  efficace anche con livello di segnale non  ottimale    e supporta lo standard dati NMEA 0183  GGA  GSA  GSV  RMC VTG e GLL     e protocollo di comunicazione in logica TTL  a 4 800 bps    e tecnologia SuperCap che permette una  rapida acquisizione dei dati dal satellite    e antenna patch integrata    tempo di cold start di 42 s  da spento ad  acceso     tempo di hot start di 1 secondo   alimentazione  4 5 V   6 5 V    consumo  44 mA    dimensioni di 30x30x10 5 mm        possibile impostare il ricevitore per fornire  diverse serie di dati in uscita  ad esempio  la  sequenza GGA    quella illustrata nella Tabel   la 3  La stringa ricevu
22.   la GPL     classificabile come    persistente    e    propagati   va           persistente    perch   impone un vincolo  alla redistribuzione  nel senso che se l utente  distribuisce copie del software deve farlo  secondo i termini della GPL stessa  In pratica   deve distribuire il testo della GPL assieme al  software e corredarlo del codice sorgente o   di istruzioni per poterlo ottenere ad un costo  nominale    Questa    la caratteristica principe della GPL   il concetto ideato da Richard Stallman e da lui  battezzato copyleft  Il suo scopo    di mantene     Ta EEE E  Mu pii LI    n  LUI SID    a L TAL  EE HT TEES GK L  titti meli s  A E  i Arduino    ha e e ei  GE eil p Diecimila    Bg Sp  Da i La E  SII   E p  I n   mi       Modulo Arduino Diecimila     re libero un programma una volta che esso sia  stato posto sotto GPL  anche se viene miglio   rato correggendolo e ampliandolo          propagativa    perch   definisce nel testo    MADE iN Da A   TL dea  F sal  alli        Air duira  m    Duemilanove  dall  T i    MO 9  i Fino    ir      i a  T Li  TEES ae eE  SeT     F       1  z     O E a a          Un esemplare di Arduino 2009     una particolare interpretazione di    codice  derivato     tale che in generale l unione di un  programma coperto da GPL con un altro pro   gramma coperto da altra licenza pu   essere  distribuita sotto GPL    Sia la scheda originale che i suoi cloni fan    no uso di shields  ovvero di espansioni alla       Modulo Arduino Mini     A ELETTRO
23.   portando in OFF il  MOSFET NDT2955 quando sente la presenza  dell   alimentazione primaria letta tramite le    Cartelle  arca DO PE  dic DI jp  arie DI E  dra SI E  diir  PE  deli DI g  dalia I PE  wirp  dihar  E  delia DT 7  dla SIM E  dr DO j  quilt   jE  herp  15       Contenuto del file compresso scaricabile da Internet     resistenze R10 ed R11   Il clock    ottenuto tramite un quarzo a 16 MHz     Found Hes tar dare Wira    Walco to the Found Hew  Hardware Wizard   rai rel ape b cir de  at e   tati n e goa    dentate mae ia etica rin LEE dii    fa Wire Updated pie fee ra porn  Fat ae irnir pela     Tap ian i iP Va A ppt e di bja  mape        Tar  eo le dda  Tri  Si ei ir a   dii    rta  105  Pad rt Bua  lan       Avvio schermata richiesta driver     che stabilisce l intervallo di tempo per l   esecu   zione di una istruzione  in quanto quasi tutte    Found Hes tardare irad    Tiri vatani Pabi pl rotoli siempre lele  FLEA UH LAAT    ca m i h  i       kiia di yir pnt ha aiii e cd     12  hrpta bia 4 bel ce iie kaia iriri    Chri Magia ky gonira    RIC       Impostazione manuale del percorso dei driver     A ELETTRONICA IN   Maggio   Giugno 2010 149    Found Hes Hardeware Wira    C  Sepe da fe drm ir Bhana os iona    PRE ini lia pr i ceri iii ai un    secondo  MIPS  equivale ad un quarto  patta arci reercreabie mecha  l ha basi chvena kasdi ll ba rotaie  della frequenza di clock      O Saach satarra macha feep  CAEN   Notiamo dallo schema che tutti i segnali sono      ire
24.   possiamo sempli   cemente utilizzare l apposita GPS Shield  disponibile sempre dalla Futura Elettronica  con il codice 7300 GPSSHIELD  fornita gi    montata ed equipaggiata con il connettore  per il modulo EM406A  in essa sono presenti  anche un pulsante di reset ed uno di ON OFF  per il modulo GPS  Non comprende  per    i  connettori per il fissaggio alla scheda Arduino  che dovrete acquistare a parte  7300 STRIP6 e  7300 STRIP   e successivamente saldare   Questa scheda dispone inoltre di piazzole per  il collegamento del modulo EM408  funzio   nante a 3 3 V  Per il modulo EM406  la scheda  provvede a fornire l alimentazione a 5 volt  ed il cablaggio dei due  Fig  3   GPS segnali TX ed RX del  shield con modulo GPS con le linee D2 e D3  EM4064  di Arduino  Particolare  attenzione deve essere  posta nell uso del devia   tore DLINE UART  Con il  deviatore in posizione  T UART il modulo GPS     connesso alle linee  digitali 0 e 1  ovve   ro le linee TX ed RX  del modulo UART  di Arduino  Con il  deviatore in posizione    Ei  ELETTRONICA IN   Aprile 2011 149    ETTI  do do    aati      D DD 00g  1000000   im  Goaobcdo o J  GDGOGOO iti  m Di 0G 0 ni il  150 00000  ig  Oddo aiia  O     L      L  L  k     Ra tal mju    IDD ODD  cen    0000   me 805 006 Ra Dio    a   14   DES Aiminld            Pipino e STI 1  sparbiluncomi     asaan    mr    Fig  4   GPS shield e sue funzioni        DLINE il ricevitore GPS    connesso alle linee  digitali D2 e D3 di Arduino  Ponete il deviato   
25.   yrile 2011   ELETTRONICA II Eil       O     5  Ke   Sea   lt   O  W  fa  O  O       in una posizione nella quale il segnale GPS  non giunge con la sufficiente intensit    Spo   statevi all   esterno  in una zona facilmente rag   giungibile dai segnali satellitari  ed attendete  che il modulo agganci correttamente i satelliti  e cominci la fase di tracking nella quale  ogni  secondo  invia i dati relativi alla posizione   Vediamo ora in dettaglio come funziona  questo sketch  che viene meglio descritto dal  Listato 1  Si parte con due righe di codice che  servono a includere le librerie NewSoftSerial h  e TinyGPS h e  a seguire  vengono definiti i pin  da utilizzare per acquisire i dati e il baud rate  corrispondente  Poi vengono create le istanze  e inizializzate le librerie  quindi si inizializza  l    UART e lo si imposta a 115 200 baud  ora  parte il loop principale nel quale lo sketch  attende l   arrivo di stringhe di dati dal lettore  GPS  Quando questi arrivano  le elabora per  estrapolare latitudine e longitudine  oltre ad  altri dati significativi  e ne invia le informazio   ni al PC    L elenco completo dei dati estraibili dalla sen   tenza GGA in arrivo dal ricevitore GPS sono i  seguenti      get position      get datetime      altitude      speed      COUTSE      stats      f get position      crack_datetime      f altitude      f course      f speed_knots      f speed_mph      f   speed_mps      f speed_kmphj       library_version     Un primo semplice utilizz
26.   zione alle COM utilizzate    Al posto di X CTU  per inviare e ricevere dati  con la scheda Arduino potreste usare anche  il Tools serial monitor di Arduino  La scheda  Arduino a sua volta potrebbe essere inserita  in un robot  del quale volete avere il controllo  da remoto  non solo per gestirne i movimenti  ma anche per acquisire parametri sul campo     PERSONALIZZAZIONE   DELLA COMUNICAZIONE   Se utilizzassimo tre moduli con configura   zione predefinita  il dato trasmesso da uno  qualsiasi giungerebbe agli altri due    Ora vediamo come si possono configurare  diversamente i moduli  ad esempio  vogliamo  comandare un robot a distanza  in modo che  non vi siano interazioni con altri robot even                    152 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A            Fig  32    Schema elettrico  XBee shield                    eI  OS109       5  O       O  z  3  Ke   de   lt   O  W       O  O       tualmente presenti nelle vicinanze che utiliz   zano la stessa tecnologia wireless  il modulo  XBee A deve comunicare solo con il modulo  XBee B  Sicuramente  per quanto detto prima  entrambi i moduli dovranno avere stesso ca   nale e stesso ID  cio   appartengono alla stessa  PAN  dovranno  perci    essere configurati in  questo modo       Modulo A  DLA SLB DHA SHB     Modulo B  DLB SLA DHB SHA     Avendo inserito come indirizzo di destina   zione in ciascun modulo il numero seriale  dell altro  la comunicazione pu   avvenire  solo tra questi due moduli  E se nessun altro
27.  11 DIO4 Either  12 CTS   DIO7 Either  13 ON   SLEEP   DIO9 Output  14  reserved    15 Associate   DIO5 Either  16 RTS   DIO6 Either  17 AD3   DIO3 Either  18 AD2   DIO2 Either  19 AD1   DIO1 Either  20 ADO   DIOO   Commissioning Button Either    Non vi dovete spaventare per la quantit   di  contatti di questi moduli  in quanto per l   uti   lizzo pratico sono richiesti solo VCC  GND   DOUT e DIN  oltre che limitate connessioni  con supporto per aggiornamento firmware   VCC  GND  DIN  DOUT  RTS  amp  DTR  ogni  modulo include una resistenza di pull up da  50 kohm sul pin di reset  Non    strettamen   te necessario comandare questo pin  quindi  possiamo anche lasciarlo scollegato  Alcuni  ingressi possono essere programmati con  resistenza di pull up o meno  mentre i pin non  utilizzati vanno lasciati disconnessi     CONFIGURAZIONE DEI MODULI   La configurazione dei moduli XBee pu   essere  fatta tramite comandi AT  ma pu   diventare  pi   semplice utilizzando il programma X   CTU  che la MaxStream Digi fornisce gratui   tamente per ambiente Windows  Questo sof   tware permette altres   di testare la rete radio  tramite la misura dell intensit   del segnale   e la qualit    errori rilevati  e consente anche  l upgrade del firmware dei moduli  X CTU     scaricabile dal sito del produttore all indirizzo  http   www digi com support   selezionare come  prodotto XCTU successivamente accedere alla  pagina del download nella sezione    Diagno   stics  Utilities and MIBs       Per in
28.  13A200 Read high 32 bits of modems unique IEEE 64 bit source address  64 bit source address is always enabled    4062B32D   Read low 32 bits of modems unique IEEE 64 bit source address  64 bit source address is always enabled     nella scheda esso potr   comunque  comunicare via USB normal   mente  ma n   il computer n   il  microcontrollore possono comu   nicare con XBee    Vogliamo ora implementare un  semplice esempio  nel quale un  dato inviato dal PC arriva alla  scheda Arduino e questa risponde  con lo stesso dato ricevuto  una  specie di ECO che ci permette di  verificare se il collegamento wire   less funziona  Il Listato 1 mostra  le righe di codice corrispondenti   Il programma semplicemente  aspetta un carattere in ricezione     DE    Ta                         XBee_01   Prova moduli Xbee   riceve e rispedisce un carattere  attiva LED 13 se riceve il carattere H  spegne LED 13 de riceve il carattere L      byte ChRX  0    carattere ricevuto    int Led   13     LED connesso al pin digitale 13      void setup    Gi    pinMode Led  OUTPUT    Serial begin 9600      AAA Rei     Velocit   seriale   BD XBee       void loop    PX    while  Serial available   gt  0   lt 4    il carattere    h    accende il LED  della scheda  mentre il carattere     I    lo spegne  in ogni caso l   infor   mazioine viene rispedita indietro  sia tramite il modulo Xbee  sia  tramite la USB  Se Arduino    con   nessa al PC ed    aperto l Editor     Arduino con attivato il tools Serial       mo
29.  3 trovate il programma usato per  testare il display  che permette di impostare   la retroilluminazione a zero  spenta  cancella    ELETTRONICA IN   Agosto   Settembre 2010 141       Vi  Display_04    Semolice esempio utilizzo GLCD a comando seriale   Si Usano SUbRourine per i comandi  Per il cablaggio hardware     eI vAe  I eLo     Graphic LCD Serial Backpack connesso a GLCD ADM12864H  an  Usare te linee Vin  GND  TX        3  void setup    i  Serial begin 115200      imposta comunicazione a 115200 baud     voridiziioo p     i  ba ckigntd055    Retroilluminazione a 0   el ieerlenoa    Cancella schermo  cUrsorsetrl 40 30  s    Imposta posizione per il testo  Serial  print    ElertrtronicaiN          scrive un testo nella posizione indicata  Ened R ORSO ONIODE    Disegna una linea  lee doi 005    Disegna un cerchio  delay z2000   lt   J          SUbROuUtINE   amp     cancella LCD  o Mono er on  SCR  Serial printl0x00  BYTE                      gestione retroilluminazione  volld backlfight Covre iSight   SERIE MCO BYTE  s   Serial  print 0x02  BYTE  s   Serial  printi lighrt s    imposter zero per oisaoilircare la rercroilluminazione          disegna una linea   void line byte x1  byte yl  byte x2  byte y2    byte buf_line   AI 0xX0C  0  0  IAA   Serial print 0x7C  BYTE      Disegna un cerchio  Serial  print OxoC  BYTE  s    Serial  pPrint xi  BYTE       Coorcdinata Xi  Serial printy  BYTE  s Coordinate Vi  Serial Print x2  BYTE  e  l Coorcdinarta X2  SS EA ODE  i Coorcdinata 
30.  8U2     grammi per l   ATmega8U2 si chiama Atmel   s  FLIP software per Windows  si scarica dalla  pagina web http   www atmel com dyn products   tools_card asp tool_id 3886  e DFU program   mer per Mac OS X e Linux  si scarica da http     dfu programmer sourceforge net      Ai pi   preparati non passer   inosservato il    Connettore programmazione  atmega8u2    sd   si mom ARDUINO    DI intern cadi SOCIET         Fig 7   Piazzole per la programmazione di 802     grosso vantaggio di avere il convertitore USB   Seriale programmabile  infatti sino ad ora  Arduino poteva essere visto dal PC solo come  una periferica seriale e infatti i driver del  convertitore della FDTI creavano una seriale  virtuale    Adesso  invece  potendo programmate il  convertitore  Arduino pu   essere visto dal  sistema operativo del PC come una periferica  ad hoc  Nulla vieterebbe di far rilevare Ar   duino come una stampante e quindi  qualora  inviaste il comando di stampa da un qualsiasi  software  i dati giungerebbero ad Arduino    il quale  magari  pu   cos   controllare una  macchina CNC  Allo stesso modo si potrebbe  inventare un nuovo sistema di puntamen    to che  una volta connesso al PC  verrebbe  riconosciuto come periferica tipo mouse ed il  cursore sullo schermo si muoverebbe guidato  da questa nuova periferica  Vi lasciamo im   maginare quale interessante scenario Arduino  UNO apre su quanto riguarda lo sviluppo di  nuove periferiche per PC  DI    Arduino    la piattaforma open source al
31.  A questo punto sar   presente la periferica Arduino cor   rettamente installata e verr   indicato quale COM le     stata assegnata     _          L Gestione dispositiv Miliani    Gestione dispositivi X  Eile Azione Visualizza    File Azione Visualizza       Eile Azione Visualizza I  f     PR o5Bma MAE     M   AEma    a ACER_M3630   a ACER MOEI   4      ACER_M3630  a  n Altri dispositivi a  Df Altri dispositivi      p Altri dispositivi  Sa Arduino Uno   d   Arduino Une       gt  JR Computer   Un Dispositivo sconosciuto ip Dispositivo Aggiornamento software driver      2 Controller audio  video e giochi  ji Computer bll Computer   Disattiva        Controller host bus IEEE 1394    4 Controller audio  video e giochi af Controller audi Disinstalla   Lg Controller IDE ATA ATAPI        Controller host bus IEEE 1394       Controller host        Controller USB  Universal Serial Bus    gt  ci Controller IDE ATA ATAPI  gt  cai Controller IDE Rileva modifiche hardware  gt  JI Dispositivi di sistema      Controller USB  Universal Serial Bus    Controller US       8 Dispositivi portatili    SIE Dispositivi di sistema posti Dispositivi di si     a Human Interface Device  HID       MR Dispositivi portatili b AB Dispositivi portatili   gt    F Human Interface Device  HID      Mm Milouse e altri dispositra di puntamento  F Porte  COM e LPT  1 Porte  COM e LPT    E Processori  D Processori    E Schede di rete b RF Schede di rete   E Schede video  EZ Schede video    gt  Ma Schermi Ma Schermi   
32.  LED integra   ti collegati sul pin 13  Nelle schede Arduino  le istruzioni necessitano di un ciclo di clock NG Rev  C e precedenti il pin 13 ha comunque  per la loro esecuzione  Nei microcontrollori una resistenza integrata  ma bisogna prov   Microchip  ad esempio  sono necessari 4 vedere a collegare un LED esterno  In questo  impulsi di clock per eseguire un istruzione caso    necessario connettere il polo positivo  il  e quindi il numero di istruzioni eseguibili in reoforo pi   lungo  del LED al pin 13 e il polo    negativo  quello corto  alla massa  marcata  con    GND      per non sbagliare  ricordate che  i LED sono normalmente piatti dalla parte del  catodo  negativo     Vediamo ora  per passi  come improntare la  nostra primissima applicazione     1  Procurare il materiale   Per prima cosa dobbiamo procurarci una  scheda Aduino Duemilanove ed un cavo USB  con connettore standard A B  che    quello nor   malmente utilizzato per collegare una stam   pante USB al computer    2  Scaricare il software Arduino     Per programmare la scheda Arduino      Il programma di esempio    LED blink     necessario disporre dell ambiente software       150 Maggio   Giugno 2010   ELETTRONICA IN A       O  z  3  Ke   de   lt   O  W       O  O       Arduino  Facendo riferimento al sito ufficia   le Arduino  scarichiamo il software relativo  all ambiente di sviluppo  al momento in cui  scriviamo    disponibile la versione per win   dows arduino 0018 zip  quella per MAC ardu   ino 0018 dmg 
33.  PrintNumber number   GLCD CursorTo x  y     Ve aa    CERI FETI  IENE sasa       Fig  3 Fig  4 Fig  5    della scheda Arduino  per la quale dobbiamo  procurarci le librerie specifiche per il display  grafico LCD con chip K0108  sviluppate in  questo caso da terze parti  Sempre sul sito  ufficiale in lingua inglese di Arduino  pote   te trovare una sezione dedicata a       KS0108    descrizione    Inizializza la libreria per il disegno normale o invertito  Se normale ogni pixel viene disegnato  appare scuro    se invertito il pixel viene cancellato     Posiziona il cursore nella posizione x e y  dove 0 0    l   angolo superiore sinistro     Cancella lo schermo     Disegna un cerchio alle coordinate x y di raggio radius    Disegna una linea dalle corrdinate x1 y1 alle x2 y2    Disegna una linea verticale dalle coordinate x y di lunghezza length   Disegna una linea orizzontale dalle cordinate x y di lunghezza length   Disegna un rettangolo     Disegna un rettangolo con gli angoli smussati     Disegna un rettangolo pieno    Inverte i pixel del rettangolo specificato    Imposta il modo di disegno invertito    Disegna un pixel alla posizione x y    Disegna un immagine bitmap alle coordinate x y     Imposta i font dei caratteri    Scrive un carattere    Scrive una stringa    Scrive una stringa contenuta nella memoria del programma   Scrive il valore decimale di una variabile numerica     Imposta le coordinate di base per i font a larghezza fissa        Tabella 6   Comandi per la ges
34.  Start in modo che il carattere  venga spedito in continuazione  il software  verifica la corretta ricezione ed il relativo  livello  Il perch   inviamo un solo carattere     dovuto al fatto che lo sketch prevede  appun   to  la ricezione e l   invio di un solo carattere  se     A ELETTRONICA IN   Dicembre 2010   Gennaio 2011151         0 x _ 0 _ 1       Fig  31  XBee shield  Verione 1 1        invece collegassimo RX e TX assieme sul se   condo modulo  Arduino duemilanove e XBee  shield omessi  potremmo trasmettere quanti  caratteri vogliamo    La linea RSSI programmata come tale  para   metro P0 1     un uscita PWM con duty cycle  variabile a seconda del livello del segnale  che viene valutato ad ogni ricezione di dati   con un piccolo filtro passa basso si ottiene  una tensione proporzionale alla potenza del  segnale ricevuto  Il PWM rimane attivo per il        pp papi pi PPP    DA o E o A     303    xXB1    UCC  RESETS    ON SLEEP   O PUM  RSsI  10k    sn DIN CONFIGN  Ri DOUT  la    ap    CD DOUT_EN D08  DTRAX SLEEP_R0 DI8  CTS  0I0   GND RI z RTS  AD6 010     4 ASSOC ADS DI0S  ASSOCIATE RF_TX AD4 DI04  8 4 COORD_SEL AD3 DI03     AD2 DI02  Ti R3 GND 3 2  AD1 0101  E dec ADO DI0E  BC54 8    3 o  UREF  NU GND  GNO XBEE  PRO  GND                      tempo indicato dal parametro RP  in 100 ms    Lo schema generale adottato    riportato nella  Fig  37  il secondo PC pu   essere omesso   essendo XBee gestito da Arduino  oppure     possibile utilizzare lo stesso PC facendo atten
35.  USART interno al  microcontrollore e sono connessi al converti   tore USB Seriale della scheda    Sempre in tema di comunicazione  va detto  che il microcontrollore ATmega328 utilizza   il modulo UART interno per comunicare    con livelli logici 0 5 volt  via seriale con altri  dispositivi o con un PC  I segnali corrispon   denti sono disponibili sui pin esterni  TX e  RX  e risultano connessi anche al convertitore    Installare Arduino UNO su Seven    Seven    strutturato in modo da installare in automatico  ogni periferica eventualmente cercando in rete i driver  pi   opportuni  Arduino    per   una periferica molto parti   colare  ragion per cui la procedura automatica potrebbe  non andare a buon fine    Quando inserite Arduino il sistema operativo identifica la  presenza di una nuova periferica senza per   riuscire ad  installare i driver  e ovviamente non disponete del CD di  installazione  in questo caso dovete procedere manual   mente all   installazione dei driver  Dopo aver inserito la  scheda Arduino Cliccate su Avvio Pannello di controllo              Gestione dispositivi  troverete evidenziata la periferica  Arduino con un punto esclamativo in quanto presente  ma non correttamente installata    Cliccate con il pulsante destro del mouse sopra la pe   riferica e selezionate Aggiornamento software Driver     Quindi selezionate a mano la cartella    driver    del soft   ware Arduino  la procedura proseguir   adesso in auto   matico sino alla completa installazione   
36.  apertura  della connessione e prima della trasmissione  di qualunque dato  La Duemilanove contiene  una pista che permette di disabilitare l auto   reset     sufficiente ripristinare il contatto    che sullo stampato viene identificato come     RESET EN     per ripristinare la funzione     Protezione da sovratensione della USB   La Arduino Duemilanove ha un fusibile au   toripristinante che protegge la porta USB del  computer da cortocircuiti ed eccessiva ten   sione di alimentazione  Anche se la maggior  parte dei computer gi   prevede una prote   zione interna  il fusibile fornisce un ulteriore  livello di tutela  Se pi   di 200 mA attraversano  la porta USB  il fusibile interrompe automa   ticamente la connessione fino a quando il  cortocircuito o il picco non venga meno     Caratteristiche fisiche   Il PCB della scheda Duemilanove misura 6 8  per 5 33 cm e riporta tre fori per il fissaggio  della scheda ad una superficie o ad un conte   nitore  Il connettore USB e il plug per l ali   mentazione escono leggermente dal profilo  dello stampato     Approfondimenti sull hardware   Una prima fonte di alimentazione pu   essere  applicata al plug al quale fa capo un diodo a  protezione dall   inversione di polarit   ed uno  stabilizzatore di tensione a 5 volt  L alimen   tazione giunge anche tramite il connettore  USB  ma solo se non    presente l   alimenta   zione primaria  infatti il circuito composto  dall   operazionale IC5 provvede a disabilitare  l alimentazione dalla USB
37.  blink   ARDUINO 0018 Examples Digital Blink   pde    Di lato ecco come appare il codice del pro   gramma di esempio che far   lampeggiare il  LED  Selezionate la scheda Arduino dall   elen   co disponibile in TOOL BOARD    Selezionate la COM alla quale    connessa   la scheda  Questa indicazione viene anche  riportata durante l installazione dei driver  ma       Il codice del programma LED Blink     Brie ere e Mer e  A ATEO E I La  Brie   sana niro   Beffa   i e e    i Al cca nto di coon   ra hi r Fa he dA iia e i  deim b e Pe Mali i PP E o gi  ressa T I m E i ei   iie Pa  co mm o i gal                Menu di scelta della scheda Arduino     pu   essere ricavata leggendo dalle periferiche  installate tramite il percorso  Computer   pul   sante destro propriet      gestione dispositivi   porte COM  amp  LPT   USB serial PORT   Assicuratevi che sia selezionata la voce    Ar   duino duemilanove    nel menu Tools  gt  Board   Ora basta semplicemente fare clic sul pulsante     LE    h ea eiie    Cesi e j RIS  r    TET   f Crie EE ern a a  ai apn E a   E eni e   Hi enim erki   Fj Timan Ren po n Panico DUB    Fh bbpapi P die E ae e     I    pl b e pp DI       Ricerca della porta COM virtuale assegnata ad Arduino     Ei  ELETTRONICA IN   Maggio   Giugno 2010 151    ea LL  ip im mr pri  a    ambra lampeggiare sulla scheda   Congratulazioni  Se lo vedete  avete una sche   da Arduino connessa e funzionante     pIy OS109    CLONI DI ARDUINO   Per il fatto che    possibile per terze parti
38.  di testo che non aggiun   ga formattazione  come ad esempio    Blocco  note    di Windows  in alternativa copiate  sulla  SD Card  il file di prova hola txt presente nei  file della libreria       necessario fare questo perch   la libreria non     in grado di creare un file  n   tantomeno un  testo  semplicemente si occupa di scrivere   o leggere all   interno dei caratteri che avrete  preventivamente inserito    Inserite la SD Card nello slot della SD Shield   la quale a sua volta    inserita nella scheda  Arduino  assicuratevi che il deviatore PWR sia  in posizione D9  quindi connettetela via USB  al PC  come al solito  Avviate l   IDE Arduino e  caricate l esempio SDuFAT    Nel codice corrispondente  cercate la riga  seguente        define the pin that powers up the SD card   define MEM_PW 8    Quindi modificate il numero del pin di ali   mentazione in 9  con il comando seguente      define MEM_PW 9    Adesso  come al solito  caricate lo sketch su  Arduino  Avviate Tools  gt Serial Monitor ed  impostate un baud rate di 19 200 bps  Dal    le indicazioni riportate sullo sketch potete  ricavare i comandi  via seriale  che gestiscono  la SD Card  per verificare che il collegamento  funzioni  inserite il carattere    H     maiuscolo   e cliccate su SEND  Arduino risponde con  l elenco dei comandi  Fig  13   Inviate il carat   tere    L    per avere come report lo stato della SD  Card    Ora inviate il comando    D     che permette di  cancellare il file ed inserire in automati
39.  dovr   essere la seguente      else    defined __AVR_ATmega1280__      168 and 328 Arduinos       Two Wire  aka I2C  ports  uint8_t const SDA_PIN   18   uins t const SCL PIN   19        SPI port   uintg  t const SS PIN  10   uint8_t const MOSI PIN   11   umis t const MISOUPIN  T  uint8_t const SCK_PIN   13     A questo punto avviate Arduino  quindi apri   te e caricate  UpLoad  l esempio SDFatWrite   se tutto    andato a buon fine verr   creato il  file WRITE00 TXT  con all   interno cento righe  che riportano i millisecondi da quando    stato  avviato lo sketch    Giusto per testare le funzionalit   di questa    Ei  ELETTRONICA IN   Febbraio 2011 155    Fig 20   Il file    data  Fig 21   Esempio di file creato  log    dopo la scrittura con libreria SDFAT   di 5 valori con sketch    FIERI TAT    Bosco dt      Ea  gna        Foiri   fobia        Di miilip   ra    m  ti    Ha   F millipg   HI   ta  onillif   DI  millii   Ha     Bitti   DT      aiilig   Has     silli     Pod   a    silliz   Fk    silliz   Fa   TIEF   PES     SD_03 pde        mia  UP   163  183  164  183    ig willig       Pur ottorese la aede  prerrane FI    libreria  abbiamo scritto un piccolo sketch   SD_02 pde  che permette di aggiungere al file  WRITEOO TXT 10 valori acquisiti dall   ingres   so Analog0 ad intervalli di un secondo   Utilizzate il file gi   esistente WRITEOO TXT   dopo averlo cancellato  o createne uno di nuo   vo  non    necessario scrivere alcun contenuto   La libreria FATI6LIB     la vers
40.  dovrai selezionare   Uno manualmente     sa ll TUBA lai    F        Tures 5  ai    ep Sorge arigazion  A tona      an 1 I O    ar E ille    gt     a    kesas Proa LAINI Tau B0St       standard Open Sound Control che si chiama  TouchOSC  il cui sito di riferimento    http     hexler net touchosc     Ei  ELETTRONICA IN   Novembre 2010 151    Fig  7    Fig  8    Fig  9    MITET 18 40    Touch0SC Network       Host  Port  outgoing   Port  incoming     Local IP address    Dal sito    possibile scaricare il manuale utente  touchosc manual v1 1 pdf ed alcuni esempi di  utilizzo anche per Processing    e simple pde  serve alla ricezione ed alla  visualizzazione di messaggi dal    Simple     layout  solo pagina 1   richiede la libreria  oscP5    e Example Code per la gestione dei dati dell   ac   celerometro    e Processing Apps     Processing examples   video  by Mike Cook           192 Novembre 2010   ELETTRONICA IN Ei        Fig  10    TouchOSC    scaricabile dall    AppStore della   Apple  al costo di 3 99 euro  giustificato anche   dal fatto che questa applicazione    completa    mente configurabile tramite un semplicissimo   editor  che pu   essere scaricato dal sito di rife    rimento e che       e touchosc editor 1 4 osx zip per Mac OS X    e touchosc editor 1 4 win32 zip per Win   dows    e touchosc editor 1 4 noarch zip per Linux o  altri sistemi operativi     Fig  11b    a bons          O     5  y  fa   lt   O  Uh     O  O       Per mettere in funzione il  tutto    bene in
41.  e per  la scritta    12     serigrafata vicino ai contatti   6 e 7  La corretta impostazione del tipo di  shield utilizzato deve essere specificato con la  variabile SHIELD_REVISION presente nel file  Configuration h della libreria  si veda la parte  riguardante il software di gestione  in questa  stessa puntata     Vediamo ora le caratteristiche implementa    te nel modulo WiFly della Rovin Network    si tratta di un modulo a bassissimo consu    mo  non superiore ai 100 mW  studiato per  funzionare con alimentazione a batteria e in  grado di interagire in reti wireless secondo lo  standard 802 11b g  Utilizza la banda radio  dei 2 4 GHZ e dispone di uno stack TCP IP   un real time clock  un interfaccia analogica e  della cifratura dei dati  Nella configurazione  hardware pi   semplice sono sufficienti quat   tro linee   Vcc  TX  RX  GND  per creare una  connessione wireless  La distanza di trasmis   sione  a seconda delle condizioni  arriva ad  un massimo di 100 metri  Queste  in sintesi  le  caratteristiche del modulo     152 Luglio   Agosto 2011   ELETTRONICA IN A    e bassissimo consumo  4 pA sleep  35 mA RX  e 200 mA massimi in TX    e velocit   di trasferimento fino a 1 Mbps  tramite UART    e supporto per reti    ad hoc       e interfaccia hardware UART ad alta velocit      e 10 linee digitali per uso generico   programmabili    e 8 linee analogiche per interfacciamento con  sensori    e real time clock  auto sleep e modalit   auto   wakeup    e alimentazione a 3 3 Vc
42.  espone il codice necessario alla  gestione del motore e impiegante la variabile  Delay  La libreria    stepper h    non    compati   bile con questo driver  ma    invece adatta ad  un driver pi   semplificato  senza logica  in  quanto la sequenza dell   alimentazione delle  fasi del motore viene generata internamente  dal firmware  sul sito ufficiale Arduino potre   te trovare alcuni esempi applicativi in cui     specificato il tipo di hardware da usarsi  J     A  ELETTRONICA IN   Ottobre 2010 121    Scopriamo Processing  il linguaggio   di programmazione Java based   e open source  col quale realizzeremo  diverse applicazioni  Quinta puntata     dell ing   MIRCO  SEGATELLO    rocessing    un linguaggio di program    mazione basato su Java  che consente di   sviluppare diverse applicazioni come  giochi  animazioni e contenuti interattivi  Ba   sandosi su Java  ne eredita completamente la  sintassi  i comandi e il paradigma di program   mazione orientata agli oggetti  in pi    mette  a disposizione numerose funzioni ad alto  livello per gestire facilmente l aspetto grafico e  multimediale     distribuito sotto licenza Open  Source ed    supportato dai sistemi operativi  GNU Linux  Mac OS X e Windows   Il pacchetto  scaricabile gratuitamente dal sito  ufficiale http   processing org  mette a disposi   zione un ambiente di sviluppo integrato  IDE    e le varie creazioni  chiamate sketch  vengono    organizzate in uno sketchbook  Ogni sketch  contiene in genere  oltre alle class
43.  essersi agganciato al  segnale dei satelliti  fornisce sulla sua uscita  una stringa di caratteri ASCII contenenti  oltre    alla posizione  importanti dati  Il ricevitore  GPS deve ovviamente essere nella condizione  di ricevere segnali dallo spazio e quindi non  funziona in ambienti chiusi come abitazioni o  gallerie  inoltre  come tutti gli apparati radio  operanti a microonde  riceve male in presenza  di palazzi o costruzioni di grandi dimensioni   dato che a tali frequenze la propagazione del  segnale    quasi in linea retta  Se la ricezione      buona  dopo l accensione serve un tempo  di acquisizione  denominato fixing  di solito  compreso tra 30 secondi e 1 minuto  dopo cui  il ricevitore passa alla fase di tracciamento   nella quale fornisce la posizione  Per chi vo        Fig  2   Piedinatura EM406A     Tabella 1   Contenuto della sentenza NMEA         GGA Dati relativi alla posizione    GLL Posizione geografica O  GSA Elenco satelliti attivi 3 3 o 5 volt con una corrente assorbita  varia  O  GSV Satelliti acquisiti bile a seconda del modello  tra 10 e 50 mA  D  RMC Dati minimi essenziali sulla posizione valore che va riducendosi con il migliorare i    Direzione al suolo e velocit      lesse approfondire l aspetto teorico di questa  tecnologia suggeriamo di leggere    Tecnologia  ed apparati GPS        VISPA edizioni  lo potete  richiedere alla nostra redazione o acquistare  on line dalla sezione Libri del nostro sito www   elettronicain it    La sequenza dei dati 
44.  inglese  Tutti i file saranno anche  disponibili per il download direttamente dal  sito della rivista a corso terminato  nel qual  caso sar   sufficiente copiarli in una cartella  in modo da renderli immediatamente utiliz   zabili  Per completezza riportiamo di seguito  alcuni riferimenti al linguaggio di program   mazione che  come precedentemente ricorda   to  deriva dall   ANSI C     Strutture  e void setup    e void loop      Controllo   e if   e if   else   e for   e switch case  e while   e do    while  e break   e continue   e return   e goto    Sintassi   e    semicolon    e     curly braces    e     single line comment    e       multi line comment     Operazioni Aritmetiche   e    assignment    e    addition  HEOR   e    subtraction    e    multiplication    e    division    e    modulo    Comparazione   e     equal to    e     not equal to    e  lt   less than    e  gt   greater than    e  lt    less than or equal to    e  gt    greater than or equal  to     Operazioni booleane  e  amp  amp   and         or     e    not     116 Luglio 2010   ELETTRONICA IN Ei     Operatori          increment      decrement   e     compound addition    e     compound subtraction    e     compound multiplication   e     compound division     Costanti   e HIGH   LOW   e INPUT   OUTPUT  e true   false   e Integer Constants    Tipi di dati   e boolean   e char   e byte   e int   e unsigned int  e long   e unsigned long  e float   e double   e string   e array   e void    Conversioni  e
45.  int     e long     e float      Funzioni        e3  OS109       5  o        Digital I O  e pinMode pin  mode   e digitalWrite pin  value   e int digitalRead pin   Analog I O  e int analogRead pin   e analogWrite pin  value    PWM  Advanced I O  e shiftOut dataPin  clockPin  bitOr  der  value   e unsigned long pulseIn pin  value   Time  e unsigned long millis    e delay ms   e delayMicroseconds us   Math  e min x  y   e max x  y   e abs x   e constrain x  a  b   e map value  fromLow  fromHigh   toLow  toHigh   e pow base  exponent   e sq   e sqrt x   Trigonometry  e sin rad   e cos rad   e tan rad     Random Numbers  e randomSeed seed   e long random max   e long random min  max     Serial Communication  Usate per comunicare tra schede  arduino  oppure tra schede arduino  ed il PC  Vengono usati i pin TX ed  RX  facenti capo al modulo     USART del microcontrollore   e Serial begin speed    e int Serial available     e int Serial read     e Serial flush     e Serial print data    e Serial printIn data     UTILIZZO DEI LED  SKETCH DANGER_01   Torniamo adesso al nostro primo programma  per la scheda Danger  nel quale  a differenza    Tabella 4    del programma Blink  useremo l uscita 6 in   vece della 13  Il programma sar   quindi come  esposto nel Listato 1    Dopo averlo compilato e trasferito al  microcontrollore  vedrete immediatamente  lampeggiare il LED  La scheda Arduino Due   milanove supporta il reset automatico  cos    cliccando semplicemente su UpLoad avrete  la comp
46.  l uscita PWM  Le righe di codice corrispon   denti sono riepilogate nel Listato 1    La Fig  4 mostra la schermata di uno sketch  che comanda i LED della scheda Arduino   facendo clic nella casella quadrata in alto a  sinistra  attivate il LED interno ad Arduino   mentre sul cerchio in alto a destra potete  vedere il livello logico del pin 2  usato come  ingresso  Il rettangolo in basso  se puntato col  mouse permette di regolare la luminosit   del       e3  Me    oLo        5  O       O     5  Ke   fe   lt   O  Uh  fn  O  O       LED connesso all uscita 9    Con un po    di pratica  seguendo i numero   sissimi tutorial ed esempi disponibili in rete   potrete realizzare la vostra interfaccia  vi ri   cordiamo che il software    in grado di gestire  anche grafica in 3D ed animazioni  L   applica   tivo pu   essere esportato in svariati formati   anche come applet java da inserire nel vostro  sito personale     anche possibile esportare  l applicazione in formato eseguibile   exe  per  i diversi sistemi operativi  in modo da distri   buire molto facilmente il vostro lavoro     OSC   Se gi   quanto esposto finora vi sembra ab   bastanza  adesso vi faremo vedere un   altra  interessantissima applicazione realizzata con  questo software  Si tratta di utilizzare il proto   collo OSC per poter gestire la scheda Arduino  tramite una periferica esterna con accesso alla  rete in modalit   Wi Fi    Ma andiamo per gradi e spendiamo due  parole per spiegare cos    OSC  Open Sound  Contro
47.  logica programmabile  quin   di i servo possono essere comodamente gestiti dai  microcontrollori     re predefinito    544     Max  opzionale   durata massima dell   impul   so  in microsecondi  corrispondente alla mas   sima rotazione  180 gradi  del servo  il valore  predefinito    2400      ISTRUZIONE ATTACHEDI     Verifica l associazione tra la variabile servo ed  il pin    Sintassi  servo attached      Parametri servo  variable di tipo Servo        e3  OS109    z  5  O       O     5  Ke   de   lt q  O  W       O  O       S         Listato 1     include  lt Servo h gt     f ervo myservo     aint pos O     for pos   0  pos  lt  180  pos    1             i    for pos   180  pos gt  1  pos  1     Ritorno  vero se il servo    associato al pin   falso in caso contrario     ISTRUZIONE DETACH     Dissocia la variabile servo al pin specificato   Se tutte le variabili servo non sono associate   i pin 9 e 10 possono essere usati come uscite  PWM con l istruzione analogWrite      Sintassi  servo detach      Paramettri  servo  variabile di tipo servo     ISTRUZIONE READ     Legge l   attuale posizione del servo corrispon   dente all ultima posizione passata con l   istru   zione write      Sintassi  servo read      Parametri servo  variabile di tipo servo   Ritorno  l angolo del servo da 0 a 180 gradi     ISTRUZIONE WRITE     Invia il valore in gradi relativo alla posizione  del perno del servo  Un valore 0 corrisponde  alla massima rotazione a sinistra  mentre 180  equivale alla ma
48.  numero  sul display in dotazione al  modulo  con la premessa    a          Listato S o_o  O                jx    Danger_06  Lettura ingresso analogico     Viene letta la posizione del Sliderl e visualizzata sul display con valori    da 0 a 9   Per DangerShield su Arduino Duemilanove  si       Corrispondenza tra i segmenti Cesi  aa umero a AZZ IEZZO    void setup          imposta i pin come uscite  pDinModellacchPin  OUTPUT   pinMode clockPin  OUTPUT    pinMode dataPin  OUTPUT        void loop           legge il valore del potenziometro   Slider_Pos   analogRead Slider_1       Converto il valore letto 0 1023 in un valore 0 9  Slider Pos   Slider Pos 103 lt       metto bassa la linea latch e predispongo per la trasmissione seriale    cdigitalWritellartrchPin  LOW      trasferisco in seriale il valore da visualizzare  shifcOurclcdarcaPin  clockPin  LSBFIRST  numerolslider Posl    digitalWrite larchPin  HIGH  s   delay 200      che il programma neces  a       sario allo scopo    legger    mente pi   complesso di quelli visti finora    Il display a sette segmenti ha bisogno di   sette linee di comando  ciascuna delle quali  accende un specifico segmento  accenden    do i segmenti in modo opportuno siamo in  grado di visualizzare un numero decimale  tra 0 e 9  In teoria servirebbero sette linee del  microcontrollore pi   un   ottava per il punto  decimale  ma    possibile risparmiare I O   usando opportunamente uno shift register  tipo 74HC595 quale convertitore da seriale   a par
49.  programmazione avviene connettendola via  USB ad un PC       LE    e        Fot     a  Goiiii   Digital    re me nidi TIR Adina    TT    Pa Poar aril vetrerlionze  ee    Ti x we r  Faili H   mE ir E       Modulo Arduino extreme     k    ELETTRONICA IN   Maggio   Giugno 2010 143    CR HHE LI ET    Jm PE a    BE  E meo  is  oca  ET    Php  r iui veste    Arduino extreme V2     Arduino USB V2 0     la seconda versione  della Arduino USB  In essa    stato corretto  un problema sulla USB e viene fornita nuova  documentazione a corredo     Arduino extreme  in questa versione vengono  usati pi   componenti a montaggio superficia     CI e Da J F gi    T 5 Digina    Arduino NG peg    usare e       Modulo Arduino NG     le  I connettori sono di tipo femmina a diffe   renza delle prime versioni  Sono installati due  LED sulle linee TX ed RX per monitorare il  traffico della comunicazione     Arduino NC REV C     144 Maggio Giugno 2010   ELETTRONICA IN       Arduino extreme V2     fatta come la versione  precedente  ma con piano di massa sul PCB     Arduino NG     la New Generations di ar   duino ed utilizza il convertitore USB Seriale  di FIDI FI232RL  che richiede meno com   ponenti esterni dell   FT232BM  Inoltre ha un  LED incorporato sul pin 13  La versione plus  viene fornita con un ATMega 168 invece di un  AIMega8     Arduino NG REV C  la versione C di NG non  ha il LED incorporato collegato al pin 13  ma  semplicemente una resistenza da 1 kohm  il  LED pu   quindi essere conness
50.  sezioni diverse    e la prima  area riservata     il settore di avvio  e contiene di codice del boot loader per il  sistema operativo    e la regione FAT contiene la mappatura della  regione dati e  per motivi di sicurezza     in  duplice copia    e la Root Directory memorizza le cartelle ed i  file presenti nella directory principale  chia   mata root  appunto  ed    presente solo nella  FAT12 e nella FAT16  mentre nella FAT32 la  memorizzazione avviene direttamente nella  regione dati    e l area dati  che    quella dove sono memo   rizzati i file  occupa la maggior parte della  partizione      Prima di iniziare ad utilizzare la nostra SD   Card con Arduino dobbiamo procurarci le  relative librerie che ci assolvono da tutto il  lavoro necessario ad implementare il proto   collo di comunicazione  il bello di Arduino     proprio questo  La pagina web di riferimento  di Arduino    la seguente  www arduino cc   playground Learning SDMMC      SMETTE  ea   ee    Fig 10   IDE Arduino con libreria caricata     152 Febbraio 2011   ELETTRONICA IN Ei     FAT N  2  solo FAT12 16        Root directory    Regione dati       Esistono diverse versioni di libreria adatte a  gestire la FAT16 oppure la FAT32  alcune del   le quali permettono la gestione del bus SPI ad  alta velocit   ma necessariamente l adattatore  per la SD Card dovr   contemplare un trasla   tore di livelli a circuito integrato molto veloce   Ogni libreria  inoltre  utilizza proprie linee di  controllo per SD Card    La p
51.  stati saldati  alcuni strip maschio per poterlo utilizzare con  una piccola breadboard  Facciamo in modo  che l alimentazione tramite il plug di Arduino  possa alimentare anche EasyDriver  sfruttan   do il pin Vin allo scopo  Per far funzionare  l insieme     sufficiente utilizzare il solito  alimentatore non stabilizzato impostato per  una tensione di uscita di 6 9 V  Un pezzetto  di nastro adesivo render   chiaramente visibile  la rotazione del perno del motore     Cablaggio del motore passo passo con ArduMoto  ed EasyDriver     Per quanto riguarda il programma di test      sufficiente che generi una sequenza di impul   si alla frequenza desiderata  per il numero  impostato  Lo sketch prevede una procedura  denominata Rotate  alla quale passare come  parametri la direzione  il numero di impulsi  ed il ritardo tra un impulso ed il successivo  Il  suo utilizzo    molto semplice  se  ad esempio   con il motore in nostro possesso volessimo  compiere un giro intero  non dovremmo   fare altro che generare 1 600 impulsi  Questo  perch   il motore    un 200 step  ognuno dei  quali    ampio 1 8     sapendo che tramite i pin  MSI1 e MS2  Easydriver    impostato ad 1 8 di  passo  vediamo che effettivamente per un giro   formato da 200 passi  servono 200 8 1600  impulsi  Volendo compiere un giro in due  secondi  otteniamo anche la variabile Delay   Delay 2 1 600 1 250 ps    In generale Delay  durata della rotazione      numero di impulsi  e steps  Numero di  Giri  1600    Il Listato 3
52.  un PC ed uno smartphone  che comunicano tra loro per scambiarsi file  senza la necessit   di utilizzare un Router  In  ambiente Windows questa rete    anche deno   minata    rete ad hoc        Rete Mesh      la rete che impiega appieno le potenzialit    del protocollo ZigBee  in cui sono presenti un  Coordinator e diversi End Device supportati  da Router utilizzati per espandere ed instra   dare le comunicazioni in modo dinamico   Questa rete pu   essere realizzata solo con i  moduli della serie 2  Nelle reti mesh il disposi   tivo Coordinator    in grado di configurare di   namicamente gli altri moduli della rete  ogni  dispositivo Router pu   svolgere operazioni   di smistamento agganciandosi a sua volta ad  altri Router  Espandendo in modo dinamico  la rete  infatti     possibile inserire    al volo     nuovi nodi lasciando che la rete stessa si auto   configuri aumentando le distanze coperte  Nel  caso la comunicazione con alcuni dispositivi  si perda  si pu   recuperarla in automatico  restaurandola tramite altri nodi  cos   la rete  diventa molto robusta nei riguardi dei distur   bi e dei guasti  Fig 15     Le modalit   di comunicazione implementabili  con i moduli XBee sono tre e vengono elencate  e descritte qui di seguito     Transparent mode  pprz    Questa modalit   prevede che ogni modulo sia  impostato come End Device e sia disabilitata  l associazione tra End Device in tutti i modu   li  ogni dispositivo della rete dovr   avere gli  stessi parametri ID e CH  Qu
53.  uscica digitales  pin del  RNBUITSS  pin del  WNEUD     pulsante come Ingresso     pulsante come ingresso        Wiene dichiararco un loop inTtinito    Libraries   Le librerie permettono di  estendere le funzionali    t   di base implementate   Questo comando permette  di aggiungere una libreria  allo sketch tramite Sketch  gt   Import Library menu     void loop 1    BUTTON 1L STAT            Legge lo stato del    S    Button_2_State    Serial Monitor   Questa applicazione per    mette di inviare dei sem    plici caratteri attraverso la   porta seriale verso la scheda    Arduino  In alcune schede   in cui    implementata la co   municazione USB  la porta  seriale    solo virtuale     5 RE NIGIONNI       00 0_0_0_0_0_0_0_0_9_8_0_9_0_S_0 0 0_0_0_0_0_S_0_8_9_0_0_0_0_0_0_8_0_9_O 0 _9_0_ O 2 0 A_0_0_8_2_S_0_ 0 9 _d_0_A_8_A_I_0_ 0 0 800 SOI _S_0 28 00 0 9 0 9 0 8_9_8_0_S_d_ SO 0 0 0 9 0 0 SS 0 0 0 e 0 0 0 0 0 00 0 e 0    Boards  Da questo menu    possibile selezionare l   unit    Arduino utilizzata     Help   Questo menu permette di accedere ad una  serie di informazioni riguardanti l   ambiente  di sviluppo tramite l   accesso diretto a delle  pagine HTML contenute nella cartella refe   rence  Proprio questa voce del menu permette  di aprire una pagina HTML contenente tutte  le istruzioni disponibili e cliccando sopra  ognuna di esse    possibile entrare nei dettagli     LA PROGRAMMAZIONE   Seguendo le istruzioni riportate nella prima  puntata del corso sarete in grado di install
54.  valore numerico in una stringa   necessaria per avere compatibilit   con la fun   zione println della libreria SDuFAT  La secon   da riga di printIn  caratteri     r n     consente  di andare a capo e quindi di scrivere i valori  tutti in colonna invece che nella stessa riga   Dopo aver acquisito alcuni valori sar   possi   bile verificare la corretta scrittura leggendo la  SD Card con il PC  Fig  19     Esiste anche una versione semplificata della  libreria SDuFAT  ottimizzata per ridurre la  memoria occupata del microcontrollore ed  aumentare la velocit   di scrittura  denominata  FileLogger e scaricabile dal sito Internet http     code  google com p arduino filelogger    il file corrispondente si chiama  FileLogger VO X zip  dove X    la  versione della libreria   Con questa  libreria    possibile solo scrivere  all   interno di una SD in FAT16  con  il vantaggio che non    necessario    ma    sufficiente che sia presente  almeno un carattere  quelli scritti  saranno accodati a questo  Dicia   mo subito che abbiamo testato con  successo sia la versione 0 1 sia la  0 5  ma abbiamo riscontrato proble   mi con la versione 0 6  Dopo aver    Fig 17   File hola txt dopo scompattato il file copiate la car     tella FileLogger direttamente sulla    e3  OS109       5  O       O     5  y  fe   lt   O  W       o  O          Fig 18   Scrittura di dati numerici  con esempio SD_01 pde     i del NALLE  d I ep       li Ballan       k LI hep    Fig 19  Contenuto del  file di prova hola   
55. 011 153       Tabella 1    PIOG LED rosso GCATDERIO PIO4 LED verde    Luce fissa Connesso con TCP  Lampeggio veloce Non associato TX RX attivit   Nessun indirizzo IP  Lampeggio lento Indirizzo IP OK  Spendo associato       eI  OS109    Per le prime prove configuriamo il router per esempio una protezione di tipo WEP  WPA1 o C  una rete aperta senza password  A questo WPA2  in questo caso specificate sia l   ssid che     punto inviamo il comando    scan    che rileva le la passphrase  Con il nostro router Dlink  come    reti Wi Fi in prossimit    dovremmo rilevare la anche segnalato nei forum  in reti protette da O  nostra rete domestica  password abbiamo riscontrato alcuni proble    Per associarsi alla rete    sufficiente inviare mi  Potete provare ad usare lo sketch  prepa    il comando    join dlink     il canale di comu  rato da noi  denominato wifly_01 pde  che per    nicazione ed il tipo di crittografia saranno mette l associazione automatica ad una rete   impostati in automatico  Assicuratevi che sia con la procedura a linea di comando passo    presente la scritta DACP ON  ad indicare che passo  molto valida per una diagnostica    l assegnazione degli indirizzi IP alle perife  Il passo successivo    l avvio dello sketch   riche della rete sar   svolta in automatico dal wifly_webserver  che semplicemente permette    router  mentre la scritta IP 192 168 0 100 80 vi di visualizzare tramite un qualsiasi browser il  indicher   l indirizzo IP assegnato alla WiFly   Complimenti
56. 3 Networking      0  CH   Operating Channel F    D  234  OP   Operating PAN ID    E  234 ID   PAN 10  DI  1FFE  SC   Scan Channels  D  3  SD   Scan Duration  DI  FF  NJ   Node Join Time    3 Addressing  E  0  MY   16 bit Network Address  E  124200  SH   Serial Number High  E  403DB035  SL   Serial Number Low  O  0  DH   Destination Address High  DI  FFFF DL   Destination Address Low  FFFF  DI  0 ZA   ZigBee Addressing  D  E9  SE   Source Endpoint      E8 DE   Destination Endpoint  O  11  CI   Cluster 10    DI   NI  Node Identifier  BI  0  BH   Broadcast Radius    DI  FF  AR   Aggregation Route Broadcast Time         y  I                Setting AT parameters  OK  Wiite Parameters   Complete    COM31  96008N 1 FLOW NONE                 Fig  44   Modulo XBee serie2 configurazione A   Modem XBEE Function Set Version     X8248  2 ZIGBEE ROUTERZEND DEVICE AT v  h2    rokn    E D  CH   Operaling Channel      D  234ID PANID     i  i   134200 DH   Destination Address High  i  p  4030800  DL   Destination Address Low     D  5480  MY   16 bit Network Address   gt  D  134200 SH   Serial Number High         40308035  SL   Serial Number Low                  o  0  BH   Broadcast Radius    Fig  45   Modulo XBee serie2 DIRI B   Modem  XBEE Function Set     B248 v  fz ZIGBEE ROUTER END DEVICE AT v  6 1220      3 Networking A  E CH   Operating Channel N  O  234 1D   PAN 10         124200  DH   Destination Address High  O  40308035  DL   Destination Address Low B  D MY   16 bit Network Address  
57. 4800bps    N    2      9600bps  Aprite lo sketch di nome GLCDexam  ini e  ple pde  che troverete nel percorso Modica baudai    ORIG EOKA EN   Neia 38  A00hps  File gt example  gt Ks0108 e caricatelo sulla sche  ped p a    da Arduino  Una E avviato il Ruba Set coordinate Ox7C   0x18  X   X nuova coordinata X  SONORO tre schermate In s i A Set coordinate Ox7C   0x19  Y   Y nuova coordinata Y       prima con un immagine  la seconda con tutti i  caratteri stampati e la terza con linee e cerchi     come mostrato nelle figure  rispettivamente  della libreria GLCD per KS0108 visualizzando  3  4  5  Per vedere bene le rappresentazioni a video sia immagini  bitmap in questo caso   potrebbe essere necessario regolare il contra  sia testo e grafica  Se utilizzate i file scaricati  sto del display agendo sul trimmer  dal nostro sito Internet  troverete anche un    Lo sketch appena descritto dimostra l utilizzo ulteriore esempio denominato GLCDelettroni                FEKKKKKKKAKKKKKKKKKKKKKAAKKKKAKKKKAKKKAAKAKKKKKAKKKAKKKKAKKKKKKAKAKA      AE Configuracion ror assigning LCD pits tO Arowino Pins       FEKKKKKKKAKAKKAKKKKKKKKKAKAKAAKKKKKKKKKKKAKKKKKKKKKAKKKAKAKKKKKKKAKA         Arduino pins used Tor Commands    derault assignment Uses che Tirst Tive analog pins    n   define CSELI 14 Ce    swap pin assignments with CSeELZ 1f  left right image is reversed   define CSEL2 15  d CS2 Bit   define RW 16 Id R M Bit   define D_I 17 AE   define EN 18 I EN BIT     define RES 19    Reset Bit    uncom
58. 6 usabili come PWM output       Ingressi analogici 6  a  Corrente per ogni I O Pin 40 mA  Sa Corrente prelevabile dal pin 3 3 V 50 mA      Flash memory 32 kB  ATmega328  di cui 0 5 kB usati per il bootloader     SRAM 2 kB  ATmega328   EEPROM 1 kB  ATmega328   Frequenza di clock 16 MHz       alimentare la scheda tramite una batteria a 9 o alimentare altri circuiti compatibili con i 5  12 volt  La sorgente di alimentazione viene ri  volt    conosciuta in automatico e non serve imposta      3V3  questo pin fornisce i 3 3 volt ricavati   re alcun deviatore  La porta USB    comunque dallo stabilizzatore interno alla scheda e  protetta da accidentali cortocircuiti nella sche  consente di alimentare circuiti compatibili  da e comunque da essa non vengono prelevati con tensioni di 3 3 volt  la massima corrente  pi   dei 500 mA massimi ammessi  prelevabile    di 50 mA     I pin di alimentazione nella scheda Arduino e GND     il contatto di massa  GND     sono i seguenti    e VIN  questo  semplicemente replica la CARATTERISTICHE DI ARDUINO UNO  tensione fornita in ingresso sul connettore Vediamo adesso le prerogative e la dotazione  plug e pu   essere usato per alimentare altri della nuova scheda Arduino  a partire dalla  circuiti che dispongano gi   di un regolatore memoria  il microcontrollore ATmega328  di tensione  ad esempio gli shield applicati dispone di 32 kB di memoria di programma   al modulo   della quale 0 5 kB sono usati per il bootloader    e 5 V  fornisce i 5 volt dello 
59. Autoscroll  e Serial input    oa o SE Ee Sar any   4    LCD 2X16 CDEL  Arduino              petentiometer    Eil ELETTRONICA IN   Agosto   Settembre 2010 135           Listato 1     O            Di    Display 0il    Semplice scricta su diaply LCD oi testo   Per il cablaggio hardware     LCD RS pin to digital pin l2   LED enable pin to digital pin 11  LCD DA pin to aigital pin 5   LED D5 pin to igital pin 4   LCD D6 pin co aigital pin s   LED D7 pin to oigital pin 2    Xx Xx Xx Xx Xx      Pes  CEI     include  lt LiquidCrystal h gt          initializza il display con l   interfaccia      hardware specificata    Liguid  rystal 1ealiz2  11  5  4  3  2      void setup i         setta il numero di colonne e righe del display   led begini  2        Scrive un messaggio    peli ian           void loop       i    Imposta il cursore all   inizio della seconda riga  Cee il conteggio delle righe parte da zero   lca   settursorlO   1        Scrive il numero di secondi a partire      dall   istante di reset    Medepraine midi AR0000E      _0__s__9_0_8__S_d_0_8_0_0_8_d_0_B_O_0_0_O_0_0_0_0O_d_O_8_0O_0_O_S_0_S_O_0_S_8_O_8_8_8_0_8_D_A_0_O_0O_8_0_O_0_O_O_0_S_8_0_0_S_O_0_S_O_0_8_8_S_0_0_0_0_0_ 0 0 0 0 0_0_0    e SetCursor  e Scroll    Adesso apriamo il software di sviluppo Ardu   ino  la versione 18  nel nostro caso   creiamo  un nuovo sketch oppure  pi   velocemente   utilizziamo un esempio gi   pronto disponibile  nella cartella del programma File examples   liquiderystal helloworld    Sul nos
60. Backpack connesso a GLCD ADM12864H    Usare le linee Vin  GND  TX     am  void setup       Serial begin 115200      imposta comunicazione a 115200 baud     void loop   ie all infinito       Serial print 0x7 C  BYTE      Cancella schermo  Serial printlOx00  BYTE  s   delay 100     Serial printtOx7 C  BYTE     Retrroilluminazione 02  Serial  print 0x02   BYTE  s   Serial  print Ox00  BYTE  s   delay 100     Serial printlOx7 C  BYTE      Disegna un cerchio  Serial  printlOx03  BYTEJs      Serial print 100  BYTE        Coordinaca X    Serial print S0  BYTE  s    Coordinata Y  Serial  print i0  BYTE     Raggio  Serial printli  BYTE  s    1 disegna 0 cancella    GIO   Serial print Ox7 C  BYTE      Set coordinata X  Serial  print 0xie   BYTE      Coordinata X  Serial print 10  BYTE  s  i Coordinata X  Serial print Ox C  BYTE     Set coordinata Y  Serial  print 0x19   BYTE      Coordinata YV  Serial print 40  BYTE   Coordina a  Serial  preme ElerttronicariN     s   delay i000  s    disponibili dei convertitori seriale parallelo  per display GLCD  denominati Graphic LCD  serial backpack  un esempio    il modello  LCD 09352  perfettamente compatibile con   il display grafico ADM12864H  foto nella  pagina precedente in alto a sinistra   In questo  caso il cablaggio    veramente minimo  per   ch   sono sufficienti le tre linee descritte nella  Tabella 7  La scheda aggiuntiva va innestata  sul connettore del display  nel nostro caso  abbiamo usato uno strip maschio sul display  ed uno fem
61. D su slider3 LED su slider3 D11  Buzzer SG2 Buzzer DS  In seriale 795 Serial D13  Clock per 795 Clock D12  Enable per 795 Latch D8       nella Tabella 1  La corrispondenza tra la sigla  delle resistenze ed il loro valore    riportata  nella Tabella 2  Sullo stampato    riportata   la serigrafia per tutti i componenti  quindi  non dovrebbero esserci difficolt   nel trovare  l ubicazione di ciascun elemento  per aiutarvi  fate riferimento alle foto dell articolo  Come al  solito  iniziate dalle resistenze montate in pia   no ed a seguire collocate gli altri componenti   in ordine di altezza  Le resistenze del display  a LED sono invece posizionate in verticale   fate molta attenzione perch   lo spazio a di   sposizione    molto esiguo  Per ultimi saldate   i potenziometri  Fate estrema attenzione alla  giusta inserzione dei LED e del display  del  buzzer e del sensore di tocco  Notate una  curiosit    il sensore di tocco ed il buzzer in  pratica sono il medesimo componente  infatti  il cicalino piezoelettrico    reversibile  in quan   to se gli applichiamo corrente elettrica esso  fornisce un suono  ma se non lo alimentiamo  e lo sollecitiamo meccanicamente  ad esempio  gli diamo un colpo sufficientemente intenso  con un dito  genera una tensione elettrica   Detto ci    vi rimane da saldare i connettori    Tabella 2  R1  R2  R3  R7 10 K  R6  R12  R13  R14  R15  R16  R17  R18 680  R4  R5  R9  R10  R11  R19 560  R8 1M  IC1 74HC795       Ei  ELETTRONICA IN   Luglio 2010 118    Tab
62. DR r n_ Riporta l indirizzo del  dispositivo    158 Giugno 2011   ELETTRONICA IN A          File Visualizza Bluetooth Servizi Strumenti Guida    Rilevamento servizi terminato     Fig 8   Ricerca servizi della periferica trovata           Inserire lo Passkey Bluctooth INR    Una periferica remota necessita della passkey Bluetooth per      creare una relazione accoppiata per le connessioni future   Usare la stessa passkey su questa periferica e sulla  persiferica remota     Perferica remota  seeedstudio       Indirizzo 00 18 E4 25 C2 BE  Passkey  Gi    Tempo residuo  23      Fig 9   Inserimento Passkey     Auto riconnessione quando viene perso il  segnale con il dispositivo master   r n LOSSRECONN 0 r n Proibito   r n LOSSRECONN 1 r n Permesso    Ricerca moduli   a  Nel caso di modulo configurato come  Master     r n INQ 0 r n Ferma ricerca dispositivi   r n INQ 1 r n Avvia ricerca dispositivi    b  Nel caso di modulo configurato come  Slave     r n INQ 0 r n Ferma visibilit   dispositivo   r n INQ 1 r n Avvia visibilit   dispositivo    Siamo adesso pronti per scrivere lo sketch  occorrente alla gestione della comunicazione  in Bluetooth  il quale  una volta caricato su  Arduino  configurer   il modulo e  successiva   mente  andr   a leggere l ingresso analogico 0  ed invier   al PC i dati acquisiti  ad intervalli di  un secondo  via Bluetooth  Il codice corrispon   dente    quello illustrato nel Listato 1    La configurazione del modulo avviene invian   do semplici caratteri s
63. ED1 void loop   vengono ripetute all infinito per   e premendo Button_2 lo stesso si spenga  testare in continuazione lo stato dei pulsanti   Impostiamo quindi il nostro Sketch per poter ed accendere e spegnere  di conseguenza  il   utilizzare queste due periferiche  il program  LED  e  ma corrispondente    visibile nel Listato 2     Le prime righe del listato dichiarano la cor  UTILIZZO DEL BUZZER  SKETCH DANGER _04    gt   rispondenza che c      tra le nuove periferiche Vediamo ora come emettere delle semplici O   pulsanti e LED  e i pin del microcontrollore  note acustiche tramite il cicalino di cui la   Seguono due righe per dichiarare due va  Danger Shield    equipaggiata  L istruzione da   riabili di tipo intero che saranno usate per utilizzare si chiama tone e la sintassi di scrittu    leggere lo stato degli ingressi  All interno ra    la seguente  tone pin  frequency  duration      della struttura di setup vengono usate le istru  Tale istruzione emette un onda quadra con  zioni pinMode xxx  INPUT  e pinmode xxx  duty cycle del 50   sul pin specificato alla  OUTPUT  per definire quale pin sia di ingres  frequenza frequency  per la durata duration  so e quale quello di uscita  Nella struttura del espressa in millisecondi  Tra gli esempi    loop viene usata l istruzione Button_1_State   disponibili nella cartella example potrete  digitalRead Button_1   per leggere il livello lo  trovare il file pitches h  che una volta aperto  gico del pin specificato ed inserire questo 
64. IIS     Fix Encoding  amp  Reload    O   Serial Monitor DEM      Arduino Ung  Serial Port b Arduino Duemilanove or Nano w  ATmega328    Arduino Diecimila  Duemilanove  or Nano w  ATmegal68    Burn Bootloader Arduino Mega 2560  Arduino Mega  ATmega1280  Arduino Mini  Arduino Fio  Arduino ET w  ATmega328  Arduino BT w  ATmegal68  LilyPad Arduino wi ATmega328  LilyPad Arduino w  ATmegal6E  Arduino Pro or Pro Mini  5V  16 MHz  w  ATmega328  Arduino Pro or Pro Mini  5V  16 MHz  w  ATmegal68  Arduino Pro or Pro Mini  3 3V  E MHz  w  ATmega328  Arduino Pro or Pro Mini  3 37  E MHz  w  ATmegalbi  Arduino NG or older w  ATmegal6 amp   Arduino NG or older w  ATmega   rm       applicativo chiamato File Esempi 1 Basics Blink  vi permetter   di testare il funzionamento della  scheda  Inoltre sono disponibili tutorial e do   cumentazione agli indirizzi web http   arduino   cc en Tutorial HomePage ed http   arduino cc en   Reference HomePage    Grazie al Bootloader preinstallato a bordo   non    necessario utilizzare alcun program   matore esterno n      necessario rimuovere   il microcontrollore  la connessione USB tra   PC e Arduino    sufficiente a permettere la  programmazione e la gestione della comuni   cazione  La funzione di autoreset interna alla  scheda permette la programmazione con un  solo click del mouse    Su questa nuova versione di Arduino     presente un nuovo Bootloader basato sul  protocollo STK 500  che occupa un quarto di  memoria rispetto alla versione precedente   Ad
65. LLO    ed in particolare vediamo come  comandare servocomandi da modellismo   stepper motor e motori a spazzole     tramite semplici routine firmware     S iamo giunti alla quarta puntata del corso  dedicato al sistema di sviluppo per  microcontrollori Arduino  Stavolta ci occupia   mo di attuatori  ovvero di tutti quei com   ponenti che convertono energia elettrica in  movimento  nello specifico  parleremo di ser   vocomandi da modellismo  motori a spazzole  e motori passo   passo  I servo da modellismo   come sapete  sono utilizzati appunto in campo  modellistico per poter muovere alcune parti  di un modello  come ad esempio lo sterzo in  un automobilina oppure il piano di coda di    un aereo  Il segnale di comando giunge dalla  ricevente di bordo e non    inusuale trovare  modelli con quattro o pi   servocomandi dedi   cati ad altrettanti movimenti    Utilizzare un servo da modellismo con la  scheda Arduino    davvero molto semplice   basta semplicemente cablare tre fili ed avviare  il programma corrispondente    Per la programmazione dobbiamo fare riferi   mento alla libreria standard Servo h  che andia   mo a descrivere di seguito e che si compone  delle istruzioni seguenti        Il servo da modellismo    Nati per impiego modellistico  si trovano molto diffusi  oggigiorno anche in applicazioni elettroniche  grazie  alla loro versatilit   e facilit   di gestione in tutte quelle  situazioni in cui    necessario eseguire un movimento  meccanico di precisione  Dal costo con
66. N SCAN DE  Joining dlink new      lt i 21 gt  Associated    DACP  Start   DEC in Slims  lease l0800a   IF UF   DHECP 0H   If 152 1     1i     8     Hiia355 255 255 0   Gil 152  LEB 0 1   Listen cn 50    WIRELESS SETTINGS    changes made on this section may also need to be dupicated on your Wireless Client     To protect your privacy you can configure wireless security features  This device supports three  wireless secunty modes indudig  WEP or WPA Personal     WIRELESS METWORK SETTINGS         Enable Wireless    Wireless Metwork Name   Abo caled the 5510   Wireless Channel i  Enable Auto Channel Scan      802 119 Onk Mode   M  Enable Hidden Wireless    Also caled the 5510 Broadcast     WIRELESS SECURITY MODE    Security Mode         Fig 6   Impostazioni del router  Fig 8   Associazione alla rete domestica     194 Luglio   Agosto 2011   ELETTRONICA IN A       Fig 9   Sketch wifly_01 pde  su Serial Monitor     Fig 10   Visualizzazione  tramite browser relativa  allo sketch wifly_01 pde     Fig 11   Visualizzazione tramite  browser relativa allo sketch  wifly_02 pde         http   192 168 0 100    Windows     i Eh EE        m pa   E    COL E  http  1921           hrtp  192  1680 1007   Window   TT E  http 1921          Eile fodfica Visualizza Prefenti Strumenti    Ji Preferiti   3 E  Siti suggeriti      ss   ou  Bh  x        BE La Love Search       WebServer tramite WiFly Shield                  File Modifica Visualizza Preferiti Strument    sr Preferiti   N      Siti suggeriti 
67. ND 1 VSS GND     5V   Pin2  centrale  del trimmer  17  analog3    16  analog2    18  analog4    8   9   10   qui   4   5   6   y   14  analogo    15  analog1    Reset  porre a  5V     Pin1 del trimmer  Pin3 del trimmer a GND     5V  se retro zione ON     GND    2 VDD  V   3 Vo Contrasto LCD   4 RS Data instruction   5 R W Read Write   6 E Enable   T DBO Dato   8 DB1 Dato   9 DB2 Dato   10 DB3 Dato   11 DB4 Dato   12 DB5 Dato   13 DB6 Dato   14 DB7 Dato   15 CS1 Chip select 1   16 CS2 Chip select 2   17 RST Reset   18 Vout Tensione per Vo  19 BLA a  20 BLK Retroilluminazione    catodo    te dei fili sul display oppure utilizzare la  Protoshield per eseguire tutti i collegamenti  con dei filetti saldati  Ad ogni modo  dove    te essere molto diligenti e seguire in modo  scrupoloso la Tabella 5  ricontrollando pi    volte il lavoro eseguito  Il trimmer  del valore  di 10 20 kohm  ha tre terminali  i due esterni  vanno connessi uno a massa ed uno al pin 18  del display  Vout  mentre il terminale centrale    Tabella 9   Collegamenti fisici tra il display ADM12864H e Arduino Duemilanove     Pin display TO COCO  GND 2 VSS GND    SV   Pin2  centrale  del trimmer  17  analog3    16  analog2    18  analog4    8   9   10   a   4   5   6   Ti   14  analogo    15  analog1    Reset  porre a  5V    Pin1 del trimmer   Pin3 del trimmer a GND   5V  se retro zione ON   GND    1    VDD  Vo  D I   R W   E   DBO   DB1   DB2   DB3   DB4   DB5   DB6   DB7   CS1   CS2  RST   Vout  BLA  BLK    TSV   C
68. NICA IN   Maggio   Giugno 2010 145       II modulo Arduino Nano     Arduino base  realizzate con schede a circuito  stampato che possono essere collocate al di so   pra della Arduino  inserendosi nei connettori  normalmente forniti  Esistono espansioni de   dicate a varie funzioni  dal controllo motorio     dire Bir a  ad    CARA Rikura    T O pe    TEHNI       Il coreografico LilyPad Arduino     al breadboarding  prototipizzazione     Tutta la documentazione originaria di riferi   mento costantemente aggiornata    presente  sul sito ufficiale in lingua inglese http   ardu   ino cc en  Esiste anche la versione in italiano   ma non    costantemente aggiornata  la trovate       Il modulo Arduino BT     146 Maggio   Giugno 2010   ELETTRONICA IN Ei     su http   arduino cc it   All   interno di questo  sito potete navigare attraverso alcuni link per  accedere alla sezione hardware  alla sezione  software  al forum o ai tutorial  i link sono i  seguenti      http   arduino cc en Tutorial  Blink      http   arduino cc en Main Hardware      http   arduino cc it Main FAQ     LA SCHEDA ARDUINO DUEMILANOVE  Adesso che abbiamo appreso il senso del  progetto Arduino  entriamo nel dettaglio  di uno dei prodotti  per la precisione  della  scheda Duemilanove  che risulta essere la  pi   recente al momento in cui scriviamo e  quella che meglio rappresenta la filosofia  Arduino e ben si presta ad un po    di didat   tica    Analizziamone subito lo schema elettrico   la scheda Arduino Duemilan
69. Server    Detto in parole semplici  andremo a creare  tramite il chip W5100 una pagina web accessi   bile in rete da qualsiasi browser  che conterr    i dati relativi al valore degli ingressi analogici  di Arduino  quindi non una semplice pagina  web  ma una speciale pagina che sia in grado  di interagire con Arduino e quindi con il mon   do esterno    Collegate il tutto  avviate l   IDE di Arduino   ed aprite l esempio File Esempio Ethernet   WebServer  per rendere compatibile la pagina  web con la nostra rete  dovremo impostare  correttamente il MAC e l IP address  L indi   rizzo MAC  MAC address     un codice di 12  caratteri che identifica ogni singolo apparato  in grado di connettersi a una rete  nel no    stro caso  sia la scheda di rete che il router   ne avranno uno univoco  Lasciate invariato  quello proposto nello sketch  Solo se la vostra  scheda dovesse accedere alla rete internet   dovrete preoccuparvi di recuperare un indi   rizzo MAC libero perch   altri potrebbero aver    e va assegnato in congiunzione con il subnet  mask  il quale    un   altra sequenza di quattro  numeri che permettono di specificare delle  sottoreti  Nel nostro caso  avendo una subnet  mask pari a 255 255 255 0 potranno colloquiare  tra di loro tutti i dispositivi facenti parte della  sottorete che ha indirizzo IP con i primi tre  numeri uguali ed il terzo scelto a piacere e  compreso tra 0 e 255  L indirizzo IP di Ardui   no dovr   quindi essere del tipo 192 168 0 xxx   dove xxx sar   un n
70. TALY RI al  ui nal       10    Lal    e GND     131    r     t        Z         Ra  Mic   di     dl    ARDUINO    ela    Fig 2  Aspetto dell   Arduino UNO vista dall   alto     CINE 96000600 O  BOARD MODEL LE E E  UNO EE      OPEN  SOURCE ELECTRONICS  PROTOTYPING PLATFORM        MADE IN ITALY  WW  ARDUINO  CC 1    06686666 RS  f  lt  e E a aana Ta               a ZERO CARBON FOOTPRINT    ta IMPATTO ZERO    CULTI    Fig 3  La scheda Arduino UNO vista da sotto     150 Marzo 2011   ELETTRONICA IN A          mano questo nuovo hardware     eccellente    la scheda    di buona qualit   e lo stampato      di ottima fattura  con una serigrafia molto pre   cisa e completa     SCHEMA ELETTRICO   La particolarit   dell   Arduino UNO e quindi  ci   che la distingue nettamente da tutte le  altre versioni proposte in questi anni     che   in essa per la connessione USB non viene pi    utilizzato il convertitore USB Seriale della  FDTI  bens   un microcontrollore ATmega8U2  programmato per funzionare come converti   tore USB Seriale  Questo nuovo prodotto della  ATMEL    infatti un microcontrollore con a  bordo un modulo Transceiver USB liberamen   te programmabile  come lo hanno ad esempio  alcuni PIC della serie 18F della Microchip    Il nuovo Arduino ha anche ricevuto la certi   ficazione FCC sulle emissioni elettromagne   tiche  le diciture    ROHS Compliant    e    Zero  carbon footprint    fanno emergere l interesse  del team Arduino per la tutela dell ambiente   Arduino UNO    ancora 
71. V2  serial printi l  BYTE  e    1 disegna O cancella            Disegna un cerchio  void circle byte xpos  byte ypos  byte radius      SSE A O eee    Disegna un cerchio  Serial  print 0x0   BYTE   fd   Serial Print xpos  BYTE  s  d Coordinata X   Serial  print ypos  BYTE    fi Coordinate V   Serial print radius  BYTE     Raggio  CRE eee Eee    1 disegna 0 cancella    i    e il cursore alla posizione X  V specificata  void cursorSet byte xpos  byte ypos    repair  Serial  print 0xis  BYTE      Coordinata X   Serial Printi pesi ee  d Coordinaca X  serial  print Ox7C   BYTE      Ser COOrdinawra Y  serial  print 0xio  BYTE      Coordinata V  Serial  Printi ypos  BYTE      Coorcdinata Y       142 Agosto   Settembre 2010   ELETTRONICA IN    O     5  y  fe   lt   O  W  i   O  O       lo schermo e disegna una linea  un  cerchio e una scritta  Come vedete   le scritte sono immediate grazie al  generatore di caratteri incluso nel  backpack     infatti sufficiente inviare  il codice ASCII relativo al carattere  da stampare a video  Ovviamente  non dovrete fare alcuna conver   sione ma solo usare l istruzione  Serial print seguita dalla stringa da  stampare racchiusa tra virgolette   Un alternativa all invio dei coman   di appena descritti    riportata nel  Listato 4  in cui sono vedete una  porzione di programma che spedi   sce i byte necessari uno alla volta   Vi    anche una terza alternativa  che  consiste nel costruirsi delle subrou   tine da richiamare ogni qualvolta   si voglia fa
72. _S_8 d_G_0_d 0A 8_O_S_O_O_LO_L_8_8E_8_L O dd 08 _d_8_8_S_0_0_S_G_0_ Sd SL O_O OS O_O _s_60_S_6 0 ss 0 e 0    il numero alle uscite dell   integrato  cos   da  aggiornare il numero visualizzato sul display   Queste funzioni sono racchiuse all   interno di  un ciclo    for    che le ripete per ciascun nu   mero dallo zero al nove con un ritardo di un  secondo tra un numero e l   altro     USO DEGLI INGRESSI ANALOGICI    SKETCH DANGER_06    Vediamo ora come poter utilizzare gli ingressi  analogici  ai quali sono connessi i potenzio   metri  i sensori di luce e temperatura ed il  microfono  L istruzione che andremo ad  utilizzare si chiama AnalogRead e permet    te  appunto  di leggere il livello di tensione  all ingresso di un pin analogico  Specifichia   mo subito che mentre un ingresso digitale  pu   assumere solo due valori  che sono uno   o zero  ad esempio pulsante premuto oppure  rilasciato   un ingresso analogico accetta tutte  le tensioni comprese tra lo zero ed il potenzia   le di alimentazione  in questo caso 5 volt   La  scheda Arduino dispone di 6 canali analogici    120 Luglio 2010   ELETTRONICA IN        000600088 O_O O d_O_8_d_0_O_L_O_L_8_G_L 8 O_S_8_d_ SO 8 0_G_O_L_8_L_O_L_d_0_S_D 8 S_L_O_0_8_G_O_L Sd 0 8 ds 0 SO 0_0_S_8_G_s_0 0 0 0 0 0 0 es    con convertitore analogico digitale a 10 bit   che per   non possono essere letti direttamente  dal microcontrollore  il quale riconosce solo  componenti digitali  A trasformare i segna    li analogici in dati digitali ric
73. a 7   Memoria usata da ciascuna libreria     pIy OS109       5  O       dell ing   MIRCO  SEGATELLO    ln    Analizziamo la neonata Arduino UNO   la scheda di sviluppo e prototipazione  creata per sostituire la popolare    Duemilanove     team di Arduino ha annunciato alla stam   pa l imminente disponibilit   di due nuove  schede  una delle quali    Arduino UNO  in  questa puntata del corso riguardante il mondo  Arduino vogliamo introdurvi ed insegnarvi  ad utilizzare proprio questa novit    L origine  Italiana del prodotto     come non mai  esal   tata dal nome  il quale  non a caso     UNO e  non ONE  come si direbbe in inglese  e dalla  presenza di un ben evidente marchio    Made  in Italy    sulla confezione  e sul prodotto    con tanto di simbolo geografico dell   Italia     f lla fine di settembre dell   anno scorso il    Arduino UNO    la prima su cui appare il  nuovo logo scelto dal progetto Arduino  che     il simbolo matematico di infinito  scelto  probabilmente per simboleggiare le infinite  possibilit   d uso della scheda o la sconfinata  espandibilit   del progetto open source da cui  Arduino trae origine  Acquistando Arduino  UNO  all   interno della confezione trovate  alcuni adesivi ed un piccolo manuale  ripor   tante le indicazioni principali sulla licenza   di utilizzo  in lingua inglese  come    logico  aspettarsi da un prodotto internazionale open   source  L impressione che si ha  prendendo in          La confezione del  nuovo Arduino     MADE nie a  INI
74. a di Seeeduino     Ei  ELETTRONICA IN   Maggio   Giugno 2010 153    e Usare    Arduino    Impariamo ad utilizzare le shield e    dell ing   MIRCO  SEGATELLO    mettiamo in pratica alcuni semplici  programmi  chiamat  permettono di sfruttare le funzioni      44  I    sketches     che    della Danger Shield     ella prima puntata abbiamo presenta    to il sistema di sviluppo italiano per   microcontrollori Atmel denominato  Arduino descrivendo i vari hardware messi in  commercio nelle loro numerose versioni  ma  anche descrivendo l   ambiente di sviluppo e  riportando i link di riferimento per i tutorial  ed il download del software  Il primo esem   pio  semplicissimo  descriveva l accensione  di un LED e aveva lo scopo di farci prendere  confidenza con il sistema di sviluppo in modo  semplice e graduale  In questa seconda punta   ta prendiamo in considerazione la realizzazio   ne di applicazioni pi   complesse  ma sempre  idonee alla comprensione di questo interes   sante sistema di sviluppo  per la precisione     ci occuperemo di alcune shield   Ricordiamo  che esse non sono altro che appositi circuiti  i  quali  inserendosi direttamente nei connettori  della scheda principale  quella con a bordo   il microcontrollore  ne espandono le funzio   nalit   aggiungendo hardware pi   specifico   Facciamone ora una breve carrellata giusto per  avere conoscenza dei prodotti oggi disponibili  in commercio e valutare le possibili applica   zioni  Il sistema    comunque costantemente   i
75. a la corrente di riposo dei motori  150 750 mA    APWR Sj1 Ponticello  normalmente chiuso  alimentazione integrato dalla tensione motori  Tagliare per alimentare l   integrato dal connettore JP4     Ponticello per impostare alimentazione integrato su 5 o 3 3 V e di conseguenza i livelli logici dei segnali di comando  Per impostazione    LS U   predefinita  normalmente aperto Vcc 5 V e i segnali di comando sono 0 5 V     SLP Jp5 Pone in standby l   integrato  Di default la linea    alta e l   integrato    attivo     Impostazioni funzione passo    MSI JPS   MS1 1 e MS2 1 1 8 di passo  predefinito    MS1 0 e MS2 1 1 4 di passo    MS2 Jp6 MS1 1e MS2 0 1 2 di passo   MS1 0 e MS2 0 passo intero     ENABLE Jp6 Abilitazione integrato  Per impostazione predefinita  la linea    a livello basso e l   integrato    abilitato     RST Jp7 Reset dell   integrato  Per impostazione predefinita la linea    a livello alto e l   integrato non    resettato   PFD Jp7 Imposta la rapidit   di variazione di corrente tra un passo ed il successivo  Permette di ottimizzare la funzionalit   ad alto numero di giri   Preimpostato su di un valore intermedio   GND Jp2 Massa segnale di comando   STEP Jp2 Impulso di comando corrispondente ad uno step   DIR Jp2 Imposta la direzione di rotazione  La direzione di rotazione dipende anche dal cablaggio degli avvolgimenti     Tabella 4   Collegamenti della EasyDriver 4 3     118 Ottobre 2010   ELETTRONICA IN A    eI vAe    eLo     z  5  O       O  z  3  Ke   de   lt 
76. a possano    andare a braccetto    e come l una  completi l   altra permettendo la realizzazione  di sistemi  anche complessi  con una serie di  applicazioni che spaziano dai controlli alla  domotica all informazione     LO SHIELD ETHERNET   Chi conosce Arduino sa che oramai le appli   cazioni implementabili grazie ad esso non   si contano pi   e che tra queste non avrebbe  potuto mancare l   interfacciamento con una  rete informatica  Se disponete di una scheda  Arduino Diecimila  Duemilanove oppure  Uno  avrete la possibilit   di collegarvi ad una  rete ethernet semplicemente applicando uno     Shield Ethernet     Ufficialmente Arduino ha  adottato quale chip di interfaccia il modello  W5100 prodotto dalla WizNet e quindi ci sar    piena compatibilit   con i vari shield che utiliz   zano questo chip  tuttavia in commercio sono          disponibili altre interfacce equipaggiate con  differenti chip  Lo Shield Ethernet che usere   mo in questa puntata    la versione prodotta  da SeeedStudio  distribuita da Futura Elettro   nica  codice 7300 SEEEDWIZNET   Questa  unit      basata sul chip Ethernet Wiznet W5100  ed    compatibile sia con Arduino  anche la  versione MEGA  che Seeeduino  anche la  versione MEGA11   Presso la stessa azienda      disponibile anche lo Shield Ethernet  codice  7300 SHIELDETHERNET  anch esso basato  sul chip Ethernet Wiznet W5100 e compatibile  con Arduino  ma non con la versione MEGA    Entrambe gli shield fanno uso dello stesso  chip e supportano fi
77. a rete  anche se di soli due    con antenna I ti a t t d  esterna integrata  elementi  pu   contenere un master ed uno  slave  Fig  12         e Coordinator     ZC  Controller   rappresenta Rete point to multipoint  PMP     il nodo radice della rete ad albero  inizializza E una rete in cui un dispositivo dialoga con  la rete  gestisce i vari nodi  opera la raccolta pi   dispositivi  La rete di tipo a stella ha una  dati ed    in grado di operare da ponte verso maggior complessit   e impone di risolvere il  altre reti  per ogni rete viene designato un problema dei conflitti  assegnando ad un solo  Coordinator che contiene le informazioni sulla dispositivo il compito di master mentre gli  rete e le chiavi di sicurezza ed    in grado di altri sono slave  Nel caso di reti ZigBee ci sar    configurare gli altri moduli della rete  un Coordinator e degli End Device  Fig  13     e Router     ZR  detto anche Full function   Device  FFD     un dispositivo client  genera Rete peer to peer  P2P    informazioni e le invia al nodo centrale   pu   Si tratta di una rete definita paritaria  nella    144 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A       O  z  3  Ke   de   lt   O  W       O  O       quale non sono presenti dispositivi client o  server  ma un numero di dispositivi che si  equivalgono  in inglese peer  che svolgono le  funzioni sia di server che di client  In que   sto modo ogni nodo    in grado di avviare e  completare la comunicazione     il caso di due  portatili oppure di
78. aggi  JLi  UL  Tpaedikaphi  p 07    bkit bg i EB  4455  IB BFTES  Data  il 33 23010 Time  19 21 219 0  Alsivusda isatarsa      36b   Courre  Jagran   1719  27  Epassd kephit 0 13       Fig  9   Schermata appena avviato lo sketch  gps_parsing_v12ii     Ei  ELETTRONICA IN   Aprile 2011 151       Queste righe servono ad includere le due librerie   include  lt NewSoftSerial h gt    include  lt TinyGPS h gt     Si definiscono i pin usati per la comunicazione con Arduino ed il baud rate del modulo GPS   define RXPIN 3   define TXPIN 2   define GPSBAUD 4800        iene creta un istanza all   oggetto TinyGPS  TGR S TOPS      l Si inizializza la libreria NewSoftSerial utilizzata per la comunicazione con il modulo GPS  NewSoftSerial uart_gps RXPIN  TXPIN         Si dichiara un prococtipo per la funzione cella libreria TinyGPs  void getgps TinyGPS  amp gps      void setup          Si inizializza   il modulo VART per la comunicazione con il PE  Serial  begin 115200       d Si imposta il bauc race per il modulo GPS  uart_gps begin GPSBAUD      FATEStTO iniziale inviato dallo sketch verso il PC  serial  proel Gel  Serial  printinl  GPS Shiela Quickstart Examole Sketch vlz       Serial printIn     a ILING FOP lOCksoo E   Serale princi eee           Il loop principale semplicemente aspetta l   arrivo di una sentenza valida dal modulo GPS     quindi ne estrae le sotto stringhe richieste e le invia al PC    void loop      while uart_gps available       Aspetta l arrivo di dati validi  i int   
79. allelo  Vediamone il funzionamento in  dettaglio  Portando la linea Latch a livello  logico basso  si bloccano le uscite allo stato  attuale  tramite le linee Clock e Data si inviano  uno per volta i singoli bit di un numero a 8 bit   chiamato byte  il quale verr   successivamen   te posto sulle otto uscite non appena la linea  latch sar   riportata al livello logico alto  Lo  svantaggio di questa procedura    ovviamente  il ritardo impiegato per inviare in sequen    za tutti gli otto bit  ma sono sufficienti solo  tre linee del microcontrollore  Ovviamente    dovremo fare in modo che agli otto bit spediti  in sequenza corrisponda l accensione di un de   terminato numero di segmenti del display tale  da far visualizzare una cifra  Per fare questo  dovremo crearci una corrispondenza tra il nu   mero inviato ed i segmenti accesi  come indica   to nella Tabella 4  Il programma che riguarda  lo sketch per la gestione del display    illustrato  nel Listato 4  Oltre alle solite dichiarazioni che  ora tralasciamo  vediamo che una riga dichiara  un vettore di dieci elementi ciascuno conte   nente il numero decimale corrispondente ai  segmenti da accendere  Non serve far altro che  trasferire ogni singolo numero al 595 in modo  seriale  cio   bit per bit  e per questo useremo  un apposita funzione  chiamata shiftout  che si  accolla l onere di spedire bit per bit il numero  richiesto  Prima di richiamare questa funzione  dovremmo portare a livello basso la linea del  latch per bloccar
80. are  e rendere operativo il software di sviluppo   Il primo programma che realizzeremo non si            Legge lo stato del    digital Rkeadi  Button 1  s       Se    premuto attiva il  if  Burton l_ Srtcate    HIGH   lt 4     Accendo il  digicalWricel LEDI  HIGH  e    pulsante 1s    Bebe    SEDE    pulsante 2s    digitalRead Button_2       0 Se    premuto spegne il LeD  if  Button_2_State    HIGH     BEDE  digitalWrite LED1     LOW      discoster   molto dall   esempio gi   proposto il  mese scorso  dato che faremo semplicemente  lampeggiare il LED1 della Danger Shield   connesso al pin 6 del microcontrollore  Dopo  aver avviato il software  Arduino ver  18    nel nostro caso  potete scegliere di creare da  zero un nuovo progetto oppure  in modo pi    veloce  utilizzare un programma simile gi    disponibile modificando le parti necessarie   Consigliamo di creare una nuova cartella  nel  nostro caso Danger_01  nella quale potremmo  inserire un programma gi   esistente  simile  per funzione  come ad esempio il file Blink pde  presente nella cartella Example Digital Blink  e  rinominarlo come Danger_01 pde    Ricordiamo che Arduino    s   un prodotto  italiano  ma per favorirne la massima diffusio   ne sia il software che la documentazione sono  scritti in lingua inglese  in questo corso  per  facilitare la comprensione  nomi e commenti  ai programmi saranno in lingua italiana  tran   ne alcuni termini riconosciuti universalmente    ELETTRONICA IN   Luglio 2010 115    in lingua
81. ate da Mikal Hart e risultano reperibili  all indirizzo web http  arduiniana org  entram   be le librerie  come al solito  andranno copiate  nella directory libraries del software Arduino   In alternativa potete scaricare queste librerie  all indirizzo http   www sparkfun com tutorial   GPSQuickStart GPSQuickStart lib zip   Assicuratevi che il deviatore di alimentazione  sulla GPS shield sia in posizione ON e che il  secondo deviatore sia in posizione DLINK   poi collegate Arduino al PC con il solito cavo  USB  Sulla GPS shield si deve accendere il  LED rosso  alimentazione OK   il LED sul mo   dulo EM406 dar   le seguenti indicazioni    e LED OFF   ricevitore spento    e LED ON   non agganciato  ricerca del   segnale   e LED lampeggiante   segnale agganciato     Aprite l   ambiente Arduino  importate l   esem   pio TinyGPS  gt StaticTest e caricatelo sul  microcontrollore di Arduino  Aprite Tools    gt Serial Monitor ed impostate la comunica   zione su 115 200 Baud  riceverete una serie   di dati preimpostati dal software  ma non  ancora provenienti dal modulo GPS  Questa  prima fase vi assicura che il trasferimento e la  visualizzazione dei dati siano corretti   Scaricate quindi l esempio denominato  gps_parsing_v12ii pde scritto da Aaron Weiss   e reperibile all indirizzo http  www sparkfun         Mee ha e n n  i  P ratai Bist Fig  8   Schermata appena  avviato l esempio StaticTest     Ripp i gprs m ph     Biia dii Lie Ei       E  BAPAT PEL E AR ETL RI p CEPHE  p E ASSI  
82. ay di byte come richiesto dall   istruzione  FileLogger  append  che si occupa di scriverla  nella SD Card    Un altra libreria  molto avanzata  con ottima  documentazione riguardante anche la parte             case Si   Sample   analogRead 0    ue ee eo  itoa Sample buffer 10    STrCatTl logStr  DUTTEF  S  SAREL       ECO su Serial monitor    conversione Qa array  i char aa array oi Dyte  unsigned int length    strlen logStr  1     byte bufSD length     int ies   for  Ii 0  1 lt lengthn  imr        bufSDLi    logStr i          if  FileLogger  append    data log     bufSD  10     0     erge Error write SDI     3    hardware  si chiama SDFATLIB ed    scari   cabile dall indirizzo web http   code google   com p sdfatlib   il file corrispondente si chiama  sdfatlib201000818 zip  Questa libreria sfrutta il  bus SPI alla velocit   di 8 MHz  quindi il trasla   tore di livello deve essere a circuito integrato   tuttavia    stata testata sulla nostra Shield con  successo  Permette di gestire scrittura  lettu   ra  creazione e cancellazione di file e gestisce  anche sottodirectory in SD e SDHC formattate  FAT16 e FAT32  Scompattatene il file e copiate  l   intera cartella SdFat nella cartella libraries   di Arduino  cos   avrete a disposizione sia la  libreria che molteplici esempi  In questo caso     necessario che il deviatore PWR sia in posizio   ne 3 3 V  Aprite il file S42PinMap h e verificate  l impostazione dei pin  SS_PIN deve essere  configurato sul pin 10  La configurazione 
83. azio disponibile  potrete legge    re la formattazione presente  che nel nostro  esempio    FAT  corrispondente ad una FAT16     sapere il tipo di FAT con cui    formattata una  card    molto importante  perch   non tutte le  librerie di Arduino supportano lo standard  FAT32 e quindi occorre accertarsene prima     LA FORMATTAZIONE DELLE SD   La File Allocation Table  FAT     un file   system primario per diversi sistemi operativi  DOS e Microsoft Windows fino alla versione  Windows ME  Windows NT e le successive  versioni hanno introdotto l   NTFS e mantenuto  la compatibilit   con la FAT  cos   come molti  altri sistemi operativi moderni  Unix  Linux   Mac OS     La FAT    relativamente semplice ed    suppor   tata da moltissimi sistemi operativi  queste  caratteristiche la rendono adatta ad esempio  per i floppy disk e le Memory Card  Esistono  varie versioni di questo file system  in base a  quanti bit sono allocati per numerare i cluster  deldisco tt 236 ie ee eine  tera memoria    suddivisa in aree denominate  cluster  in Windows vengono chiamate Unit    di Allocazione  composte a loro volta da un cer   to numero di bit  Quando un file viene salvato  in memoria occuper   un certo numero  intero   di cluster  Cluster di grande dimensione  permettono una migliore velocit   di accesso ai  file ma di contro offrono una scarsa efficienza  nell   uso dei bit della memoria  frammentazio   ne  perch    ad esempio  un semplice file di te   sto in cui vi    scritto un solo caratte
84. azione dell albero di un motore non 120 gx cm  alimentato    Dimensioni 42 3 x 42 3 x37 mm       Tabella 5     Caratteristiche del motore  7300 STEPMOTO1 della Futura Elettronica     Motor A Avvolgimento A  Motor A Avvolgimento A  Motor B Avvolgimento B  Motor B Avvolgimento B  GND Massa alimentazione motori   Da collegarsi al pin GND di Arduino   M  Alimentazione positiva motori   Da collegarsi al pin vin di Arduino     Regoliamola al minimo  risparmieremo corrente   Cur Adj i  anche se il motore avr   meno forza a rotore fermo   GND Massa segnale di comando   Da collegare al pin GND della scheda Arduino   STEP Impulso di comando corrispondente ad un step   Da collegare al pin 9 della scheda Arduino   DIR Imposta la direzione di rotazione     Da collegare al pin 10 della scheda Arduino        Tabella 6   Connessioni di EasyDriver da usare per la  nostra applicazione  Tutti gli altri pin non sono utilizzati     120 Ottobre 2010   ELETTRONICA IN  A    ed un interruttore  utili per realizzare un  cablaggio pi   raffinato    Abbiamo messo appunto uno sketch apposito  denominato motor_4  che permette di coman   dare i motori in direzione e velocit   tramite  comandi dal PC  ovviamente con il cavo di  programmazione connesso    Anche se in modo limitato     comunque  possibile testare le funzionalit   della piattafor   ma  se non vi soddisfa il senso di rotazione     comunque possibile invertire i fili del motore  interessato    Ci rimane  adesso  un ultima parte riguardan   te i 
85. azioni  input output Iprogrammi di Arduino sono  scritti in C C    ma  per poter creare un file  eseguibile  all utilizzatore non    chiesto altro  se non definire due funzioni    e setup        una funzione invocata una sola  volta all   inizio di un programma che pu    essere utilizzata per i settaggi iniziali    e loop       una funzione chiamata ripetuta   mente fino a che la scheda non viene spenta     L IDE di Arduino usa la GNU toolchain e la  AVR Libc per compilare i programmi  mentre  si avvale di avrdude per caricarli sulla scheda   L hardware originale Arduino    realizzato  dalla italiana Smart Projects ed alcune schede  a marchio Arduino sono state progettate dalla  statunitense SparkFun Electronics    Fino a oggi sono state commercializzate le  seguenti versioni dell hardware Arduino     Arduino Single Sided Serial  la primissima  versione  equipaggiata con un ATMega8 e  programmabile via seriale  Lo stampato    di  tipo a singola faccia con tutti componenti DIP  ed    quindi facilmente realizzabile a livello  hobbistico     mi    ia  EAE    vi  o ca pl  PETAT  lento      lenmveronttana         Circuito stampato dell   Arduino USB     Arduino serial  versione costruttivamente mi   gliorata con PCB professionale  programmabi   le via seriale con microcontrollore ATMega8     Arduino serial V2 0  versione migliorata della  Arduino serial        Stampato dell   Arduino USB V2 0     Arduino USB  versione con connessione USB  facente uso del convertitore FIT232BM  La 
86. basato sul  microcontrollore ATmega328  in formato DIP   e dispone di 14 pin di I O  di cui 6 utilizza   bili come uscite PWM   6 ingressi analogici   un oscillatore a 16 MHz  un connettore per la  programmazione In Circuit ed un Plug per  l alimentazione  Come nelle ultime versioni di  Arduino     presente un connettore USB che   semplicemente connesso ad un Personal Com   puter  permette sia di alimentare la scheda  sia  di programmarla    Questa versione di Arduino    da intendersi  come la 1 0 basata sulla nuova tecnologia   per la connessione alla USB  la pagina di  riferimento per comparare tutte le versioni  hardware    la seguente  http   arduino cc en   Main Boards  Al solito  il sito Internet di riferi   mento dove vedere le caratteristiche e trovare  tutto quello che riguarda Arduino UNO     www arduino cc  in lingua inglese     La Tabella 1 riepiloga le caratteristiche pi    importanti della scheda Arduino UNO   L alimentazione della scheda pu   avvenire  tramite la porta USB  ma    disponibile il solito  connettore plug che accetta  in ingresso  una  tensione non regolata con valore compreso tra  7 e 12 volt  in questo caso un semplice alimen   tatore non stabilizzato universale impostato  sul valore di 9 volt    l ideale  ma nulla vieta di    eI  OS109       5  O           Tabella 1   Caratteristiche di Arduino UNO      m  Tensione di lavoro 5V  O Alimentazione esterna  raccomandata  TON  Seri Alimentazione esterna  limiti  6 20 V   lt q I O digitali 14  di cui 
87. besg a br ri beg iaia  nitidi Fri am ma  IrL H SCELTO   E C M   del DFE    z aha diipi HELPE Tan  EFrmmr PRIETEN Fla age Gba  jim DEI  ia niger Fummo Erigan fee neri fio  iii ii CO r Jib fps it fori i  Vini Baani RDRAM R chai lE  LEF  Pi  Eyma    mij m Bel ki Bd ji DB  jd jE Edi   Pari MAEM apE  Ti PENA bride giga ani h       Dei pazzia BI     a nme  n mmea    MON  TE LRE a a e i a A  E  tI  ee    Diir Lie dp bifa      Sii dhi Hia agi la  mil ag RL IE     iii Ta pal De   elet eni r Pere ce ar SIRO Tis sgu  Tims    Bm Eidin hea Serale fpu pl Pima  tim TESS Pr i  J E Lbr RS  ii    ZA I I A LI RR   Bea Flea  Fer i i ERETTE  cop  ai p ir  RIS I  NHE  BERIO B   PENES i PERSE PEPE mm  j       eN    com tutorial GPSQuickStart gps_parsing_v12ii   pde  poi caricatelo su Arduino  avviate Tool    gt SerialMonitor e finalmente a video vi ritro   verete i dati acquisiti dal vostro GPS    Se il LED del modulo EM406A rimane a luce  fissa per pi   di un minuto  significa che siete     5  coMzo  cje fn     E  se   Altitude  imacarmeii  T 40 s        Courses idegraseiioi i43 6   Spad i vaghi i D  19    Latrlang  CE   44955  15 ETLi  Data  lliagsa0l0 Tina  1772 20   Altitude imacaggiio      T      TAHE s idegrani 0 Aig  EF  Spesdiksphi  0 1     debt bong  GE  RSI  LE  E   Darte  1lidd 4010 Tims  171317 0  Ait talea  manaia ETE    EET C T  E T E E a     Spasdilesph               Lati Lengi GE  6460  IE  5P7ER  Date  11 22 3015 Time  171212195  59  Altitude  maectarss  i  d 30   Caursa i   d  egr
88. bili 65 000 65 000 FRS  la lunghezza  ha una potenza trasmissiva    Numero di canali disponibili   16 12 s k al      10r r 1  frenato 2 8 3 4V 2 8 3 4V Maggiore  che permette Ia comunicazione a    Portate 30 m  indoor  90 m  indoor     142 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A       O             t    lt   O  W  CS  O  O       grande distanza  in sintesi  le caratteristiche  tecniche sono riportate nella Tabella 2   Esistono diverse versioni di moduli XBee a  seconda del tipo di antenna adottato  il pi    performante dei quali consente l utilizzo di  un antenna esterna con attacco U FL  ma i  costi e gli ingombri maggiorati non sempre ne  giustificano l utilizzo  Una seconda versione  prevede un antenna a stilo gi   installata e  consente di ottenere quasi la massima porta   ta dichiarata  un ultima versione dispone di  un antenna integrata  decisamente molto pra   tica  ma che riduce la portata di circa il 30     La serie PRO  perfettamente compatibile con  la standard  ha una potenza ed una sensibilit    in ricezione maggiorata  caratteristiche che le  permettono di essere impiegata in comunica   zioni a lungo raggio  si distingue per la scritta  PRO sull   involucro e la lunghezza leggermen   te superiore a quella degli altri moduli    La serie 2 dei moduli XBee implementa com   pletamente lo standard ZigBee  ci   aumenta  la possibilit   di realizzare reti complesse  autoconfiguranti con funzioni di auto routing   auto riparanti e reti mesh  L aspetto esterno   
89. borati assicura migliori  risultati di tanti satelliti ricevuti male    La sensibilit   fornisce un indicazione della  capacit   di poter agganciare anche segnali  deboli e quindi    indice di un buon funziona   mento anche in zone disturbate o in cui giun   ge un segnale  debole come in centro citt      La precisione    un altro parametro di sicura  importanza ed    strettamente legato al prezzo  dell apparato  tralasciando costose versioni  per misure sul territorio  catasto o viabilit      i ricevitori commerciali si attestano su una  precisione di  10 metri o poco meno    Per chi di voi si stia chiedendo a cosa possano  servire i ricevitori GPS  diciamo che la loro  principale applicazione    la memorizzazione  di un percorso  nel caso di escursionisti  o la  tracciabilit   dei veicoli  pi   raramente  i GPS  si usano per la navigazione di veicoli senza  pilota  Molto pi   spesso li troviamo integrati  negli smartphone di ultima generazione  cos    da rendere disponibile una serie di servizi   tra cui la visita guidata alle citt   d   arte o da  aiutarci a recuperare la strada di casa durante  una vacanza in una nuova citt    gli smartpho   ne con ricevitore GPS possono diventare  con  appositi software  navigatori satellitari dotati  di assistenza vocale    Tra i modelli disponibili sul mercato ne abbia   mo selezionati un paio di facile reperibilit   e  pienamente compatibili con la nostra scheda  Arduino  infatti  vista l estrema miniaturizza   zione di questi apparati
90. c    Test controllo Arduino con IPhone  s   Arduino    installato firmatastandard  Vi O    Sr    l Per OSG   imporre oscPS     s  iMmportonetPo ss   0SCPS 050P5       Per Arduino   import Processing  serial       import Ce Ruino  Arduino arduino s    intil values    4 Arduino  LOW  s  int pin out   13     Definisce pin oi uscita 13  LED on board     float faderl   0 0f   loar rocgle l  0073  float ledl   0 0f     void setup      size 320 440    frameRate 25    I  start 0scePS   listening Tor incoming messages atr port 8000     oscP5   new OscPSCrchi s  8000  s     Impostazioni per Arduino  printinlArduino  et  arduino   new Arduinolthis  Arduino  listOLC3 I  57600        Impostare l Andate array  2  a seconda oella COM usata ca Arduino  il Utilizzare le indicazioni riportate sulla taskoarr in passo all avvio     del programma    arduino  pinModelpin  out  Arduino  OUTPUT        void oscEvent 0scMessage the0scMessage       SLI 00  Tloat val      the0OscMessage addrPattern        the0OscMessage get 0  floatValue     itladdr  equals   1 ftaderi        faderl   val     else if addr equals     1 togglel        togglel   val           void draw      background 0         toggle 1 outlines   MISSNCODE   strokel 0  196  168      Set COlore bordo pulsante  rect S0  957100  600 600     Set posizione bordo pulsante    d toggle 1 Fills  filio  196  168 s  if togalel    1 00f  4  rect  0095410060605    arduino  digirtalWriceloin out  Arduino  hieh ds    LED ON     else  arduino  Aigiralhri
91. c oppure 2 3 Vcc con  batterie    e configurazione tramite UART o wireless  con semplici comandi ASCII    e aggiornamento firmware tramite FTP    e autenticazione di rete WEP 128  WPA PSK   TKIP   WPA2 PSK     Fig 1   Come  si presenta  la WiFly        O  o  O  le   le   O  o  o  0  O  O   a    a        09000060 00I0000         e      e      e         e   a    pIy OS109       5  O       Fig 3   Avvio sketch SpiUartTerminal     tools  gt  HardwareFactoryReset  WiFly_Autoconnect_Terminal SpiUartTerminal  WiFly_WebClient    WiFly_WebClient_Faster    e protocolli di rete implementati  DHCP  i  WiFly_WebServer    UDP  DNS  ARP  ICMP          0  Fig 4   Modalit   di I WiFl di   Lo shield utilizzato per questo articolo    l   ul  g pil a    tima versione  viene fornito gi   montato  e in  esso    sufficiente saldare gli appositi strip per  permettere la facile installazione su Arduino  ed eventualmente sovrapporre un secon     SSS    O     5  Ke   Sea   lt   O  W  fa  O  O    SPI UART on WiFfly Shield terminal tool    This is a tool to help you troubleshoot problems with the WiFly shield     do shield Il sito di riferimento er uanto For consistent results unplug  amp  replug power to your Arduino and WiFly shield   a 3 i pP q  Ensure the serial monitor is not open when you remove pover    riguarda la parte software     www sparkfun     R Attempting to connect to SPI UART     com commerce tutorial_info php  Da esso  oltre Connected to SPI VART   ai vari esempi  potete seguire il foru
92. capi del potenzio   metro sono collegati uno a massa ed uno alla  tensione di alimentazione  mentre il terzo con   tatto  quello centrale     connesso all ingresso  del microcontrollore  In questo modo abbiamo  creato un partitore resistivo che permette di  far giungere all ingresso solo una parte della  tensione di alimentazione a seconda della  posizione dello stick dello slider    Il programma che permette di visualizzare il  numero corrispondente alla posizione del cur        0 metal lafDut                                 G o    SA E  i Sh go di             Arduino    Analog in    Ue Ss a G  all e el e       Fig  2       sore del potenziometro    esposto nel Listato 5   Abbiamo utilizzato il listato del precedente  esercizio per consentire la visualizzazione sul  display  per   aggiungendo semplicemente  due righe necessarie alla lettura dell    ingresso  analogico    La riga int Slider_1   2  dichiara la lettura  analogica dall ingresso 2  al quale    connesso  lo slider_1  mentre la int Slider_Pos   0  defi   nisce una variabile che useremo per scalare   il valore numerico da 1023 a 9 per adattar    lo alla capacit   del display  Segue la riga   che avvia la conversione  ossia Slider_Pos    analogRead Slider_1    la quale salva il risultato  nella variabile Slider_Pos e successivamente lo  scala riconducendolo ad un valore compreso  tra 0 e 9  Ci   viene ottenuto semplicemente  dividendo la variabile per 103    Slider_Pos   Slider_Pos 103   Il valore cos    ottenuto vie
93. cazione su UDP      Set ip host 169 254 1 100  imposta l indirizzo  del dispositivo esterno  host       Set ip remote 9000  imposta il numero di  porta utilizzato dal dispositivo esterno per  ricevere i messaggi inviati da WiFly      Set ip local 8000  imposta il numero di porta  utilizzato da WiFly per ricevere i messaggi  dal dispositivo esterno      Save  salva i valori in memoria permanente      Reboot  riavvia il sistema e rende operativi i  nuovi parametri        possibile  a questo punto  interrogare il               Then send each command followed by a carriage return   Waiting foz input     Connected via Ad Hoc on ARDUINO  Using Static IP   IF UP   DHCP 0FF   Ip 169 254 1 1 8000  NM 258 255 0 0   Gi 0 0 0 0    Ip 169 254 1 1 8000  NM 258 255 0 0     1 100 9000             Fig 18   Impostazione manuale della rete di iPhone     pIy OS109    z  5  O                   Fig 19   Associazione tra WiFly e IPhone  Fig 21   Schermata Fig 22   Impostazioni   a Ti              dell   applicazione per iPhone  per TouchOSC   Eug   n EER   I F            na    sattl TIM    15    LL               TouchOSC Network  sti UART on Wifly Shield verminal tool    a Host 169 254 1 1   This is a tool to help ycu troubleshoot problems with che Wifly shield      For consistent resolts unplug    replug pewar to your Arduino and WiFly shield    Ensure the serial monitor is not cpen when you remove power   Port  outgoing  8000  Attempting to connect to SFI UART       Port  incoming  9000   Connect
94. celpin out  Arduino  LOW     LED OFF       fader 1 outlines   Taio   Sibiro ole 230 0000     Set colore bordo fader  rect 20T200  95 00 255 s   Set posizione bordo fader     l tader 1 frills   LIMES 237  0    pe Gt 2020 00 2005 oO aer e a e poe zone Dordon rader  arduino   analoghricel   Inti ftaderi 255  s   Setr luminositAa LED    ELETTRONICA IN   Novembre 2010 153    Fig  12    15 08    TouchOSC    sail TI L    Network    192 166 0 199    Layout    Options    Stay connected    Accelerometer  Double tap lock    Send z messages    pulsante destro inseriamo un toggle button  ed un fader verticale  Fig  11a b   Cliccate su  sync e seguite le istruzioni a video per caricare  la nuova schermata sull iPhone  l operazione  avviene tramite la rete Wi Fi in modo molto  semplice e funzionale  Selezionate questo  nuovo layout ed avviatelo  aprite processing e  caricate lo sketch processing_osc_01 pde che ri   portiamo nel Listato 2  Lo sketch in questione  prevede la gestione dei messaggi in standard  OSC provenienti dall   iPhone e intercettati  grazie alla funzione oscEvent  dai quali viene  estrapolato il valore del fader e del pulsante   Questi valori sono utilizzati per gestire la  grafica a video  anche se non strettamente  necessario  e icomandi per Arduino  gi   spe   rimentati nei precedenti esempi  Ricordatevi  di attivare la casella stay connected per fare in  modo che il canale di comunicazione rimanga  aperto  Fig  12     Un ultimo esempio molto significativo  pro   cessi
95. che l interfaccia  elettrica prevede 9 contatti ed una modalit     di comunicazione compatibile con l   interfac   cia parallela a 4 bit  SD Mode  e l interfaccia  seriale SPI  Serial Peripheral Interface  a due  linee dati ed un clock  SPI Mode     La tipica tensione di alimentazione    di 3 3  volt  i valori ammessi sono 2 7 3 6 V  quindi    Fig 3  Piedinatura  di una   SD Card        RN ACC      CD DAT3 1 0 Card detection   Data Line 3  Bit 3     O smoel   name   rupe   pescrision   name   me J_ pescrinion           SPI Mode    Chip Select  Active low     Dataln Host to Card Commands and Data  VSS1 Supply Voltage Ground   VDD Supply Voltage   CLK Clock   VSS2 Supply Voltage Ground   DataOut Card to Host Data and Status   RSV Reserved   RSV Reserved    SPI Mode    CS l Chip Select  Active low    Dataln   Host to card Command and Data  VSS1 S Supply Voltage Ground   VDD S Supply Voltage   CLK l Clock   VSS2 S Supply Voltage Ground   DataOut O Card to host Data and Status    i livelli dei segnali per la comunicazione do   vranno essere analoghi  Se il microcontrollore  cui    connessa la SD    alimentato a 3 3 V i  segnali saranno applicati direttamente  mentre  se si usa una logica a 5 V sar   necessario pre   vedere un adattamento tra i segnali  rispettan   do le seguenti indicazioni    I segnali in uscita dalla SD Card  3 3 V  posso   no essere applicati direttamente agli ingressi  del microcontrollore  che pur alimentato a 5  volt riconoscer   correttamente il livello log
96. co il    Fig 13   Lettura dello stato del file hola txt   i COMO i    ii bip   L fila info   D Salata   Pagpand anrisg   n HALT ELit EES FELTA     damp no perial      dgpantd Tikt     Emai  tH  Eb LAED  lacsgrh Reccore una  de    Cik EEE   oi     Enik  Ta  dig Pile   esa var    dona     isla var    FJa info  aes ssttoca dibd  105 La     9  isa      e       carattere speciale  0x03 ASCII  di fine testo   Rileggete lo stato del file con il comando    L      Il parametro length vi riporta il numero di  caratteri che avete inserito inizialmente  esso  rappresenta anche il massimo numero di  caratteri che potremmo scrivere  Il parametro  sectors vi riporta il numero di settori occupati  dal file  mentre used vi indica il numero di  caratteri usati  che in questo caso    zero   Inviate il comando    P     che permette di scrive   re il testo    hola caracola     viene data confer   ma della scrittura con la dicitura    Done     I ca   ratteri     n  indicano l inserimento di un    fine  linea     Ripetete il comando    L    per verificare  lo stato del file  quindi inviate il comando    R     per leggere il testo scritto nel file  Fig  15    Come potete vedere  ora il parametro used  vale 15  ad indicare la scrittura di 15 caratteri   Potete anche rimuovere la SD Card da Ardui   no  senza necessariamente scollegare alcun   ch    ed inserirla nel PC per leggere il file   Noterete la scritta    hola caracola    ed una  serie di caratteri speciali aggiunti durante   la cancellazione d
97. connettori  femmina a passo 0 1 pollici    Inoltre  sono disponibili commercialmente  molte schede applicative plug in  note come     shields       Le schede Barebones e Boarduino e Seeduino   tre cloni compatibili con la Arduino  sono  dotate di connettori maschio sul lato inferiore    pIy OS109    z  5  O       O       gt   Ke   de   lt q  O  W       O  O       del circuito  in modo da poter essere connesse  a una breadboard senza necessit   di effettuare  saldature   L ambiente di programmazione integrato   IDE  di Arduino    un applicazione multipiat   taforma scritta in Java  ed    derivata dall   IDE  creato per il linguaggio di programmazione  Processing e adattato al progetto Wiring      concepito per introdurre alla programma   zione hobbisiti e neofiti  a digiuno di pratica  nello sviluppo di software   Per consentire la stesura del codice sorgen   te  il programma include un editor di testo  dotato di alcune particolarit    come il syntax  highlighting  il controllo delle parentesi e  l   identificazione automatica delle istruzioni   L editor    inoltre in grado di compilare e  lanciare il programma eseguibile in una sola  passata e con un singolo click  In genere non  c    bisogno di creare dei Makefile o far girare  programmi dalla riga di comando   L ambiente di sviluppo integrato di Ardui   no    fornito di una libreria software C C    chiamata    Wiring     dall omonimo progetto  Wiring  che rende molto pi   semplice imple   mentare via software le comuni oper
98. d anche il punto in cui   i motori sono maggiormente sollecitati  ma  come potete vedere  anche alla massima ten   sione di 6 volt  siamo ampiamente al disotto  del valore dei 2 A sopportato dal driver di  ArduMotor  Utilizzando la piattaforma robo   tizzata a quattro ruote  i motori di ogni lato    A ELETTRONICA IN   Ottobre 2010 119    Angolo passo passo  Numero di fasi  Resistenza per fase  Induttanza per fase  Resistenza d isolamento    Classe d isolamento    potranno essere connessi in parallelo funzio   nando all unisono come in un carro armato   rispettando ancora una volta il limite massimo  al Za   Per l alimentazione ci affidiamo a 4 batterie  ricaricabili da 1 2 V  le quali  completamente  cariche  forniranno 1 5x4 6 volt  il massimo  consentito dai motori   Tuttavia non potremo  sfruttarle al massimo  perch   gi   ad 1 1 volt  per cella la tensione totale sar   di soli 4 4 V   Inserite le batterie in un portabatterie e rea   lizzate un cavetto di alimentazione che abbia  da una parte il plug per la scheda Arduino   e dall altra la clip per il portabatterie  Sulla  confezione della base robotica troverete anche  tutte le viti per il fissaggio  un plug maschio    1 8    200 passi    2  bipolare    55 ohm   80 mH   100 Mohm min   500 Vcc   B    Inerzia del rotore 54 g cm    Massa 0 23 kg  Alimentazione max  15 4 V  Consumo 0 28 A   Coppia di tenuta  coppia che  con motore 24kgxcm  alimentato  si oppone alla rotazione    Coppia residua  coppia che si oppone alla   rot
99. dd File      aggiunge un file sorgen   te allo sketch attuale     Tools   e Auto Format  serve per formattare  il codice ad esempio per renderlo     identato     cio   per applicare rientri  diversi a seconda delle righe    e Board  seleziona la scheda Arduino  utilizzata    e Serial Port  per impostare la porta  seriale sulla quale la scheda    con   nessa    e Burn Bootloader  questo menu  permette di avviare la procedura di  installazione del bootloader all   inter   no della scheda Arduino    Questa operazione non    richiesta    eI  OS109       3  O       O     5  Ke   fe   lt   O  W  i   O  O          Dichiarazione delle variabili           d LeDI connesso al pin digitale DG   d LED connesso al pin digitale D5     b  rron 1 connesso al pin digitale D2   d button 2 connesso al pin digitale D7     b  rron s connesso al pin digircale D4    usate per leggere lo stato dei pulsanti    run i o   6   con le schede arduino in ie a   5       int BUTTON L   2s  quanto vengono fornite e a E  con il bootloader gi   pre    int Button_3   4   caricato   ot putton le otote  O   Uploading int Button_2_State   0     Per caricare il vostro sketch     necessario prima selezio   nare la corretta Arduino  Board dal menu Tools  gt   Board ed impostare la giusta    porta di comunicazione  dal      percorso Tools  gt  Serial Port       void setup      I      inizializza i  piinMode LEDI  OUTPUT   lt    d inicializza il  pinMode Button_1    d initializza il  pinMode Button_2     pin del LED come
100. di X CTU   DE x CTU  COM30    About   PC Settings   Range Test Terminal   Modem Configuration      Line Status Assert  Clos Assemble  Cle Show  Ost E EEA OTR ATS  Break A m Cee   nor  E      x     aabbhh11    z     COM30  96008 N 1 FLOW NONE       Fig  37   Schema degli elementi utilizzati per l esempio     Editor  Arduino    come indirizzo di destinazione l   indirizzo    sorgente di C  che    diverso da A e B  quindi  solo a questo modulo giungeranno le loro  trasmissioni    Ovviamente se disponete di una sola posta   zione di programmazione dovrete program   mare prima un modulo e successivamente  l   altro  utilizzate il software X CTU ed impo   state i vari parametri  poi premete Write per  scrivere nella memoria del microcontrollore i  nuovi valori     PROGRAMMAZIONE DEI MODULI   XBEE SERIE 2    La serie 1 non implementa la funzione di rou   ter e non    possibile configurare reti mesh   Con l introduzione della serie 2  le modalit      A ELETTRONICA IN   Dicembre 2010   Gennaio 2011 158    Fig  38   Avvio procedura di scrittura nuovi  parametri su modulo     b EE  AES Enciyplon Enable y    Initializing Modem I    COM4  96008N 1 FLOW NONE XB24 Ver1083         Fig  39   Scrittura su modulo dei nuovi parametri   B EE   AES Enciyption Enable y    Programming Modem ESS       Fig  40   Scrittura terminata con successo     EI LL TAI IMPUI LI IGIO vyv       19600 8 N 1 FLOW NONE XB24 Ver1083       Fig  41   Lettura dei parametri predefiniti di  un modulo XBee serie 2       Rem
101. e    sufficiente verificare se ha almeno  quattro fili  allo scopo utilizzate un tester e  misurate la continuit   tra i vari fili per iden   tificare i due avvolgimenti A e B  Se avete re   cuperato il motore in qualche discarica e non    pIy OS109    z  5  O       O     3  y  i    lt   O  W       o  O             Listato 3                int StepPin  int DirPin    void setup      pinMode StepPin  OUTPUT    pinMode DirPin  OUTPUT         void loop     delay 1000    Rotate false 1000  1250    J    void Rotate boolean dir int steps  int Delay     Dee crue o false     Steps numero di impulsi   d Delay eo cra un impulso ed 1l successivo    digitalWrite DirPin dir     delay 50     for int 10   steps i i  digitalWrite StepPin  HIGH        RicChiama Tunzione per la rorcazione      Pipete steps volte     pone alto il pin    delayMicroseconds Delay 2      attende  digitalWrite StepPin  LOW      pone basso il pin  delayMicroseconds Delay 2      attende    trovate i suoi dati  assicuratevi almeno che   la resistenza di ogni fase sia sufficientemen   te alta per poter garantire una corrente non  superiore ai 750 mA  Ipotizzando una tensio   ne di alimentazione di 12 volt  la resistenza di  ciascuna fase dovr   essere di almeno 16 ohm   se trovate un valore pi   basso  il motore non     adatto al nostro driver    Appurata l idoneit   del motore  non vi resta  che cablare il tutto seguendo le indicazioni  riportate nella Tabella 6  in essa  per comodit    ai pin del driver EasyDriver sono
102. e  XBee shiled Libelium  Arduino duemilanove  USB Bluetooth dongle Velleman    Questo sketch configura il modulo come slave  di    void setup         Serial begin 38400     Imposta 1   UART a 38400 baud    delay 1000      Serial  Print Svevi SIMO mostra T modulo Come slave  Serial print     r n STNA Arduino r n      Assegna il nome    Arduino    al modulo  delay 2000      Ritardo necessario per la configurazione     Serial print     r n tINQ 1 r n         delay 2000      Ritardo necessario per abilitare la comunicazione        void loop         delay 1000      int sensorValue   analogRead A0     Legge il canale analogico AO  Serial println sensorValue  DEC     Invia il dato via UART    A ELETTRONICA IN   Giugno 2011 157       EJ IVT Corporation BlueSoleil   Finestra principale co   PI fine   File Visualizza Bluetooth Servizi Strumenti Guida    Pronto  Inserire una periferica Bluetooth  iP PAM 0 00 0      File Visualizza Bluetooth Servizi Strumenti Guida    Ricerca delle periferiche in corso    PAN IP  192 168 501 _      Fig 7   Ricerca periferiche     Autoconnessione con l   ultimo dispositivo  connesso    r n STAUTO 0 r n Proibito   r n STAUTO 1 r n Permesso    Permette la connessione del dispositivo   r n STOAUT 0 r n Proibito   r n STOAUT 1 r n Permesso    Imposta PIN code  Passkey    r n STPIN 2222 r n Imposta il PINCODE  920200    Cancella PIN code  Passkey assegnata dal  microcontrollore    r n DLPIN r n Cancella PINCODE    Legge l indirizzo del dispositivo     r n RTAD
103. e la visualizzazione sul numero  attuale e predisporre l   integrato alla ricezione  della sequenza seriale  successivamente porte   remo la linea di latch al valore alto per trasferire    ELETTRONICA IN   Luglio 2010 119    Listato 6           5  Danger_06  Lettura ingresso analogico     Viene letca la posizione del Sliderl e visualizzata sul display con valori RE    Per DangerShield su Arduino Duemilanove  xy       Slider 1 connesso all  ingresso analogico O   int Slider_1   2     iNariaoile che definisce la posizione dello slider  int Slider_Pos   0       Pin connesso a SI_CP oi 74rC595   int larcchPin   8s      Pin connesso a Sh CP oi 74rnC395   int ClockPin   12     ididi Pin connesso a DS C5965   int dartaPin   13s     i Corrispondenza tra 1 segmenti accesi eod i Din aretivis  ine numerol    1252  960  218  242  102  182  190  224    void setup         imposta i pin conme Uscite  pinMode latchPin  OUTPUT    pinModelclockein  OUTPUT   pinMode dataPin  OUTPUT     ji    vow ooa a     legge il valore del porcenziometro  Slider_Pos   analogRead Slider_1        Converto il valore letto 0 1023 in un valore 0 9    Slider Pos   Slider Pos 103s    254  246       lmertrco bassa la linea larch e predispongo per ta trasmissione seriale    digitalWricellarcchPin  LOW  s      trasferisco in seriale il valore da visualizzare    shirct  OutldataPin  clocekPin  LSBFIRST  numerolslider Pos       digitalWrite larchPin  PIGH  e  delay 200      0080 0 O_L_0_0_8_L_8_G_O_8 8 OS 8 L_O_S_O_O_8_L
104. e quella per linux arduino 0018   toz  Nella successiva descrizione faremo riferi   mento all   installazione in ambiente Windows   Decomprimete il file scaricato assicurandovi  di conservare la struttura delle cartelle    Nelle varie cartelle sono compresi  oltre al  sistema di sviluppo  tutti i file java necessari  i  driver per FT232 e gli esempi del caso     3  Connettere la scheda   Come prima applicazione suggeriamo di  alimentare la scheda direttamente dalla USB   per fare questo    sufficiente inserire il cavo tra  la porta USB del PC e la scheda  Non ci sono  jumper o deviatori da impostare  quindi il  LED di alimentazione  PWR  deve illuminarsi   Appena inserita la scheda  il sistema operati   vo Windows inizia l installazione dei driver   con Vista questo passaggio    automatico  in  quanto esso ricerca autonomamente i drive   e li installa  operazione che richiede alcuni  secondi  Per sistemi operativi pi   vecchi la  procedura avviene manualmente    Una volta aperta la finestra di dialogo del    la richiesta dei driver bisogna fare clic sul  pulsante sfoglia e specificare il percorso in cui  trovare i driver  nel nostro caso    la cartella  FDT USB driver contenuta nei file di Arduino   Fatto ci   si deve avviare l installazione dei  driver     4  Avviare il software   Avviamo il software  aprendo la cartella Ar   duino appena decompressa e facendo doppio  clic sull icona dell   eseguibile Arduino     5  Caricare un programma   Apriamo il programma di esempio LED
105. ealizzare un collegamento wire   less con un PC  dovremmo necessariamente  dotarci di un adattatore Bluetooth  Bluetooth  dongle  da inserire in una porta USB libera  del PC  Per le nostre verifiche sul campo  abbiamo utilizzato il Bluetooth USB dongle  prodotto dalla Velleman e distribuito dalla  Futura Elettronica con il codice PCUSBBT   esso viene fornito con il software Bluesoleil  della IVT Corporation  il pi   diffuso per far  dialogare dispositivi Bluetooth con un com     puter  al quale faremo riferimento in questa  puntata del corso  Il modulo Bluetooth Bee  sar   inserito nella XBee shield e a sua volta su  Arduino  ma  per poterlo utilizzare     necessa   rio programmarlo  la programmazione avvie   ne tramite l invio di semplici comandi seriali      possibile inserire il modulo Bluetooth Bee in  un adattatore USB XBee  in modo da consenti   re la programmazione via PC  ma preferiamo  sia direttamente Arduino  tramite un apposito  sketch  ad inviare le impostazioni  Elenchiamo  qui di seguito i comandi a disposizione     Imposta modalit   di funzionamento   r n STWMOD 0 r n Client  slave    r n STWMOD 1 r n Server  master     Imposta Baud rate    r n STBD 115200 r n Imposta baudrate  115200   Baudrate supportati  9600  19200 38400 57600 11  5200 230400 460800     Imposta il nome del dispositivo   r n STNA abcdefg Imposta il nome    abcdefg                               Listato 1              BluetoothBee Demo Code  2011 ElettronicaIN    Hardware   modulo BluetoothBe
106. ed to SPI UART     Local IP address      Use      with no line ending  to enter WiFly command mode     Then send each command followed by a carriage return       Te g  oW  gce Uljalo     Waiting for input     Connected via Ad Hoc on ARDUIHO  Using tatie IP   IF 0F   CHCE OFF   Ip 169 254 1 1  8000  MHil a755 255 0 0   GA 0 0 0 0       A questo punto dobbiamo occuparci dell   ap   plicazione da far girare su iPhone per poter    WiFly shield  con i comandi get ip e show net  inviare messaggi tramite la nuova rete creata   per verificare l effettiva funzionalit   dei nuovi Il modo pi   semplice prevede di utilizzare il  parametri  figure 15 e 16   protocollo UDP per il trasporto dei dati codifi   A questo punto dovete intervenire sull   iPho  cati secondo standard OSC  In APP Store sono  ne per impostare i parametri della nuova disponibili diverse applicazioni pi   o meno  rete  accedete alla sezione Wi Fi del menu sofisticate che permettono di inviare questo  impostazioni e in esso impostate la modalit   tipo di messaggi  come ad esempio TouchOSC   Wi Fi su ON ed attendete che l iPhone rilevi IOSC  OSCEmote  MRMR_OSC_ controller    la presenza della nuova rete  identificandola Per il nostro scopo abbiamo preferito l appli   con il nome ARDUINO  da noi stessi assegna  cazione TouchOSC che  anche se pi   costosa   to nella programmazione del WiFly  dispone di un ottimo supporto on line  inoltre  Assegnate manualmente l indirizzo IP stati     facilmente personalizzabile tramite l 
107. el file con il comando    D      In totale  contando anche i caratteri    Null      uno prima ed uno dopo il testo  troverete 20    Ei  ELETTRONICA IN   Febbraio 2011 153    e RL  f    Baldi LEN     iaia al     ada dn             Listato 1       Cases     caratteri come avete scritto all   inizio    Una seconda scrittura sullo stesso file   comporter   la saturazione dovuta al   superamento del numero massimo di   caratteri    Vediamo ora tutti i comandi  Basic    implementati in questa libreria    e ls filename   riporta la dimensione mas   sima  il numero di settori ed il numero di  caratteri usati    e del filename   cancella il file ed inserisce il  carattere NULL  0x00 ASCII  all   inizio di  ciascun settore    e print filename  string   aggiunge una strin   ga alla fine del file    e printIn filename  string   aggiunge una  stringa e un EOL  End Of Line  a fine testo    e cat filename   legge il contenuto del file o lo  invia alla porta seriale    e append filename   attende l   arrivo di testo  dalla seriale e lo aggiunge a fine file     e es 0 e 0 e 0 0    Lo skecth prevede la gestione di questi co    mandi tramite l   invio di caratteri dalla seriale   con il tool Serial monitor  pi   esattamente  le   funzioni dei comandi sono le seguenti    e H scrive l elenco dei comandi    e L scrive la lista delle informazioni del file      hola txt        e D cancella il file    hola txt     P  Scrive sul file     hola txt    il testo    hola caracola       e W inizializza il f
108. eless per automobile  anche Arduino UNO    nella strumentazione  ma anche nelle periferi  una XBee shield  che    la versione prodotta  che del computer e nei lettori di codice a barre dalla Libelium  www libelium com    senza fili  Come vedremo  dotare Arduino di un modulo Bluetooth Bee della Seeedstudio          Fig 1   XBee shield     Fig 2   Modulo  Bluetooth Bee     Fig 3   Modulo  Bluetooth Bee        Fig 4   Modulo Bluetooth     156 Giugno 2011   ELETTRONICA IN A     www seeedstudio com  fornito dalla Futura  Elettronica  codice 7300 BLUETBEE         possibile acquistare a parte il solo mo    dulo Bluetooth  Futura Elettronica  codice  7300 BLUETOOTHMOD  ma  viste le ridotte  dimensioni  il suo utilizzo non    per niente  agevole  Pur costando di pi    consigliamo  l utilizzo del modulo gi   cablato sulla piccola  basetta XBee  facilmente utilizzabile con la sua  XBee shield    Vediamo ora brevemente le caratteristiche di  questo ricetrasmettitore Bluetooth apposita   mente progettato per realizzare collegamenti  trasparenti tra due apparecchiature  Questo  modulo contiene un ricetrasmettitore fun   zionante nella banda ISM  ricordiamo che   lo standard Bluetooth riguarda connessioni  effettuate alla frequenza di 2 4 GHz  ed    in  grado di gestire collegamenti seriali sino a  460 800 bps       compatibile con le specifiche Bluetooth v2 0    EDR  con una potenza in trasmissione di 4  dBm  Classe 2  che gli consente collegamenti  sino a circa 10 metri    Il modulo UART 
109. ella 3       Verify Compile  Compila e verifica errori nel listato     Stop  Ferma l   applicativo Serial Monitor o altra funzione attiva     New  Crea un nuovo sketch     Open  Per aprire uno sketch esistente negli esempi  o in una cartella proprietaria     Save  Salva l   attuale sketch aperto     Upload to   O Board  Compila e trasferisce il codice all   interno della Arduino board     Serial Monitor  Apre l   applicativo serial monitor  Utile per inviare o ricevere  velocemente caratteri dalla porta di comunicazione seriale               che permettono il fissaggio alla Arduino bo   ard  nel nostro esempio abbiamo utilizzato gli  strip maschi forniti nella confezione  il che ci  permette di tenere la Danger board ad alcuni  millimetri di distanza dal connettore USB e di  alimentazione della Arduino board    Per sicurezza ponete del nastro adesivo iso   lante sopra il connettore USB  cos   da essere  certi che incidentalmente questo non vada a  toccare le piste dello stampato della Danger  Shield    L ambiente di sviluppo Arduino contiene   un editor di testo  un   area per i messaggi     una toolbar con pulsanti per le funzioni pi    frequenti ed una serie di menu  I programmi  scritti con Arduino si chiamano Sketches e ven   gono scritti nell   editor di testo  il quale     in  grado di gestire contemporaneamente pi   file  aperti ad esempio C files   c extension   C    files   cpp   oppure header files   h   Tutte le  classiche funzioni di copia incolla  ricerca del  te
110. enominato  GLCDeinline disegna due linee incrociate a  tutto schermo  con al centro un cerchio    La libreria    molto nutrita e l elenco completo  di tutti i comandi    riportato  con le descrizio     visibili nel Listato 2     possibile modificare  queste linee di codice per impostare in modo  diverso le linee utilizzate per la gestione del  display GLCD  a riguardo  si consiglia prima  di leggere le note esplicative riportate nel    la pagina HTML di riferimento per questa  libreria  nel sito di Arduino  Utilizzando un  microcontrollore a 28 pin rimangono comun   que poche linee disponibili per le applica   zioni  Una seconda possibilit      offerta dal  display grafico ADM12864H  anche questo  reperibile presso la Futura Elettronica  codice  LCD128x64  sempre basato sul chip KS0108  che presenta il vantaggio di avere i 20 pin in  linea e quindi facilmente gestibili con una  breadbord  Per il collegamento alla scheda  Arduino potete fare riferimento alla Tabella 9   Una valida soluzione alle difficolt   di cablag   gio ed al cospicuo numero di linee utilizzato     ni del caso  nella Tabella 6    Come avete visto  il display grafico richiede 8  linee per i dati e 5 per il controllo  l   assegna   zione di queste funzioni    esplicitata nel file  KS0108_Arduino h con le righe di programma    arriva con l introduzione sul mercato dei di   splay a controllo seriale  i quali necessitano di  sole quattro linee   Vcc  GND  TX  RX  che si  comandano tramite semplici stringhe invia
111. ente  ponendo BL  a massa e BL  al positivo dei 5  volt con una resistenza da 20  50 ohm a secon   da del livello di intensit   luminosa desiderato   A questo punto siamo pronti al cablaggio fisi   co del display con la scheda Arduino  per fare  questo ci sono diverse possibilit    ad esempio  l utilizzo della Protoshield oppure di una ba   setta sperimentale  L importante    rispettare  lo schema di collegamento illustrato nella Fig   1  Facciamo ora un esempio pratico utilizzan   do il display di codice CDL4162  Clover  di   stribuito dalla ditta Futura Elettronica  dal cui  sito    possibile scaricare anche il data sheet   in lingua italiana  nel quale    riportata chiara   mente la piedinatura  con nomi e funzioni di  ogni singolo pin       inoltre riportata la mappa dei caratteri  visualizzabili  che si basa su un codice ASCII  rivisto per contenere numeri  lettere e simboli  in diverse lingue    La corrispondenza tra pin e funzioni    riporta   ta nella Tabella 3    Per la retroilluminazione potete fare rife   rimento alle indicazioni precedenti  Per il  cablaggio dovete fare riferimento allo schema  elettrico illustrato nella Fig  2    In ogni caso    necessario effettuare i seguen   ti collegamenti tra la scheda Arduino e il  display LCD    e LCD RS   pin digitale 12     Tabella 3     Pin Funzione      1 BL  Terminale di alimentazione LED      2 BL Terminale di alimentazione LED      3 GND Alimentazione  OV    4 VDD Alimentazione  5V    5 VO Drive LCD   6 RS Alto  ing
112. ente massima di 2  ampere ciascuno  Alimentata direttamente  dalla linea Vin di Arduino Duemilanove o  Seeeduino  ogni uscita dispone di un LED    112 Luglio 2010   ELETTRONICA IN Ai       Fig  1   Schema della  Danger Shield     e e o o o o oo ooo    e o    e 0 s    e e o o e 0    e e 0 e e e    e e o e e e    e e 0 e e 0    e       o e       e e       0   0    e    0    e       0   0          0    e    0    e          0       0   0    e    0             e e       0   0   o e o 0   o e    0    e    e    e          0    e o 0    e e    e 0   0    e o o o    o    e e o    e e o e o 0 o e 0 o e 0_      blu e uno giallo per indicare la direzione di  rotazione del motore  Tutte le linee di usci   ta del chip L298 sono protette da un diodo   Ethernet Shield     un dispositivo basato sul  chip ethernet Wiznet W5100  che permette  di connettere una scheda Arduino ad una  LAN utilizzando la libreria Ethernet libra   ry  Ardui no Ethernet Shield supporta fino  a quattro connessioni socket simultanee   Wiznet Shield  si tratta di un modulo ba   sato sul chip W5100 e dotato di connettore  ethernet completo di filtri magnetici e 2  LED per la segnalazione di stato  Supporta  i protocolli hardware Ethernet  DLC  MAC  e internet  TCP  IP Ver 4  UDP  ICMP  ARP  PPPoE  IGMP  Funziona in modalit   sia  full duplex che half duplex  Questo modu   lo    la scelta ideale per gli utenti che deside   rano dotare i loro dispositivi di connessione  Internet    GPS Shield  permette di dotare la scheda
113. ento  http     processing org download   Appena scompattato   il software    subito pronto e non necessita di  installazione  proprio come l   IDE di Ardui   no  Affinch   Processing possa dialogare con  Arduino     necessario installare l apposita  libreria che troverete qui  http   www arduino   cc playground uploads Interfacing processing   arduino 0017 zip  Esiste anche una sezione del  sito di Arduino dedicata a Processing  rintrac   ciabile dalla pagina web http   www arduino cc   playground Interfacing Processing    Esistono diverse versioni di questa libreria  ad  esempio  una meno recente si trova in un file  chiamato processing arduino2 zip  ma consiglia   mo di utilizzare sempre la libreria pi   recente   Scompattate i file scaricati e copiate la cartella  Arduino all   interno della cartella libraries di  Processing  l aggancio alla libreria avviene al  primo avvio del programma    All   interno dei file della libreria trovate anche  alcuni esempi di sketch per Processing  con  alcuni controlli per Arduino  ad esempio  ar   duino_output pde  Fig  2  disponibile in proces   sing libraries arduino example  che permette di  comandare le uscite di Arduino    Con la scheda Arduino connessa alla USB   caricate questo sketch su Processing e verifica   te la riga arduino   new Arduino this  Arduino   list   0   57600   Assicuratevi che la velocit     di comunicazione sia impostata su 57600   ricordate che occorre impostare la porta di  comunicazione settando l indice del 
114. eriali nello standard    PAN IP  192 168 501 _           Annulla         eI  OS109          O           IVT Corporation BlueSoleil   Finestra principale il  File Visualizza Bluetooth Servizi Strumenti Guida    O     5  y  S   lt   O  W       O  O       Servizio FAX Bluetooth La connessione esiste   PAN IP  192 168501 _     Fig 10   Connessione stabilita        Connessione automatica stabilita  Connettere  automaticamente a questa penferica quando le  applicazioni Windows aprono la porta senale   Poita seriale  COM22   Periferica remota  seeedstudio    Mostra sempre questa finestra di dialogo        Fig 11   Porta COM virtuale utilizzata dalla connessione     specificato nei data sheet  Il comando     r   n STWMOD 0 r n  imposta il modulo come  Slave  sar   l adattatore Bluetooth sul PC a  svolgere la funzione di Master    Il comando     r n STNA Arduino r n   assegna al modulo il nome    Arduino     infine   il comando     r n INO 1 r n  abilita la visi   bilit   del modulo da parte del Master    Tutte queste fasi sono chiaramente indicate  dallo stato di lampeggio dei LED  Quando il  LED verde lampeggia due volte al secondo   significa che il modulo non    connesso  ci   ac   cade  ad esempio  quando alimentate quest   ul   timo senza prima averlo configurato    Quando si abilita la visibilit   del modulo  lam   peggiano una volta al secondo i LED sia verde  che rosso  mentre una volta che viene stabi   lita una connessione  lampeggia il solo LED  verde   sempre con la caden
115. eriferiche sono compatibili con le normative vigenti in  contemporaneamente ed il raggio di portata paesi come U S A   Canada  Australia  Israele  che consente    piuttosto limitato  e negli stati dell Europa  Ciascun modulo      Il Wi Fi ha il vantaggio di una portata mag  formato da un transceiver a radiofrequenza  giore  tanto che con apparati ed antenne spe  ed un microcontrollore  con firmware aggior     nabile  che gestisce  oltre alla comunicazione  radio  anche una serie di linee di I O sia digi     XBee PRO tali che analogiche  con funzioni di interrupt e    Tabella 2   Caratteristiche tecniche dei moduli Xbee serie 1     Parametro XBee       SEG  IAS E sleep  Ci   permette di connettere direttamente  Potenza in trasmissione   1mW 63 mW al modulo sensori o contatti e di farlo lavorare  Sensibilit   ricezione  92 dB  100 dB    sul campo in modalit   stand alone  senza la  aio usa en necessit   di interfacciarlo con altri elementi  AE A KOLONA esterni se non una batteria di alimentazione   Consumo RX 50 mA RX 55 mA Tutte le funzioni che dovr   svolgere saranno  A i a programmate dall utente secondo le esigenze   Velocit   di trasferi RF  250K 250 k   DE O  SS ASI SNO DELE DS Di questa prima serie esiste anche la versio   Velocit   trasferimento UART   1 2 115 kBaud 1 2 115 kBaud    ne PRO  che pur mantenendo le medesime  Estensioni Linee di A D e digitali   Linee di A D e digitali der   a 7  ERE PRA caratteristiche e la stessa piedinatura  cambia  Periferiche indirizza
116. erso alcuni moduli  Impostando  MY 0xFFFF si disabilita la ricezione con  indirizzo a 16 bit    e RANGE    compreso tra 0 e OXFFFE    e PL    usato per impostare la potenza di tra     pIy OS109    z  5  O       Adattatore  USB Xbee versione Dongle     Adattatore bo    R     smI  ssione  a otenze inferiori COTTIS ondono  RS232 XBee  P P    anche consumi inferiori        148 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A       O  z  3  Ke   de   lt   O  W       O  O         BD  imposta il baud rate  per la comunicazione  seriale     importante  conoscere sempre il  valore impostato sul  modulo  altrimenti non  sar   possibile accedervi  n   per leggere la con   figurazione n   per set   tarla  Per impostazione  predefinita  sia i modu   li che X CTU sono im   postati su 9 600 baud   questa    anche l impostazione da utilizzare  su Arduino per la comunicazione con XBee     I moduli della serie 1 sono gi   settati per la co   municazione in transparent mode  operante in  una tipologia di rete peer to peer in cui ogni  modulo    utilizzato come End Device  Possia   mo quindi utilizzare due moduli XBee  serie  1  per sostituire un collegamento cablato  RS232 tra due dispositivi  transparent mode   senza la necessit   di programmarli   Utilizziamo quindi un secondo modulo XBee  serie 1  XBP24  che potrebbe essere inserito su  un secondo adattatore ed interfacciato ad un  secondo PC  oppure  come faremo noi  utiliz   zare il modulo XBee con una scheda Arduino  in modo da realizzare 
117. es   sione e di verificare se i pacchetti sono stati  ricevuti correttamente dal ricevente    Nel protocollo UDP  User Datagram Proto   col   a differenza del TCP  non viene aperta potrete lasciare col       una comunicazione  ma semplicemente    legato sia il cavo di  previsto l invio di dati verso una determinata rete che quello USB    ve che vorrete fare     152 Maggio 2011   ELETTRONICA IN A       O     5  Ke   Sea   lt   O  W  R   O  O    usato per la programmazione  infatti Arduino  dialoga con lo Shield Ethernet tramite la porta  SPI  lasciando libero UART    Particolare attenzione deve essere prestata  alla configurazione della vostra rete domesti   ca  giusto per esservi di aiuto  vi diciamo che  sul PC principale da noi usato per program   mare Arduino    installato il sistema opera   tivo Vista e che i parametri della rete sono  IP 192 168 0 199 e SubNetMask 255 255 255 0   mentre Gateway e Server DNS non sono  specificati  Queste impostazioni sono gestibili  accedendo a  Start gt Impostazioni gt Pannello   di controllo gt Centro di connessione di rete e  condivisione gt Gestisci connessioni di rete    Il PC e Arduino  Ethernet Shield  sono con   nessi ad un router D Link con impostazioni  da fabbrica  Come IDE di sviluppo facciamo  riferimento alla versione 0021  se usate versio   ni pi   vecchie  alcune funzioni  specificamente  sulle stringhe  non saranno implementabili   Come primo semplice esempio utilizzeremo il  nostro Ethernet Shield per realizzare un Web  
118. esso sono sufficienti 512 byte di memoria  al posto dei 2 kb della precedente versione   inoltre  il nuovo bootloader pu   gestire la  velocit   di comunicazione sino a 115 kbps   contro i 57 6 k della precedente versione   Tutta la documentazione sia hardware che  software  compresi i sorgenti     disponibile  per il download sul sito di Arduino    Arduino UNO    predisposta per comunicare  in seriale con il PC semplicemente avviando   il tools    Serial monitor    sull ambiente di svi   luppo  in questo modo un dato acquisito dalla  scheda pu   essere facilmente visualizzato a  video    Il microcontrollore ATmega8U2 usato come  convertitore USB Seriale pu   essere facilmen   te programmato in quanto  al suo interno      gi   precaricato il bootloader  In questo caso      possibile utilizzare le apposite piazzole di  programmazione dopo aver attivato la mo   dalit   di programmazione saldando il piccolo  jumper disponibile sul retro della scheda  Il  software necessario per lo sviluppo dei pro     A ELETTRONICA IN   Marzo 2011 158       atmega8u2    MADE    ARDUINO    LI poro doonad    bolso       Fig 5   Posizione del microcontrollore 8U2 sulla scheda  Arduino UNO     Cortocircuitare questo ponticello per abilitare  il bootloader ii       MIANIIABIPIBIDIBIEIEINIE NAIMIE EEr iminine    ARDUINO       STA    mrrrcioeizeninezimimicini ici       Certificazioni    ROHS COMPLIANT  ZERO CARDOH FOOTPRINT  IMPATTO ZEROS    Fig 6   Jumper per attivare modalit   aggiornamento  firmware
119. esta modalit       chiamata anche Transparent Mode e in essa  due dispositivi sono utilizzati come radiomo   dem  comportandosi a tutti gli effetti come   un normale cavo seriale  quello che si manda  all   RX di un modulo arriva direttamente al TX  dell altro  senza dover programmare o settare  nulla  tranne il baud rate per la comunicazio   ne   la packetizzazione dei dati e l aggiunta   di un checksum  per il controllo degli errori     Confronto con i moduli  a 433 868 MHz    Un altra grande famiglia di moduli radio  disponibili sul  mercato ed usati da molti appassionati per applicazio   ni wireless con i microcontrollori  utilizza la frequenza  di trasmissione di 433 oppure 868 MHz  Rispetto agli  XBee  questi offrono alcuni vantaggi tra i quali la tensio   ne di alimentazione a 5 volt  direttamente compatibile  con i microcontrollori  il costo leggermente inferiore ed  una piedinatura a passo 2 54 mm standard  a differenza  dei moduli XBee che  per limitare lo spazio  utilizzano un  connettore a passo 2 mm    moduli XBee hanno per   al   cuni indubbi vantaggi  come ad esempio la bidirezionalit    di comunicazione  non sempre implementata sui moduli  economici a 433 o 868 MHz  Altro vantaggio    la possibili   t   di indirizzare i moduli XBee in modo univoco  in quanto  ogni modulo    gi   fornito di un numero seriale univoco   che permette a due moduli di dialogare solo tra di loro   ignorando i segnali di altri moduli nelle vicinanze  I moduli  XBee implementano al lor
120. esto caso  La richiesta consiste  nella ricerca del termine Arduino  mentre la  risposta visualizzata tramite SerialMonitor  sar   il risultato della ricerca    Un altro interessantissimo esempio si chiama  UdpNtpClient e prevede  sempre tramite  accesso ad internet  di interrogare un Server  Ntp per rilevare l ora internazionale sempre  precisa  Infatti i server Ntp  Network Time  Protocol  dispongono di informazioni orarie  messe a disposizione degli utenti e facilmente  accessibili tramite l invio di richieste in proto   collo UDP    L ora corrente viene letta dall   applicazione   e successivamente resa disponibile tramite  SerialMonitor di Arduino    Esiste un   altra possibilit   per rendere disponi   bili i dati acquisiti da Arduino verso Internet   ovvero trasferire i dati ad un server di dati   come ad esempio il server Pachube  acces   sibile dall indirizzo web www pachube com    in questo caso Arduino dialogher   solo con  detto server  mentre gli utenti che vorranno  vedere i dati accederanno al sito www pachube   com  il quale  oltre a rendere disponibili i dati   fornir   una visualizzazione in formato grafico                UDP Test    LocalHostName  Acer M3630 LocaliP  192 168 0 199 LocalPort  0  RemoteHostName  192 168 0 77 RemotelP  RemotePort  8888           Da Inviare   Riceived 12 Bytes acknowledged          Fig 6  Applicazione del protocollo UDP in Visual Basic     ed informazioni di geolocalizzazione    Per quanto riguarda lo sviluppo del firmware   Ard
121. fabbricazione di semiconduttori  obietti   vo del quale    stato creare un protocollo molto  versatile a larga diffusione in grado di funzio   nare in strutture di reti multiple  caratterizzate  da un basso consumo e adatte ad essere ali   mentate a batteria per lunghi periodi     il caso  di telemetria  sistemi di allarme  domotica   rilevatori di fumo ecc  Il protocollo ZigBee     stato studiato per poter implementare diverse  tipologie di reti  statiche  dinamiche  a stella   e mesh  con la possibilit   di arrivare sino a  65 000 nodi e garantendo l assenza di collisio   ni ed un controllo degli errori molto avanzato           Tabella 1   Confronto tra gli standard di comunicazione  O      Portata in metri 1   100 1  100 1  10     Durata batteria 100   1000 05 5 T O   Numero di nodi nella rete 65 000 32 7 O  Applicazioni Monitoraggio  controllo  telemetria   Web  Email  Video In sostituzione di cablaggio D   Stack Size  KB  4  32 1 000 250     Velocit   di trasmissione  kb s  20   250 11 000 720 z   fi   Fig 1   Confronto tra i vari standard di comunicazione  cifiche si arriva sino a qualche chilometro  ha           una velocit   di trasferimento notevole  miglio  e   PR rata con gli ultimi standard  che gli permette    l invio di immagini in streaming e consente   la creazione di reti anche complesse sia tra  periferiche  sia fra PC  Tuttavia gli alti costi  dell hardware e l elevato consumo di corrente  non lo rendono idoneo in applicazioni a basso  costo con alimentazio
122. forniti dalla FTDI   disponibili con il software Arduino  provve   dono a creare una porta COM virtuale utiliz     148 Maggio Giugno 2010   ELETTRONICA IN Ai       zabile dal software presente sul computer  Il  software Arduino include un monitor seriale  che permette di spedire o ricevere dalla sche   da Arduino semplici dati di testo    Una libreria SoftwareSerial permette la comu   nicazione seriale su qualunque dei piedini di   gitali della Duemilanove  Il microcontrollore  ATmega328 supporta anche la comunicazione  PC  TWD e la SPI  Il software Arduino include  una libreria Wire per semplificare l   uso del  bus PC  la documentazione del caso si trova  sul sito Wiring  che potete consultare per  dettagli  Per sapere come utilizzare la comuni   cazione SPI communication  consultate i dati  tecnici della ATmega328     Programmazione   Il microcontrollore ATmega328 della scheda  Arduino Duemilanove ha gi   un bootloader  pre caricato  che permette di caricare nuovo  codice senza la necessit   di uno specifico  programmatore esterno  comunica utiliz   zando il protocollo originale STK500  Si pu     naturalmente  evitare l utilizzo del bootloader  e programmare la ATmega328 attraverso il  connettore ICSP  In Circuit Serial Program   ming      Inizializzazione automatica  Software    Il microcontrollore pu   essere resettato sia   a livello hardware con l apposito pulsante  sulla scheda  sia via software al caricamento  di un programma  Una delle linee di control   lo del flus
123. hield  Questo semplicissimo sketch vi per  e E    mette di verificare il corretto interfacciamento   tramite l   integrato SC16IS750  tra Arduino e il  modulo WiFly ed abilita la programmazione  manuale del modulo RN 131G        Aprite Serial Monitor ed attendete la connes  del firmware del modulo  avrete  cos    la cer   sione al convertitore SPI UART  se tutto    tezza che tutto funziona correttamente   andato bene otterrete una risposta positiva  La segnalazione dei tre LED dello shield vi   in caso contrario verificate la versione del permetter   di capire rapidamente lo stato di  vostro shield e modificate di conseguenza il funzionamento  la Tabella 1 riepiloga le varie  file configuration h  A questo punto inviate tre condizioni segnalate    caratteri dollaro           in modo da portare il Per proseguire sar   ora necessario disporre  modulo WiFly in modalit   di comando  esso di una rete alla quale associarsi  nel nostro  deve rispondere con la stringa CMD  caso abbiamo utilizzato un router Wi Fi    A questo punto  in serial monitor  passate dal  della Dlink  al quale    connesso il PC con  la modalit   no line ending alla modalit   carriage cui programmiamo Arduino  La piccola rete    return  in quanto i prossimi comandi devono domestica    cos   configurata  indirizzo IP del  terminare con un fine linea  Inviate il comando PC  192 168 0 199  indirizzo IP del router     ver    ed otterrete come risposta la versione 192 168 0 1     A ELETTRONICA IN   Luglio   Agosto 2
124. i   posizioni rilevate da ricevitori GPS ed altro   Una SD Card pu   essere facilmente gestita   lettura e scrittura  da qualsiasi PC tramite un  economicissimo lettore  che nei computer pi    recenti    gi   integrato    In questa puntata del corso vi insegneremo ad       Tabella 1   Caratteristiche delle schede di memoria     MMC    30 x 23 x 1 4 mm    RS MMC 18 x 24 x 1 4 mm FAT16 2 MB s 512 MB  MMC mobile 14 x 11x 1 1mm  SD 32 x 24 x 2 1 mm  DR FAT16  Mini SD 21 5 x 20 x 1 4 mm FAT32 2 MB s 2 GB  Micro SD  Trans Flash Card  LLX 1S X L mnn  SDHC 32 x 24 x 2 1 mm Classe 2   2 MB s     Classe 4   4 MB s  Mini SDHC Zito KZ OKEE FAT32 Classe 6   6 MB s 32 GB  11x15x1mm Classe 10   10 MB s  SDXC 32 x 24 x 2 1 mm FAT64 100 MB s 2 TB       utilizzare le SD Card con Arduino  ma prima  di scendere nel dettaglio riteniamo sia dovero   so spiegare qualcosa in pi   su questo genere  di memorie    La Multi Media Card  MMC  ha rappresenta   to uno dei primi standard di Memory Card   ha la stessa forma e la medesima piedinatura  delle Secure Digital  SD   nate successiva   mente  con le quali    compatibile  Le SD Card  incorporano un microswitch che offre una  protezione hardware contro la scrittura  ma  ha portato lo spessore fino a 2 1 mm  quin    di le schede MMC possono lavorare senza  problemi in un socket per SD  mentre una SD  non pu   entrare in un socket per MMC  Esiste  anche una versione di MMC di dimensioni  ridotte  chiamata RS MMC  Reduced Size Mul   tiMedia Card   del tut
125. i   rizzo di destinazione ecc     API mode    Questa modalit      la pi   evoluta  oltre a poter  configurare tutti i parametri di un modulo  con i comandi AT  senza entrare in Command  Mode     possibile gestire le comunicazioni con    Fig 17  Adattatore  XBee logi   ca 5V     DOUT RSSI    Fig 18   Adattatore   XBee logica 5V   con modulo XBee inserito        gli altri moduli  ma anche ricevere notifi    ca sui nodi associati  dissociati o resettati   richiedendo informazioni sugli indirizzi dei  nodi della rete  oppure ricevere informazioni  sullo stato di una trasmissione  buon esito   ed identificare l indirizzo sorgente di una  ricezione  In API Command Mode il modulo  pu   essere configurato con maggiori possibi   lit   di interazione con la rete e programmato  per un funzionamento stand alone  compresa  la gestione delle linee di I O e ADC  senza  alcun supporto esterno  Ad esempio    pos   sibile configurare un pin analogico affinch    acquisisca ad intervalli regolari il segnale   da un sensore ed invii i dati via radio  Con i  comandi API    possibile configurare i mo   duli direttamente dall   applicazione Host  il  microcontrollore  nel nostro caso      USO PRATICO   Come avrete intuito  i moduli XBee sono com   pleti e progettati per essere utilizzati in reti di  una certa complessit    il cui studio non sar    trattato in questa sede  Per le nostre appli   cazioni    sufficiente che un microcontrollore  possa dialogare con un altro o con un PC in  una piccola re
126. i che lo com   pongono  una cartella chiamata Data in cui  viene inserito il materiale multimediale utile  all applicazione  quali  ad esempio  immagini   font e file audio  Ogni applicazione creata pu    inoltre essere esportata come Java applet    Le funzionalit   di processing possono essere  espanse tramite delle librerie aggiuntive  spes   so create da terze parti  ottenendo un ambien   te di sviluppo molto poliedrico  Ad esempio      possibile utilizzare in Processing protocolli  di comunicazione Seriale  TCP IP  UDP  RDP   OSC  riuscendo in questo modo a gestire una  moltitudine di applicazione hardware esterne   Grazie alla libreria specifica Arduino  l   in           Me i api DI  Pda  Bit     fori Tool Hai    00 BEDS      ariana capi      inerti pose es  M    I  Leg CE es Br di  F  ir dae  M     inc af    Lace  i  His LLILIJ  JET di   i  ii  Gad  Lio     inaj j sii   f bpi  LO  a  LO  cda LOI  dda LI  Epia  LOT  bpian  LOT  dia LA  O  Aida LE     Lidi OT  dae LIT  di I i LO  loda LI      i eli     eee Ce  SEI      prior Lee Ae dia  Lio Ar  aci   pe dada  Air  Redi   ie EDO ARI    e fin i    dp id Kip ji    Fig  2    HUullPoimeexception    148 Novembre 2010   ELETTRONICA IN Ei           tegrazione tra il mondo software e quello  hardware non    mai stata cos   facile  basti  pensare che l   ambiente di sviluppo Software  di Arduino    derivato proprio da Processing   con il quale condivide sia la struttura che il  linguaggio di programmazione  In questo arti   colo no
127. i della Duemi   lanove pu   essere utilizzato sia come ingres   so che come uscita  utilizzando le funzioni  pinMode    digitalWrite    e digitalRead   ed  operando a 5 volt  Ogni piedino gestisce al  massimo 40 mA ed ha una resistenza di pull   up  disconnessa di default  da 20 50 kohm   Inoltre  alcuni piedini hanno delle funzioni  specializzate che descriviamo di seguito    e Serial  0  RX  e 1  TX   Utilizzati per rice   vere  RX  e trasmettere  TX  in TTL dati  seriali  Questi piedini sono connessi ai  corrispondenti piedini del chip seriale FTDI  USB to TTL    e Interruttori esterni  2 e 3  Questi piedini  possono essere configurati come ingressi  digitali    e PWM  3  5  6 9  10  e 11  Fornisce un uscita  a 8 bit PWM con la funzione analogWrite      e SPE 10  SS   11  MOSI    12  MISO   13   SCK   Questi piedini supportano la comu   nicazione SPI  che  sebbene implementata a  livello hardware  non    al momento inclusa  nel linguaggio Arduino    e LED  13  Connesso al piedino digitale 13    A ELETTRONICA IN   Maggio   Giugno 2010 147    QPNW  AD       Microprocessore ATmega328    Tensione operativa 5V    Tensione di alimentazione  raccomandata    7 12 V  Tensione di alimentazione  limite  6 20 V    14  di cui 6 utilizzati come output    Piedini digitali I O PWM     Piedini di ingresso analogici 6  corrente DC per i piedini di I O 40 MA  corrente DC per il piedino a 3 3V 50 mA    16 kB  di cui 2 kB utilizzati dal  bootloader     SRAM 1 kB  EEPROM 512 byte    Clock 16 MH
128. iamo il codice relativo al  secondo esempio e ne descriviamo il funzio   namento  allo scopo di comprendere meglio       116 Ottobre 2010   ELETTRONICA IN A    istruzioni chiave sono quelle che  definiscono un oggetto di tipo  servo myservo Servo che succes   sivamente sar   associato ad uno  specifico pin myservo attach 9    Fatto questo  per impostare la  posizione del servo    sufficiente  utilizzare il comando myservo   write pos  con il parametro pos  che pu   valere tra 0 e 180  corri   spondenti ad una rotazione tra 0    e 180       Possiamo ora realizzare uno  sketch che ci permetta di impo   stare la posizione di un servo  direttamente da PC  inviando la  posizione tramite il tool Serial   Monitor    Il programma per questa funzio   ne    descritto dal Listato 2    Il listato  peraltro molto semplice  prevede di  inizializzare un servo    myservo    ed associarlo  al pin 9  viene quindi abilitata la comunicazio   ne seriale con il comando Serial begin 9600    La riga di codice char ch   Serial read   permet   te di attendere l   arrivo di un carattere e di sal   varlo nella variabile ch che successivamente   con l istruzione case  viene usata per eseguire  le istruzioni di associazione servo     a      disso   ciazione servo     d     oppure posizionamento  del servo  numeri da    0    a    9        Per provare questo programma lasciate il ser   vo connesso al pin 9 ed avviate Serial monitor  dal menu Tools  assicuratevi di aver impostato       eI  OS109       5  O  
129. ica    a 5 volt  I jumper permettono di configurare  l utilizzo della XBee Shield con il microproces   sore Atmel oppure con la linea USB           Fig 29   Lettura parametri di default modulo XBee  Con i jumper in XBee mode la linea  U X CTU  COM30           DOUT di XBee    collegata al pin RX del     emete Configuration microcontrollore  a sua volta connessa  in  PC Settings   Range Test  Terminal Modem Configuration   i i i  pia Paramar and Finviase      Parameler View  r Profie     Versione modo fisso  con la linea TX del chip FDTI     Read   Wite   Restore     _Ctear Screen      _Save   La linea DIN di XBee    connessa alla linea  Show Defaults Loa enon      I Always update fimware    Show Defauts     _Losd     TX del microcontrollore  che a sua volta     Modam   BEE Function Set Version    a 5   KBP24     XBEE PRO 802 154     ios    collegata  in modo fisso  alla linea RX del  MS set Eee   chip FDTI  In questa modalit   l   invio di dati     nume   z 6         3332  10   PAN 1D da parte del microcontrollore avviene sia  D IU DH   Destination Address High   e O    Di  COL   DesinaionAdchess Low    tramite il modulo XBee  sia tramite la USB  Il    a MY wi Gn  microcontrollore    abilitato a ricevere dati solo  24 200  SH   Serial Number Hi   j       40628338  SL   Serial Number Low dal modulo XBee e non tramite la USB  Un  MM   MAC M o o    inis    A oa AA eventuale dato in arrivo dalla USB e indiriz     De pun Deo zato al microcontrollore sarebbe in conflitto  Yi   Rode 
130. ico     uno    di 3 3 V  mentre i segnali in uscita dal  microcontrollore  5 V  dovranno essere ridotti  al livello di 3 3 V  Per fare questo esistono due  soluzioni  utilizzare un partitore di tensione   in modo che i 5 V vengano ridotti a 3 3 volt   oppure usare dei traslatori di livello 5   3 3 V  come gli integrati 74HC4050N  74AHC125N   74LCX245  La differenza risiede nel fatto che    Tabella 4   Collegamento tra la SD Card e Arduino     Pin morsettiera  Arduino    CS SS   DI MOSI  Serial Data  OUT    GND    TSS V  13 Clock  GND GND  12 MISO  Serial Data IN   Non usato       savannen E    Non usato       Ei  ELETTRONICA IN   Febbraio 2011 149       un partitore resistivo  pur essendo semplice  ed economico  a causa delle capacit   parassite  non potr   gestire segnali ad elevata frequen   za  mentre utilizzando un circuito elettronico  traslatore  pure pi   costoso  consentir   di rag   giungere velocit   di comunicazione maggiori   L interfacciamento tra una SD Card ed un  microcontrollore avviene tramite il bus seriale  in SPI Mode  sfruttando essenzialmente due  linee dati ed una linea di clock  oltre ad una  linea per il Chip Select        Fig 5  La SD Card  Shield V2 1     ARDUINO E LE SD CARD   Bene  dopo questo    tutorial    sulle schede di  memoria SD possiamo passare al nocciolo  della questione  ossia a come usare le SD con i  moduli Arduino    Per facilitare l utilizzo delle SD Card con  Arduino  in commercio sono reperibili diverse  Shield con alloggiamento 
131. iera fissa le  connessioni delle linee TX ed RX del modulo   alle linee TX ed RX della scheda Arduino  le  quali  sono anche utilizzate dal convertitore  USB Seriale per l   interfacciamento alla porta  USB  Questo vincolo non consente di gestire  in contemporanea la comunicazione da parte  del microcontrollore sia con il modulo GPS  che con la porta USB  per i particolari  si veda  la sesta puntata del corso  relativa ai moduli  XBee    Per la lettura dei dati in arrivo dal modulo  GPS    possibile usare la libreria standard     Seriale    impostata per un Baud Rate di 9 600  Baud  mentre la decodifica della sentenza  pu   avvenire con la libreria precedentemente  descritta  E    Un approccio integrato alla  progettazione di circuiti    IRS IRA    154 Aprile 2011   ELETTRONICA IN Ei        El SULTE Tare Sti fan Fitalia    w ETIS 1566 into Pira             eI vAe   eLo     ouin       dell ing   MIRCO  SEGATELLO    1no    Conosciamo e impariamo ad utilizzare  Ethernet Shield  uno strumento che  permetter   di affacciare Arduino su una    rete o sul mondo di Internet  Decima    puntata     roseguiamo spediti con il nostro corso   sul mondo Arduino e questa volta ci   occupiamo di sviluppare degli sketch  orientati al web  tramite l utilizzo dello  Shield Ethernet  Abbinare i termini Arduino  e web significa poter accedere ad un mondo  di applicazioni davvero sorprendenti e di  interessantissima utilit    In questo articolo vi  dimostreremo come l elettronica e l   informati   c
132. ilazione automatica  il trasferimento  ed anche il reset e quindi  in circa 4 secondi  il  vostro programma sar   gi   operativo all inter   no della Arduino    Analizziamo il software riga per riga  almeno  per questo primo esempio  racchiusi tra    e     trovate dei commenti che riportano il nome  del programma  la funzione svolta e in quale  hardware pu   funzionare    Ulteriori commenti su di una riga possono  essere scritti iniziandola con        Nella prima riga    int ledPin   6    si dichiara  una variabile denominata ledPin e associata al  pin 6    La riga di codice racchiusa nella struttura     Void Setup      specifica che la variabile  ledPin associata al pin 6    utilizzata come  uscita  All   interno di questa struttura andre   mo sempre a specificare la funzione associata  per ogni pin utilizzato    La seconda ed ultima struttura di dati si  chiama    Void loop      e rappresenta semplice   mente un loop infinito  ovvero le istruzioni al  suo interno vengono eseguite in successione  partendo dalla prima dopo la parentesi graffa  aperta         sino alla fine della struttura deli   mitata dalla parentesi graffa chiusa          per  poi essere rieseguite nuovamente all infinito   Come vedete  quindi  l impostazione di un  programma risulta assai agevole e semplice     USARE I PULSANTI  SKETCH DANGER_02     L unit   Danger Shield dispone di tre pul   santi  come primo esempio faremo in modo    ELETTRONICA Il       eI  OS109    che premendo Button_1 si accenda il L
133. ile inserendovi il testo rice   vuto dalla seriale    e R legge il contenuto del file o lo invia alla  seriale     Bai Lil DE Sorta    fia giace  pra     e    fiala tescil      ibi sa LB    ibi sla lA     fa rin yami    LEE Fig 16   File hola txt dopo preimpostare il testo al suo interno     bris  Tra        iaia sarem    Lib  CER E       Fig 15   Scrittura sul file    hola txt     l  iLE    l operazione di Write     dalp coensnn    TT    Pisa  r     ia ela a     fai    Fota omoia    seconda scrittura     154 Febbraio 2011   ELETTRONICA IN          Sample analogRead 0       esuli   D printi hola ea  0A  result   SsD printlni hola  txt     Arn     e    Serial print    ANO         serial  primtim 6 anple      Report su serial monitor  break     ececscosocscocsoooocoosososoooooososoooooooosoooososoooooooososoosoooosoososoooooooososooso    e A aggiunge al file il testo ricevuto dalla  seriale     Considerando che uno dei principali utilizzi  delle SD Card nei circuiti elettronici    il salva   taggio di dati nei data logger  vi proponiamo  anche un estensione dello sketch di esempio   aggiungendo il comando    S     Con questo  comando viene acquisito il valore dal pin  analogico 0 e salvato sulla SD Card  Il nuovo  sketch si chiama SD_01 pde ed    disponibile  assieme a tutti i file dell articolo  Nel Listato 1  riportiamo la parte di programma attinente al  nuovo comando    Oltre alla riga di acquisizione dall ingresso  analogico  viene usata la funzione ITOA per  convertire il
134. in uscita    composta da  semplici caratteri ASCII codificati nella sen   tenza NMEA e contiene  oltre alla longitudine  e latitudine del ricevitore anche l altezza sul  mare  la data e l   ora e le indicazioni dei satel   liti agganciati  Oggigiorno il mercato fornisce  svariati modelli di GPS facilmente utilizzabili  nelle nostre applicazioni hobbystiche  a prezzi  sempre pi   ridotti   Per un acquisto consapevole ci sono alcuni  parametri da tenere in considerazione  la  dimensione  ad esempio     un parametro  importante soprattutto in apparecchiature che  devono limitare gli ingombri  in questo rientra  anche il discorso dell   antenna ricevente  che  pu   essere integrata oppure esterna  Un altro  parametro importante    il numero di letture  che    in grado di fornire in un secondo  quasi  tutti i modelli commerciali a basso costo for   niscono una lettura al secondo  mentre i pi    evoluti arrivano anche a 10 letture al secondo   L alimentazione    un altro parametro di  estrema importanza  di solito i  ricevitori sono apparati  progettati per funzio   nare in apparecchiature  portatili e quindi pensa   ti per essere alimentati a    Fig  1  Aspetto del ricevitore  GPS EM406A        liGND   2  VIN n  SA   I  RX f  ri 32       GND   i  6   FFS    148 Aprile 2011   ELETTRONICA IN Ei        della tecnologia    Il numero dei canali gestibili    un altro pa   rametro di solito sbandierato dai produttori   ma spesso una quantit   inferiore di satelliti  ben agganciati ed ela
135. ino                     Analcg In O      gt    u  y E   a a WS en  Gia       122 Luglio 2010   ELETTRONICA IN Ei     poter realizzare una misura ben fatta  Ipo   tizzando una temperatura massima di circa  40   C  raggiungibile scaldando con le mani   il sensore  possiamo anche stimare il massi   mo valore numerico fornito dal convertitore  ADC 1 023  0 4 5  82  In virt   di ci    pos   siamo quindi tarare la lettura affinch   con il  valore di 40   C sul display venga visualizzato  il massimo valore  cio   9     USO DEL SENSORE DI COLPI    SKETCH DANGER_09    Il sensore di colpi    lo stesso buzzer usato   per generare le note acustiche  sollecitato  meccanicamente  la capsula piezoelettrica   che si trova al suo interno genera una picco   la tensione che pu   essere rilevata tramite  l ingresso analogico del microcontrollore   Possiamo quindi realizzare un semplice pro   gramma che possa captare i colpi sul sensore  per accendere momentaneamente un LED    lo trovate nel Listato 6  Chi non disponesse  della Danger Shield potr   comunque ripetere  tutte le esperienze qui presentate  a patto di  connettere alla MainBoard Arduino le giuste  periferiche  Cos    ad esempio  se volessimo  collegare un pulsante sull ingresso digitale 2  dovremmo fare come descritto nelle figure 2 e  3  visibili in queste pagine  Si tratta di connet   tere gli stessi componenti usati della Danger  Shied  ma direttamente alla mainboard  in  questo caso ci siamo aiutati con una breadbo   ard esterna pe
136. interno ha il baud rate pro   grammabile e la gestione del transito dati     asservita ad un sistema di crittografia  l ali   mentazione    a 3 3 volt e dispone di un   anten   na integrata nel PCB    Il modulo UART interno    configurato  per  impostazione predefinita  per una comuni   cazione a 38 400 baud con 8 bit di dati  1 bit   di stop  nessuna parit    nessun controllo di  flusso  sono comunque supportate le seguenti  velocit   di trasferimento  9 600  19 200  38 400   57 600  115 200  230 400  460 800    Sono disponibili le linee CTS e RTS per il  controllo del flusso dati e due LED  uno verde  e uno rosso  per la segnalazione dello stato di  funzionamento    Quando il modulo si trova nello stato    scon   nesso     si vedr   il solo LED verde lampeggia   re 2 volte al secondo  In attesa di collegamento  ci saranno sia il LED verde che il LED rosso   a lampeggiare una volta la secondo  mentre  nello stato    connesso    lampegger   il solo LED  verde una volta al secondo    Per impostazione predefinita  il modulo     predisposto alla connessione automatica con  l ultimo dispositivo non appena viene acceso   il codice di accesso    impostato a    0000     Per    e3  OS109       5  O       O     5  Ke   fe   lt   O  Y  fa  O  O          MASTER       ultimo dispositivo    si intende quello con cui  si    collegato prima di essere spento    Per i dettagli relativi alla funzione dei pin di  collegamento  vi rimandiamo alla lettura dei  data sheet del prodotto    Volendo r
137. ione  nato  principalmente per far comunicare tra loro  dispositivi multimediali e strumenti musicali  digitali   Il messaggio OSC  spedito dall   applicazione  touch OSC     composto da tre campi  il primo  dei quali contiene l indirizzo dell elemento  coinvolto nell invio del messaggio  pulsante   fader  ecc      Un secondo campo contiene  indicazioni su quali saranno gli argomenti  numerici successivi  integer  float  string    mentre il terzo campo contiene il dato  che nel  nostro caso    un solo valore numerico di tipo  float che riporta lo stato del pulsante  0 0 OFF  1 0 ON  oppure il valore del fader  0 0 curso   re in basso 1 0 cursore in alto    Nel protocollo OSC il messaggio deve essere  composto da gruppi di 4 byte  pertanto po   trebbe contenere anche dei caratteri NULL che  devono essere opportunamente separati dai  campi di importanza   Ad esempio  premendo il pulsante toggle1 il  messaggio inviato sar      A SL  2f    74 t    6f  0  67  g  67  g  6c 1    65  e  00 0  00   2c    66  f  00  00   00  3f     00 00    La prima stringa ricevuta     1 togglel    in   dica che    stato premuto il pulsante  segue il  campo relativo all argomento     f    ad indicare  che segue un unico dato di tipo float a 32 bit  I  seguenti caratteri essendo appunto un valo   re float a 32 bit non sono identificabili come  caratteri ma vanno invece analizzati come un  insieme di bit    Il passo successivo consiste nel creare uno  sketch che estrapoli  dal messaggio OSC   l indirizz
138. ione e  tracking    e precisione nella posizione di  2 metri    e precisione nel calcolo della velocit   di  0 1  m s    e avvio accelerato a segnali deboli per modu   li con funzione Kickstart    e supporto servizi AssistNow Online e As   sistNow Offline A GPS  compatibile OMA  SUPL    e elevata immunit   ai disturbi    e frequenza di aggiornamento della posizio   ne   4 Hz    e interfacce UART  USB  DDC e SPI    e alimentazione  2 7 V   3 6 V     Ei  ELETTRONICA IN   Aprile 2011 153       e assorbimento  44 mA   e dimensioni XBee compatibili     Questo modulo necessita di antenna esterna   come ad esempio la MINI ANTENNA GPS  15x15 mm con CONNETTORE U EL  disponi   bile presso la ditta Futura Elettronica  codice  Cod  8160 MINIANTGPS  le cui caratteristi   che sono    e alimentazione  3 3 V   5 mA    e V S W R   Rapporto Onde Stazionarie    lt 2    e guadagno  20 dB    e peso  Gia    e dimensioni  15 x 15 x 6 4 mm    e lunghezza cavo  90 mm     Questo modulo GPS Bee    facilmente interfac   ciabile con il PC utilizzando l apposito adat   tatore XBee USB  codice 7300 UARTSBV31  della Futura Elettronica   Grazie al software  U Center  scaricabile gratuitamente all   in   dirizzo http   www seeedstudio com depot     datasheet u center_5 07_Installer rar     possibile  visualizzare a video tutti i dati relativi a tem   po  velocit    latitudine e longitudine  ecc    Lo shield ArduinoXBee consente di inter   facciare velocemente il modulo alla scheda  Arduino  realizzando in man
139. ione semplifica   ta per solo SD Card  no SDHC  formattate in  FATTO  della libreria SDFATLIB    Il file  che si chiama fat1611b20100826 zip  si  scarica all indirizzo http   code google com p   fat16lib   Verificate  aprendo il file SdCard h  la  corretta impostazione delle linee di controllo      else   SPI pins      pins for other Arduinos   M Slao Select pin   uintg tconst SPL SS PIN  10    Master Oul Slace Tn pin    uint8_t const SPI MOSI PIN   11       Master In Slave Out pin       int8g tconst SPL MISO PIN  17   A Saral Clock     uinig    const SPL SCK PIN   13    endif    SPI pins    All   interno del file fat16lib20100826 zip trove   rete anche molta documentazione utile per i  collegamenti hardware    Come indicato nella documentazione      possibile  in caso di problemi  utilizzare il co   mando card init true  per inizializzare il BUS  a 4 MHZ invece di 8 MHz  come di default   per ottenere la compatibilit   con traslatore di  livelli a resistenze    Questa libreria gestisce SD Card in FAT16   non SDHC  con funzioni di lettura  scrittu   ra  creazione e cancellazione di file nella sola    156 Febbraio 2011   ELETTRONICA IN Ei        directory principale con nomi in formato 8 3   8 caratteri per il nome e 3 per l estensione       stata pensata per l   uso del BUS SPI ad alta  velocit   con traslatore di livelli a circuito inte   grato    tuttavia compatibile con la nostra SD  Card Shield  Per il suo utilizzo fate riferimen   to alla libreria SDFATLIB    AI fine di 
140. ister lime z  Bi  0  NO   Node Discover Options con la linea DOUT del modulo XBee  Usate  Di  0  CE   Coordinator Enable t d lit   ffi h   i    t Il di      FFE  SC   Scan Channels questa modalit   affinch   il microcontrollore di  Maia Arduino usi il modulo XBee per trasmettere e      0  A1  End Device Association i  i  0  A2  Coordinator Association ricevere dati   O  Al   Association Indication sla    7    Ladinia Con i jumper in USB mode la linea DOUT  Read parameters  OK dell   XBee    connessa alla RX dell   FDTI ed  alla TX del microcontrollore  mentre la linea    DIN dell   XBee    connessa alla TX dell   FDTI  CO RIN ER ed alla linea RX del microcontrollore  Il  Fig 30   Elenco opzioni del menu Function_Set di X CTU  microcontrollore della scheda Arduino pu    DE X CTU  COM30  a a  quindi comunicare normalmente con il PC    Remote Configuration tramite la USB  Usate questa modalit   per    PC Setinge   Range Test   Terminal   Modem Corfigsatcn   programmare via USB il microcontrollore   Modem Parameters and Firmware   Parameter View  gt  r Profile Versions    Wie   Restore     CieerScrsen      Save     Domnioad new Rimuovendo il micro  il PC pu   comunicare    ae Show Defaults     Load     _ versions    direttamente con il modulo XBee tramite la  Modem  XBEE Function Set Version USB  ma non disponendo delle linee RTS e  EL     XBEE PRO 802154 z   ios  gt   i i  5 Nonok i SEITE DTR il collegamento non sar   equivalente  3 T i na all utilizzo dell   adattatore USB XBee
141. ital eXtended  Capacity  o SD 3 0  La capacit   massima teori   ca dello standard SDXC    di 2 048 GB  2 TB   con una velocit   del bus di 104 MB s  il File  System adottato    chiamato ExFAT  FAT64     I vari lettori di schede SD non sono compati     Fig 2  Esempio di miniSD  e relativo adattatore     ADAPTER       eI  OS109       5  O       O     5  y  Sea   lt   O  W       o  O          Tabella 2   Contatti elettrici di una SD Card  nella colonna Type  S power supply  I  input  O 0utput  con push pull      SD Mode    CMD   Command Response  VSS1 Supply Voltage Ground  VDD Supply Voltage   CLK Clock   VSS2 Supply Voltage Ground  DATO i Data Line O  Bit O   DAT1 Data Line 1  Bit 1   DAT2 f Data Line 2  Bit 2        MultiMediaCard Mode    AL RSV NC Not connected or Always  2 CMD I 0 PP 0D   Command Response   3 VSS1 S Supply Voltage Ground  4 VDD S Supply Voltage   5 CLK   Clock   6 VSS2 S Supply Voltage Ground  7 DATO 1 0 PP Data0    bili con le nuove versioni prodotte successiva   mente  ma solo con quelle precedenti  quindi  un lettore di schede SDXC sar   compatibile  con le schede SDXC  SDHC e SD  mentre un  lettore di schede SD sar   compatibile solo   con le schede SD  I dispositivi che non dichia   rano il supporto SDHC non sono in grado   di riconoscere le schede SDHC  ad esempio   schede da 4 GB non marcate come SDHC  non  sono conformi n   allo standard SD n   a quello  nuovo  SD2 0 SDHC    Analizzando le caratteristiche elettriche di una  SD Card  possiamo notare 
142. iuda tha incaton n ha search krak disponibili nei vari connettori  quindi  oltre  E Fpa Fia andana  OE FTO USB De i   Bea    agli IN OUT  disponiamo del segnale seriale  C  Dali sawek  I ai ahan ha dien dacia in uscita dall   FT232  dei segnali per il pro   Choose Pa opion tc sad fa dere desi bom a ini Wirdong dosi nol guarartaa Fal grammatore seriale esterno e delle tensioni di  TI alimentazione  A completare la scheda  il LED  PWR  acceso in presenza di alimentazione     eI  OS109       5  O       Come si usa   Ma entriamo nel cuore dell   applicazione  ov   vero del software di sviluppo necessario alla  programmazione del microcontrollore  senza  cui la scheda Arduino  appena acquistata  non  Completing the Found How fa assolutamente nulla  Per poterla program   Hardware Wizard mare da remoto senza alcun specifico pro    Trap waz ban Sembesi rotalirto hp posare tor grammatore  il microcontrollore viene fornito  ufo Uiteten preprogrammato con uno specifico bootloader  che instrader   in modo corretto il firmware  nell apposita area di memoria EEPROM  durante la fase di programmazione  Faremo  riferimento alla scheda Arduino duemilanove   ma nello stesso modo potremo operare con al   tre schede Arduino  tipo USB  e cloni  purch    provvisti di interfaccia USB    Siccome la scheda dispone di un LED  come  primo esperimento lo faremo lampeggiare    La Arduino Diecimila  e la Arduino NG origi        Completamento dell   installazione dei driver  naria  hanno una resistenza e un
143. iziare con  l     esempio denominato simple   pde  gi   disponibile sul sito   Per poterlo utilizzare dovete  creare una cartella chiamata  simple all   interno della libre   ria oscP5 e copiarci dentro il  file simple pde    Create quindi una rete Wi Fi  tra il PC e l iPhone  Fig  7    Aprite processing ed avviate  lo sketch simple pde  dal lato  iPhone avviate l   applicativo  TouchOSC ed impostate i  parametri per l   accesso alla  rete mediante il protocollo  UDP  figure 8 e 9     Fatto ci    alla voce HOST in   serite l indirizzo IP del Com   puter  quindi nella sezione  PORT  outgoing  scrivete   il numero 8000  alla voce  PORT  incoming  immettete  il numero 9000  Introdotti  questi valori  alla voce LO   CAL IP ADRESS comparir    in automatico l indirizzo IP  dell iPhone    Nella relativa schermata  selezionate come Layout il  modello Simple ed avviate  l applicativo  Fig  10    Complimenti  Adesso il vo   stro iPhone potr   interagire  con il software Processing   Adesso siamo pronti per cre   are il nostro applicativo per  la gestione della scheda Ar   duino  vogliamo realizzare  un controllo con un pulsante  per accendere e spegnere un  LED ed un fader per regolare  la luminosit   di quest   ultimo   Mentre su Arduino    sempre  caricato firmataStandard pde   noi dobbiamo occuparci di  creare l interfaccia per l   iPho   ne e lo sketch per Processing   Avviamo quindi TouchO    SC editor e  sulla schermata  dell iPhone  cliccando con il           FK    processing_os
144. j  lt  10  j       logico alto  HIGH   Le i metto basca la linea eee piedi pondo per a iram oe one erial  3   i i digirtcalWreicellarcchPin  De  ultime Isituzioni del t nie sequenza oei bit in 1ngresso  listato testano il pul    shiftOut dataPin  clockPin  LSBFIRST  numero j     sante 2 e spengono il i  ltrasterisco Iil numero sul display  a digitalWrite latchPin  HIGH    LED qualora esso fosse   delay 1000      premuto  Le istruzioni Do     contenute all   interno di    118 Luglio 2010   ELETTRONICA IN       O     5  y  fa   lt   O  W  i   o  O    sonora  ma pi   sofisticato  lo  potete trovare in file exam   ple digital tonemelody    Per utilizzare questi esempi    dovete modificare la riga che        Slider 1 connesso all   ingresso analogico 0     int Slider i   2    p arabi ie che enim posizione delai iden  E int Slider Pos   0    Pin connesso a ST_CP di 74HC595     int latchPin   8        Pin connesso a SHCP oi KC595   ant e lockPin  T     gt  dlld Pin Commesso a DS odi 74AHCS595     int dataPin   13     specifica la connessione del  buzzer  o dell   altoparlante   la quale  nel nostro caso      la linea 3  L uso dell   istru   zione    semplicissimo   come mostra l esempio nel  Listato 3  Il programma si  limita ad emettere una nota  ogni secondo  L istruzione  delay 1000  crea  semplice   mente  un ritardo di 1 000  millisecondi  1 secondo  appunto  tra la nota e la  successiva     UTILIZZO DEL DISPLAY   A LED    SKETCH DANGER_05   Vediamo adesso come  visualizzare un
145. l  OSC     un protocollo di comunica   zione per messaggi tra computer  strumenti  musicali elettronici e altri dispositivi multime   diali  ottimizzato per funzionare nelle moder   ne reti informatiche  I benefici delle moderne  tecnologie di reti nel mondo degli strumenti  elettronici OSC permette di aggiungere molta  flessibilit   organizzativa oltre  ovviamente  a  controlli centralizzati per grossi studi  teatri o  concerti  Per chi volesse conoscere pi   appro   fonditamente questo standard di comunica   zione consigliamo il sito  http   opensoundcon   trol org     Affinch   Processing possa gestire una co   municazione con OSC    necessario installare  l apposita libreria  scaricabile all indirizzo  http   www sojamo de libraries oscP5   Sempre a  questo indirizzo     disponibile tutta la docu   mentazione per l utilizzo di tale libreria  Il file  oscP5 zip deve essere scompattato all   interno  della cartella libraries di Processing  Fig  6    Al primo avvio di Processing la libreria verr    caricata e sar   subito utilizzabile    Quello che vogliamo fare    utilizzare questa  libreria per dialogare con un iPhone connesso  in Wi Fi alla rete del PC e poter cos   gestire  da remoto la scheda Arduino  Per arrivare a  fare questo    necessario installare sull   iPho   ne un applicazione in grado di utilizzare lo       Scegli una rete     v dlink    Altro       Richiedi    L atcesso al network conosciuti sara  automatico  Se non    disponibile nessun  h  etwork condscuto 
146. la portata di tutti    STARTER KIT CON ARDUINO UNO    kit composto da scheda Arduino UNO  cavo USB   mini Breadboard a 170 contatti con 10 cavetti    ARDUINOUNOKIT    c 55 90    IVA inclusa     Via Adige  11   21013 Gallarate  VA     da 15cm  piastra sperimentale  58 5 x 82 7mm     2 motori elettrici  fotoresistenza  termistore  LED    micropulsanti  transistor e molti altri componenti  necessari per cominciare ad utilizzare  questa potente piattaforma hardware     Maggiori informazioni su questo prodotto e su tutte le altre apparecchiature sono disponibili    Tel  0331 799775    Fax  0331 792287 sul sito www futurashop it tramite il quale    anche possibile effettuare acquisti on line     154   Marzo 2011   ELETTRONICA IN             eI vAe    eLo        3  O       dell ing   MIRCO  SEGATELLO    Ardu    1no    Interfacciamo Arduino con i ricevitori  GPS utilizzando l apposito GPS Shield  e facciamo le nostre prime esperienze    con la localizzazione da satellite  Nona    puntata     uesta volta ci occupiamo della inte    ressantissima tecnologia GPS per la   rilevazione della posizione sul globo  terrestre  Global Position System   Come  saprete sopra le nostre teste  a circa 20 000  km  sono posizionati dei satelliti che inviano  costantemente sulla terra una serie di infor   mazioni  queste  opportunamente captate ed  elaborate  ci permettono di determinare la  nostra posizione  Per ricevere ed analizza   re i dati serve un GPS receiver completo di  antenna  il quale  dopo
147. m relativo lit   Grin ina SR  all argomento ed il link riguardante lo svilup    Then send each command follcwed by a carriage return     po del software di gestione  utent  an aa  Una prima vera libreria non esiste  in quanto     ancora in fase di sviluppo da parte della co   munit   di Arduino  per   la versione    alpha2        gi   a buon punto ed in fase di test da parte  degli utilizzatori di Arduino  cui anche noi  apparteniamo     Non ci resta che inserire il WiFly shield su Ar  Fig 5   Richiesta versione firmware    duino e connettere Arduino al PC  con il solito  es Mu o    _ _     cavo USB  Scaricate la libreria dal sito https     github com sparkfun WiFly Shield  il file da noi  utilizzato si chiama sparkfun WiFly Shield wi   fly library alpha 2 11 g981ea95 zip  Scompatta                       This is a tool to help you troubleshoot problems with the WiFly shield   For consistent results unplug  amp  replug power to your Arduino and WiFly shield     telo  mantenendo inalterata la struttura delle  Ensure the serial monitor is not open when you remove power    sotto directory  e copiate la cartella wifly nella Mai a i on    cartella library di Arduino  Aprendo L   IDE di sa   Arduino vi ritroverete con una serie di esempi a esige torrone ira vagale riprende    gi   preparati  aprite ed inviate ad Arduino  quello denominato SpiUartTerminal  il quale    Waiting for input     CMD  permette la gestione a comandi del WiFly ver   gt  Ae       WiFlwy Ver 2 21  07 11 2010  s
148. mata con un LED  un pulsante ed un  fader  i nomi predefiniti corrispondono agli  indirizzi cui dovremo fare riferimento per  sviluppare l applicazione per Arduino   PANED ODA     per il pulsante     1 toggle1         per il fader     1 fader1        Caricate sull iPhone questa nuova schermata  seguendo le indicazioni riportare sul sito di  riferimento    Impostate su Touch OSC i parametri di fun   zionamento come segue  Host 169 254 1 1   Port  outgoing  8000  Port incoming  9000   Local IP address viene assegnato in automati   co  Ora siete pronti per far funzionare il tutto   Arduino    operativo con lo sketch SPIUartTer   minal  WiFly    associata con l iPhone e Tou   chOSC    avviato e configurato    Avviate Serial Monitor di Arduino per vedere  i messaggi inviati dall   iPhone e in arrivo sulla  WiFly  Provate a cliccare sul pulsante  toggle1   per inviare un primo messaggio  su Serial  Monitor vedrete comparire una stringa conte   nente l indirizzo dell elemento che lo ha gene   rato ed il corrispondente valore numerico   Come potete vedere  il protocollo OSC   almeno nella sua forma elementare     molto  semplice  purtroppo non esiste ancora una ap   posita libreria che sia in grado di lavorare con  messaggi OSC provenienti dal WiFly shield   Fortunatamente il protocollo OSC    ben do     158 Luglio   Agosto 2011   ELETTRONICA IN A       cumentato ed il sito di riferimento http   open   soundcontrol org ci permette di comprendere al  meglio questo sistema di comunicaz
149. mazione  Questa scheda  reperibile in  kit di montaggio  ad esempio su wwsw futu   rashop it     l ideale per le prime applicazioni  e  permette di prendere confidenza con l   har   dware ed il software del sistema Arduino   All   interno della confezione non sono fornite  le istruzioni  per altro disponibili in Internet   quindi per la sua installazione dovete segui   re le indicazioni seguenti  Dal suo schema  elettrico  Fig  1  potete notare la presenza di  un LED  LED3  di segnalazione di presenza  dell   alimentazione  i LED1 e LED  usabili a  piacimento per segnalazioni varie  tre poten   ziometri a slider che forniranno una tensione  analogica in ingresso al microcontrollore  un  buzzer ed un sensore di tocco ottenuto tramite  un secondo buzzer  tre pulsanti funzionanti  in logica positiva  premuti  forniscono uno  logico  e  infine  un display a LED a sette  segmenti controllato da uno shift register tipo  74HC795  La corrispondenza tra le periferi   che e i pin del microcontrollore    illustrata    Tabella 1    Nome periferica       Segnale  Nome sullo stampato 8  microcontrollore    Presenza    LEDS PONET alimentazione  Pulsante_1 Button 1 D2  Pulsante_2 Button 2 D7  Pulsante_3 Button 3 D4  LED2 LED2 D5  LEDA LED1 D6  Potenziometro 3 Slider3 AO  Potenziometro 2 Slider2 A1  Potenziometro 1 Slider1 A2  Fotoresistenza LDR A3  Sensore temperatura Temp sensor A4  Sensore di suono SG1 Knock sensor A5  LED su slider1 LED su slider1 D9  LED su slider2 LED su slider2 D10  LE
150. men   tabili sono davvero moltissime e tutte della  massima facilit    Alcune conoscenze sulle reti  informatiche e di programmazione in HTML  permettono di ottenere in brevissimo tempo  delle applicazioni molto innovative e profes   sionali che non mancheranno di darvi soddi   sfazione  E    A ELETTRONICA IN   Maggio 2011 155    Arduino    dell ing  Conosciamo ed impariamo ad usare un  MIRCO nuovo shield  quello che permette di  SEGATELLO dotare il nostro Arduino della connettivit    Bluetooth  Undicesima puntata     gni giorno o quasi  nascono shield de  un interfaccia Bluetooth risulter   assai sempli   dicati a realizzare con Arduino tutte le ce e per niente costoso  sar   inoltre una valida  funzioni che gi   conosciamo e vediamo soluzione per comunicazione wireless  alter   associate a dispositivi di uso comune  In que  nativa a quella rappresentata dai moduli radio  sta puntata impareremo ad utilizzare quello XBee o WiFi  Come sempre  in questo corso   creato e sviluppato per implementare il Blue  partiamo dalla descrizione dell hardware   tooth  Per la precisione  vogliamo interfacciare per poi proseguire con lo sviluppo della parte  una scheda Arduino ad un PC tramite un software   collegamento wireless utilizzando lo standard In sintesi  gli elementi che abbiamo utilizzato  Bluetooth  gi   impiegato con successo nel  per questa puntata  sono i seguenti   la comunicazione locale tra cellulari  negli e una scheda Arduino duemilanove  va bene  auricolari e vivavoce wir
151. ment this to contol    LED reser on chis pin      7 option  Uncomment che next line if all comnand pins are on tche same port Tor slight speed  amp  code size qi   DRONEEN   define LCD_CMD_PORT PORTC    Command Output Register for pins 14 19      Arduino pins used Tor LCD Darta     un cComment ONe of tche Following pin options chart corresponds to che wiring of darca bircs 0 3   x  derine darcaPinssctoll    birs 0 3 assigned to arduino pins 6 11  birtrs 4 7 assigned ro arduino pins 4 7   ledetine darcaPinsldrcol    birs 0 5 assigned to arduino pins 14 17  birs 4 7 assigned ro arduino pins 4 7    note command pins must be changed     laetine darca insOros    bircs 0 3 assigned to arduino pins 0 3   oits 4 7 assignet to arduino pins 4 7  chis  is marginally rhe fastest option bur iws only available on runtime boar wichourt hardware rs232        NOTE  all above options assume LCD darca bircs 4 7 are connecte to arduino pins 4 7         FEKKKKKKKKAKAKKKKKKKKKKKAAAKKKKKKAKKKKKKAAKKKAKKKKKAKKKAAAKAAA         end of Arduino configuration si    FKKKKKKKKAKKKKKKKKKKKKAAKKKKKKKKKKKKAAKKKKKKKKKKKAAAKAAA      ELETTRONICA IN   Agosto   Settembre 2010 139       n    E        E               am   fn    SR  Cia  iS  O  E     Mine    mF       LAI I  mia P_i  Spark fritti DIES       de n d   O e     Frodo    bot fi       cain  che permette di visualizzare a video una  semplice scritta  Lo sketch semplificato    pi    semplice da comprendere rispetto all esempio  originale  Un secondo esempio d
152. mer per impostare  un certo livello di tensione in ingresso     l http   192 168 0 77    _ CC     E  http   192 1            File Modifica Visualizza Preferiti  A Preferiti   2     Siti suggeriti v    http   192 168 0 77    oi                   ElettronicaIN    analog input 0 is 330  analog input 1 is 309  analog input 2 is 310  analog input 3 is 317  analog input 4 is 471  analog input 5 is 446       co Internet   Modalit   protetta  i       154 Maggio 2011   ELETTRONICA IN A    it assieme agli altri file di questo corso  per  facilitarne la comprensione i commenti sono  stati tradotti in italiano    A questo punto vogliamo imparare a gestire  le uscite e lo facciamo inserendo dei pulsanti  sulla pagina web  con i quali poter attivare un  semplice LED  Essendo occupata l uscita 13    il LED di sistema non sar   accessibile  perci    per le segnalazioni del caso usate un semplice  LED con in serie una resistenza da 470 ohm   connesso tra l uscita digitale 2 ed il pin di  massa  Lo sketch gi   commentato in italiano si  chiama ethernet_02 pde    In questo sketch    stata aggiunta la possi   bilit   di gestire il LED sia tramite un check    sia mediante due pulsanti  la pagina web     anche pi   complessa  proprio per far vedere le  potenzialit   del sistema  Volendo approfondi   re l argomento  esiste un interessante libreria      File Modifica Visualizza Preferiti    ir Preferiti      amp      Sitisuggeriti v  E http   192 168 0 77 7L L    ii 1 dm   Pagina       Arduino Ether
153. microsecondi  corrispondente al minimo  grado di rotazione  0 gradi  del servo  il valo     114 Ottobre 2010   ELETTRONICA IN A          e ruotando di conseguen    za il motore sino a quando   questi due valori non coin    cidono perfettamente    In questo modo si ottiene A   un controllo di posizione   molto veloce e preciso  comandabile con semplici se   gnali elettrici  II cavetto di collegamento    composto da  un filo di riferimento  GND   un filo per l alimentazione   da 4 8 a 6 volt  ed un filo per il segnale di comando   Tabella 1      colore funzione    Nero o marrone Negativo di alimentazione  GND   rosso Positivo di alimentazione   Vcc     Giallo o bianco    Tabella 1       Segnale di comando  ingresso     Occorre dire che non    prevista la rotazione continua   salvo casi particolari  del perno  ma solo di  60   ri   spetto alla posizione iniziale  anche se    possibile  espandere la rotazione sino a  90     Il segnale di con   trollo    di tipo PWM  Pulse Wide Modulation  formato  da impulsi ad onda rettangolare ripetuti ogni 20 ms   la cui    larghezza    permette di impostare la posizione  del perno del servo  La posizione centrale si ottiene    Posizione  60       gt      1 5msec  Posizione centrale 0       gt        1msec  Posizione  60       lt     20msece        gt         20mse     gt     Fig  2   Il segnale di comando     quando gli impulsi hanno una durata di 1 5 ms  Fig  2    Questo tipo di segnale digitale si presta benissimo ad  essere generato da una
154. mina sull   adattatore  Siccome la  scheda aggiuntiva internamente ricava i 5 volt  tramite un proprio stabilizzatore  va alimen   tata con una tensione leggermente pi   alta  6 7 V  raccomandati   il massimo ammesso     9 volt  Ecco perch   la scheda Arduino dovr    venire alimentata tramite un alimentatore  esterno  dato che la tensione della USB non      sufficiente  Per i nostri esperimenti abbia   mo utilizzato un semplice alimentatore non  stabilizzato da 0 5 A  impostato per ottenere  una tensione di uscita di 6 volt  anche se pu      sembrare poco  in realt   con tale impostazione  in questo genere di alimentatori    facile prele   vare anche 8 9 volt  Sul pin Vin della scheda  Arduino    presente la tensione appena uscita  dall   alimentazione e non ancora stabilizzata a  5 volt  dovremo avere l   accortezza di fornire  in ingresso non pi   di uno o due volt oltre  detto valore  Le gestione di questo adattatore  avviene semplicemente con l invio di comandi  seriali che la scheda Arduino gestisce in fase di  programmazione tramite le due linee  TX ed  RX  che sono le stesse utilizzate per la comu   nicazione con la USB  tramite il convertitore  FT232   Riassumiamo  nella Tabella 8  i princi   pali comandi da inviare al display  che devono  essere composti secondo lo standard RS232   impostando come parametri di comunicazione  115200 N 8 1 ovvero 115 200 baud  valore pre   definito ma modificabile   nessun bit di parit     8 bit di dati ed un bit di stop    Nel Listato
155. mo esclusivamente display LCD  basati sul controller Hitachi HD44780 oppure  Samsung ST7066U  si tratta di display con  interfaccia parallela per i quali i pi   svariati  ambienti di sviluppo per microcontrollori  includono gi   i comandi per controllarli  il  che risparmia la fatica di dover elaborare  specifiche routine di controllo  L interfaccia  hardware    standard e prevede i contatti rag   gruppati nella Tabella 1    Oltre a queste linee  potrebbero essere dispo   nibili i contatti della retroilluminazione  BL   e BL   da utilizzarsi se    richiesta la visione in  ambienti poco illuminati    Ovviamente i nomi possono cambiare da pro   duttore a produttore  cos   come il riferimento  al pin del connettore al quale fanno capo  per    la funzione rimane sempre la stessa   Facciamo ora un esempio pratico  utilizzando  un display basato su chip Hitachi che presen   ta il connettore posto in alto e la piedinatura  riportata nella Tabella 2     Tabella 2    Pin    Segnale    Funzione    1 VSS Alimentazione  OV   VDD Alimentazione  5V   3 VO Drive LCD  OV rispetto VDD   Alto  ingresso codici di istruzione  4 RS i    Basso  ingresso dati  5  Alto  lettura dati   Basso  scrittura dati  6 Segnale di abilitazione  7  8  9  10  Linea di bus dati  11  12  13  14  15 Terminale di alimentazione LED           Terminale di alimentazione LED        134 Agosto   Settembre 2010   ELETTRONICA IN Ei     In questo display la retroilluminazione  in  inglese backlight  viene attivata semplicem
156. motore B       Tabella 2    gono usati nei giocattoli e che spesso troviamo  in molte applicazioni di robotica  Per questo      disponibile uno specifico hardware deno   minato ArduMoto  la versione V12 nel nostro  caso  disponibile presso la Futura Elettro   nica  il codice del prodotto    7300 MOTOR   SHIELD     Questa scheda viene fornita gi   montata con  componenti in SMD     basata sul chip L298   e permette di controllare direzione e velocit    di 2 motori DC con una corrente massima di  2 ampere ciascuno  Alimentata direttamente  dalla linea Vin di Arduino Duemilanove o  Seeeduino  ogni sua uscita dispone di un LED  blu e uno giallo per indicare la direzione di  rotazione del motore  Tutte le linee di uscita  del chip L298 sono protette da un diodo    Con questa scheda    possibile gestire ciascun       Fig  3     Cablaggio del motore a 6 V        Rapporto di riduzione 1 120  Giri a vuoto 3V  100 RPM  Giri a vuoto 6V  200 RPM  Corrente a vuoto 3V  60 mA  Corrente a vuoto 6V  71 MA     Corrente a rotore bloccato 3V  260 mA  Corrente a rotore bloccato 6V  470 MA  Coppia  3V  1 2 kgem  Coppia  6V  1 92 kgem  Dimensioni 55 x 48 3 x 23 mm  Peso 45 g    Tabella 3    A ELETTRONICA IN   Ottobre 2010 117                  Per provare il primo  sketch di controllo di due  motori  abbiamo utilizzato  la piattaforma robotica  7300 2WDPMA Futura  Elettronica  di cui vedete le  fasi di montaggio           motore in entrambi i sensi di marcia  mentre  la velocit   di rotazione viene 
157. motori passo passo  non essendo disponi   bile una vera e propria motor shield specifica  per questi motori abbiamo optato per l   utiliz   zo di un driver siglato EasyDriver  fornitoci  dalla ditta Futura  codice 7300 EASYDRIVER   e reperibile sul sito www futurashop it    Questo driver    basato sul chip A3967SLB  della Allegro ed    in grado di controllare   un singolo motore passo passo bipolare con  possibilit   di selezionare quattro modalit   di  controllo del motore  passo  1 2 passo  1 4 di  passo e 1 8 di passo  Consente di impostare la  corrente in uscita tramite l apposito trimmer   montato sul circuito     La versione di EasyDriver usata in questo  esempio    la 4 3 ed i rispettivi collegamenti  sono illustrati nella Tabella 4    Non dovete spaventarvi di tutti i contatti di  cui dispone  in quanto il driver    gi   impo   stato in modo ottimale per la maggior parte  delle applicazioni  l   unica raccomandazione      non collegare e scollegare il motore quando  il driver    alimentato  per non danneggiare  l   integrato A3967    Il motore utilizzato in questo esempio    di   stribuito dalla ditta Futura Elettronica  codice  7300 STEPMOTO1   esso ha le caratteristiche  descritte nella Tabella 5    In ogni caso  assicuratevi che il motore che vi  accingete ad usare non assorba una corrente  superiore a 750 mA e possa essere alimentato  con una tensione compresa tra 8 e 30 volt   oltre ad essere di tipo bipolare    Per sapere se il motore sia effettivamente  bipolar
158. mposta la posizione del seryo       attende che il servo raggiunga la posizione       dal minimo al massimo sono necessari 15msX180 2  secondi    myservo write pos    delays  s       100p da 180 fino a zero graci       imposta la posizione del servo     attende che il servo abbia raggiunto la posizione    ELETTRONICA IN   Ottobre 2010 115              include  lt Servo h gt     Servo myservo     crea un oggetto di tipo servo con nome myservo  void setup         Serial begin 9600      imposta comunicazione a 115200 baud    l utilizzo di questa libreria   Come si vede da tale listato  la  libreria semplifica notevolmente  il lavoro di programmazione  le    Sora prne Trono    void oop    srarie inte y   0s    if   Serial available       char ch   Serial read       switch ch     CARI  we leh   0   20       0    0     9  180    myservo write v    break   case    d      myservo detach     break   case    ae  myservo attach 9    break     della posizione di trimmer cablati sulla scheda  Arduino  mentre il secondo  denominato Swe   ep  permette di far girare l   alberino del servo  alternativamente dalla posizione minima a  quella massima  In entrambi gli sketch il servo     cablato connettendo il positivo al pin  5 V  di Arduino  la massa al pin GND e l ingresso  di comando al pin 9  Solo per il primo esem   pio    necessario collegare anche un trimmer  con i contatti esterni connessi uno a  5 V e  l   altro a GND ed il centrale  cursore  al pin 0  di Arduino    Nel Listato 1 riport
159. municazione adibita  alla ricezione dei messaggi  gi   dichiarata su  Touchosc    IPhoneLocation z new NetAd   dress    192 168 0 46    9000      Quando viene premuto il pulsante del mouse  su un qualsiasi punto dello sketch di Proces     sing avviene l invio del comando per attivare  WLED     void  mousePressedl  4  OscMessage  Jedi 5      myMessage   new O0OscMessage     1     e3  Me    oro           O       U Procersing_os _ 4             Fig  14 Fig  15    La prima riga provvede alla creazione del    if CLEDStatus  1    messaggio che deve riportare la posizione del  LEDStatus 0  LED      1 led1      successivamente al messag   myMescage dda BEDS taria nando penr gio  viene aggiunto  mymessage add  il valore   ledl    in questo caso 1 o 0  a seconda se si vuole ac     cendere o spegnere il LED  Dopodich   il mes   else   saggio viene spedito all indirizzo specificato   LEDStatus l  L istruzione IF viene semplicemente usata per  myMessage add LEDStatus      add comando per     la funzione toggle del LED ad ogni pressione    ledi    del pulsante del mouse  Fig  14 Fig  15      L aggiunta delle righe di codice per la gestio   ne di Arduino risulta abbastanza semplice   OsCPS  sendi myMessage  TPhonelocation   prendete spunto dagli esempi precedenti     STARTER KIT CON ARDUINO UNO    kit composto da scheda Arduino UNO  cavo USB   mini Breadboard a 170 contatti con 10 cavetti    da 15cm  piastra sperimentale  58 5 x 82 7mm    2 motori elettrici  fotoresistenza  termistore  LED 
160. n  oscillatore a quarzo da 16 MHZ  o  in alcune  varianti  un risuonatore ceramico   sebbene  alcuni casi  come ad esempio LilyPad  girino  ad 8 MHz e facciano a meno dello stabilizza   tore di tensione    La scheda Arduino    pre programmata con  un bootloader che semplifica il caricamento  dei programmi nella memoria Flash incorpo   rata nel chip  rispetto ad altri dispositivi che  richiedono  solitamente  un programmatore  esterno    A livello concettuale  tutte le schede vengono  programmate attraverso una porta seriale RS   232  ma il modo in cui questa funzionalit       implementata nell hardware varia da versione  a versione  Le schede seriali Arduino conten   gono un semplice circuito traslatore di livelli  che permette la conversione tra il livello della  RS 232 e quello dei segnali TTL    Le recenti versioni di Arduino  Diecimila   e Duemilanove  vengono gestite via USB   grazie a un implementazione che usa un chip  adattatore USB seriale come l   FT232 della  FTDI  Alcune varianti  come la Arduino Mini  e la versione non ufficiale Boarduino  usano  una scheda o un cavo adattatore USB to serial  separato    Le schede Arduino dispongono di molti con   nettori di Input Output usabili quale esten   sione per altri circuiti esterni  La Diecimila  ad  esempio  offre 14 connettori per l   I O digitale   sei dei quali possono produrre segnali PWM   esistono poi sei ingressi per segnali analo   gici  Questi pin sono disponibili sulla parte  superiore della scheda  mediante 
161. n ci addentreremo nella descrizione di  Processing  peraltro ben documentato su di   versi siti  ma piuttosto impariamo quei pochi  ed essenziali passaggi che ci permettono di  poterlo interfacciare con la scheda Arduino  la  Duemilanove  in questo caso     tramite alcuni  semplici esempi  Lasciamo a voi il piacere di  utilizzare questi strumenti come meglio vi  conviene  realizzando degli applicativi pi    complessi e di maggiore utilit      Per prima cosa dobbiamo preparare la nostra  scheda Arduino in modo che possa essere  gestita in remoto dal software Processing  allo  scopo  dobbiamo collegarla al PC e caricarvi  l apposito sketch denominato StandardFrimata   pde  situato nella cartella  arduino 018 libraries firmata example Standar   dFirmata pde    Con il termine Firmata si intende un ge   nerico protocollo di comunicazione per  microcontrollori e computer  che essendo  molto semplice  pu   essere facilmente imple   mentato su qualsiasi piattaforma software    A chi volesse approfondire la conoscenza di  questo protocollo  consigliamo il link  http     firmata org wiki Main_Page  Il riferimento ad  Arduino  invece  lo si trova all indirizzo web  http   arduino cc en Reference Firmata  dal quale     possibile scaricare  oltre alla libreria  anche  alcuni esempi    Caricando questo firmware  si ha la possibi   lit   di gestire in remoto la scheda Arduino  proprio con questo protocollo  tra le altre  cose  il firmware    facilmente adattabile alle  pi   svariate applica
162. n sviluppo e nuove ed interessanti funzioni  vengono implementate e rese disponibili a tut   ti  infatti non dimentichiamo che  secondo la  licenza concessa dallo staff che ha sviluppato  Arduino  chiunque pu   sviluppare espansioni  sia per un uso personale  sia per fini commer                 0       0 0 0 0 0 0 0 0 0 0 0 6 0 6 0 6    6    6    6 0 0 0 0       0 0    0 0 6    0 0 0 0 0 0    0 0 0 0 a    0 0 0    0 0 0    0    0    e    0 0 0    0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o 0 0 o 0 0 o 0 0 0 0      Danger Shield v1 0    DEF Tani Pepa Dee Dogra TT    ciali  Le shield che analizziamo sono elencate  e sommariamente descritte qui di seguito    e Protoshield     una piastra sperimentale   58 50 x 82 70 mm  per piccole applicazio   ni  realizzata appositamente per le schede  Arduino o Seeeduino  permette di avere un  numero maggiore di piazzole su cui mon   tare i componenti  Alcuni piazzole sono  predisposte per montare un connettore USB  tipo B  un mini potenziometro da stampa   to  pulsanti  LED  ecc  Dispone di piazzole  riservate al montaggio di connettori per  UART OERERC  Danger Shield  montata sopra una scheda  Arduino o Seeeduino  permette di testare  i vari ingressi  uscite  grazie ad una serie  di componenti elettronici  Il KIT contiene 3  Slider lineari con LED integrati  4 pulsanti   3 LED indicatori  1 Buzzer  1 Sensore di  temperatura    Motor Shield  basata sul chip L298  per   mette di controllare direzione e velocit   di  2 motori DC con una corr
163. nale possono comunicare fra loro   mentre moduli con un CH diverso creano di  fatto una sottorete nella quale solo essi pos   sono comunicare e coesistere con altre reti      ID    l   identificativo della PAN  Personal  Area Network  sulla quale il modulo sta  operando  Solo moduli con lo stesso ID   Fi e lo stesso CH possono comunicare tra  ig 21 i   Adattatore USB  di loro  in questo caso fanno parte della   XBee V Dongle stessa PAN    installato e DH DL    l indirizzo di destinazione dei mes   saggi  Impostando DH  0 e DL inferiore a  OxFFFF  i messaggi trasmessi da questo mo   dulo sono ricevuti da tutti gli altri moduli  della PAN che hanno parametro My uguale  a DL  Se DH 0 e DL 0xFFFF la trasmissione  di questo modulo sar   ricevuta da tutti i  moduli  Se DH gt 0 e DL gt OxFFFF la trasmis   sione di questo modulo verr   ricevuta esclu   sivamente dai moduli che hanno numero  seriale uguale a questo SH  ricevente  DH   trasmettitore  ed SL  ricevente  DL  tra   smettitore   Tutto questo    valido per modu   li facenti parte della stessa PAN    e SH SL    l   identificativo  32 bit in totale   Adattatore univoco impostato in fabbrica  ovvero ogni   USB Xbee  XBee installato  modulo ne ha uno diverso ed ovviamente  non pu   essere modificato    e My    l indirizzo sorgente  il modulo in  questione  da non confondersi con il nume   ro di serie univoco per ogni modulo  Come  vedremo questo indirizzo ci torner   utile  quando dovremo indirizzare delle trasmis   sioni solo v
164. ne a batteria per connes   sioni di lunga durata  Tabella 1     A livello commerciale  lo standard ZigBee    IEEE 802 15 4    stato implementato dalla   Farther Maxstream Digi  Wwww maxstream net e www   digi com  con i moduli denominati XBee    I primi di questi moduli immessi nel mercato    Wireless Data    Peak Data Rate    Wireless       Il protocollo ZigBee prevede delle specifiche e denominati semplicemente XBee  si riferi   di sicurezza per l   accesso alla rete  tra cui un scono alla serie 1 ed implementano solo in  sistema criptato a 128 bit basato sul NIST Cer  parte il protocollo ZigBee  mantenendo  per     tified Advanced Encryption Standard  AES   la caratteristica di poter essere utilizzati nella  Confrontando lo ZigBee con il Wi Fi ed il realizzazione di reti a basso costo e a basso  Bluetooth  ci si accorge subito di alcune diffe  consumo  I moduli sono semplici da utilizza   renze  il Bluetooth    essenzialmente utilizzato re  richiedono pochissima energia e costitui   per far colloquiare due apparati a brevissima   scono una soluzione efficace ed affidabile per  distanza  senza l utilizzo di cavi  di solito    la trasmissione di dati critici  I moduli XBee  implementato sui telefoni cellulari per uti  operano nella banda ISM alla frequenza di 2 4  lizzare periferiche esterne come auricolari e GHz  permettendo di realizzare applicazioni  ricevitori GPS o per lo scambio dati con il PC  hardware estremamente compatte  inoltre  Non    in grado di gestire molte p
165. ne visualizzato sul display con le  istruzioni precedentemente descritte    Se appena alimentata l   unit   noterete dei va   lori strani sul display  premete il pulsante di  reset e tutto torner   a posto     USARE LA FOTORESISTENZA    SKETCH DANGER_07    In modo del tutto simile    possibile  visualizzare sul display l intensit   luminosa  che colpisce la fotoresistenza     sufficiente mo   dificare il canale di lettura specificando quello  cui    connessa la fotoresistenza  Anche in que   sto caso per avere una tensione che dipenda  dal livello luminoso     sufficiente creare un  partitore di tensione con un   altra resistenza   R7  come visibile nello schema  Applicando  la legge di Ohm possiamo anche determinare  la tensione che giunge al microcontrollore   secondo la formula     Ei  ELETTRONICA IN   Luglio 2010 121                         PI a LI    gwii TETEE    aj DLZISS    P  de  ri    Vin 5 R7  R7 RLpr     Tale tensione dipende dal valore resistivo del   la fotoresistenza  il quale a sua volta    funzio   ne dell intensit   luminosa     UTILIZZO DEL SENSORE DI TEMPERATURA   SKETCH DANGER_08    Anche in questo caso nulla di nuovo  il canale  analogico da leggere    il    4    ed il programma     facilmente adattabile  Il sensore utilizzato   un LM35  fornisce 10 mV per ogni grado cen   tigrado rilevato e quindi per una temperatura  ambiente di 20   C erogher   una tensione di  soli 200 mV  a dire il vero un po    pochini per    LL     SARDE    Digizal in   nt    Ardu
166. netShield TEST    Analogico CH0  528    CHECK      Link  ElettronicaIN       Controllo LED    ALED    submit      if  _LED ON     _LED_OFF      Stato LED  OFF    ID Internet   Modalit   protetta  attivata                                                 O     5  y  Sea   lt   O  W  fa  O  O       creata da Jordan Terrell  http   blog jordanter   rell com  la quale permette di implementare la  funzione di DHCP  ovvero la possibilit   che il  router assegni alla scheda Arduino in auto   matico un indirizzo IP libero senza doverlo  specificare a priori    Se volessimo rendere visibile la periferica   da noi creata anche al di fuori della nostra  rete domestica  dovremmo necessariamente  disporre di un collegamento alla rete internet  ed abilitare un canale di comunicazione   con la nostra applicazione  infatti gli accessi  dall esterno saranno intercettati dal router    il quale dovr   essere configurato affinch     un certo tipo di richieste giunga proprio ad  Arduino  Per fare questo si deve attivare il  servizio di    redirezione port forwarding    del  router  impostando il numero di porta acces   sibile da internet e specificando a quale porta  effettivamente    connesso Arduino sulla rete  interna  Per i dettagli  vi rimandiamo alle spe   cifiche del tipo di router che utilizzate   Sempre accedendo alla rete internet  potete  testare l esempio WebClient  il quale preve   de che sia la nostra applicazione a fare una  richiesta  Client  verso un Server esterno   Google  in qu
167. ng_osc_03 pde  prevede l utilizzo dell   ac   celerometro interno all iPhone i cui valori  possono essere elaborati tramite Processing  in  questo caso per comandare la luminosit   del  LED della scheda Arduino  Per questa appli   cazione    importante che attiviate la casella  Accelerometer  questo permetter   all   applica   zione TouchOSC di inviare in continuazione i    154 Novembre 2010   ELETTRONICA IN Ei        H Procrivngo as dI    Fig  13    valori dell    accelerometro interno ad IPhone   Nella schermata dello sketch di processing  sar   visualizzato un rettangolo in 3D che  mostrer   l orientamento dell   IPhone  men   tre  a seconda della sua inclinazione  si potr    variate la luminosit   del LED connesso al pin  9 della scheda Arduino  Il LED dell   uscita 13   invece  si accender   e si spegner   a seconda  di quale faccia dell iPhone    rivolta verso  l alto  Fig  13   Completiamo l articolo con  un esempio conclusivo che prevede l utilizzo  di comandi OSC bidirezionali tra Processing   file processing _osc_04  e ToucOSC  file ein_te   stin touchosc   Oltre ai comandi gi   descritti   che prevedono da IPhone la gestione di un  pulsante e uno slider di Processing  adesso  aggiungiamo un controllo LED su Touchosc  la cui accensione    gestita da Processing  Non  riportiamo l   intero codice  ma solo la nuova  parte attinente l invio di comandi   La prima riga dichiara una variabile IPhone   Location che contiene l indirizzo IP del nostro  IPhone e la porta di co
168. ni 4  SDA  e 5  SCL  che  permettono di realizzare una comunicazione  nello standard IC a due fili  in abbinamento  alla libreria Wire    Concludiamo la carrellata sulle funzionalit   di  Arduino UNO con il piedino LED  pin 13  che     connesso a un LED interno alla scheda  utile  per segnalazioni di diagnostica    Infine abbiamo il Reset  questo contat    to  portato a livello logico basso resetta il  microcontrollore  La funzione corrispondente  pu   essere attivata anche tramite il pulsante  presente nella scheda Arduino     INSTALLAZIONE ED UTILIZZO   Per il corretto utilizzo di questa nuova versio   ne di Arduino    opportuno disporre dell   ul   tima versione del software  la 21  scaricabile  gratuitamente all indirizzo http   arduino cc   en Main Software  la quale contiene sia i driver  per Arduino UNO  sia i Driver per il chip  FTDI di Arduino 2009  Con sistema operativo  Windows  appena connettete Arduino al PC   esso verr   riconosciuto come nuovo hardware  e vi verr   chiesta l installazione del driver   allora non dovrete far altro che specificare  come percorso la cartella    driver    del sof   tware Arduino  Arduino UNO inf   il sistema  operativo provveder   alla sua installazione ed  alla creazione della porta COM virtuale  Fatto  ci   avviate il software Arduino e specificate  l utilizzo di Arduino UNO  oltre alla COM  alla quale    connesso  Il semplice esempio    Fig 4   Impostazione del software per Arduino UNO     st Auto Format  rail Archive Sketch  e 
169. nitor  impostato su 9 600 baud   il carattere ricevuto sar   mostrato  a video    Connettiamo quindi il modulo Xbee alla  Arduino Shield  che a sua volta sar   inserita  nella scheda Arduino  nel nostro caso una  Duemilanove   impostiamo i jumper su USB   connettiamo la scheda al PC e programmia   mola normalmente  massima attenzione alla  porta COM utilizzata   Spostiamo ora i jum   per su XBee mode affinch   il microcontrollore  ATMega possa usare il modulo XBee    Sulla XBee Shiled dovrebbe lampeggiare il  LED associated per indicare l associazione con  il primo XBee  Sull   adattatore di quest   ultimo  dovrebbe accendersi il LED RSSI  ad ogni  dato ricevuto  ad indicare la presenza di  segnale    Avviamo X CTU  che sar   sintonizzato  sull   adattatore USB XBee  e la schermata       aspetta arrivo di un carattere   ChRX   Serial read     OR  digitalWrite Led  HIGH      sets the LED on    if  ChRX   1    digitalWrite Led  LOW      sets the LED off    Serial print ChRX     printin  delay 100      Terminal  ed iniziamo a digitare dei caratteri   uno alla volta con calma  Appena premiamo  un tasto il carattere relativo viene inviato e   se tutto    a posto  lo stesso carattere torna  indietro  Sull    IDE di Arduino vedrete  invece   i caratteri in arrivo sulla XBeeShield    Sempre in X CTU  andate sulla schermata  Range_Test e in basso  alla voce Create_Data   inserite 1 e cliccate su Create _Data  viene  impostato semplicemente il carattere 0 da  spedire    Cliccate ora su
170. no a quattro connessioni  socket simultanee  il connettore di collega   mento    lo standard RJ45  I contatti utilizzati  da Arduino per comunicare con il chip W5100  sono i pin digitali 10  11  12 e 13  porta SPI   che quindi non possono essere utilizzati come  I O  Il pulsante di reset sulla scheda resetta  sia il chip W5100 che la scheda Arduino  o  Seeeduino   Il chip Ethernet Wiznet W5100  implementa a livello hardware uno stack IP  completo di protocollo di comunicazione TCP  ed UDP    Il protocollo TCP  Transfer Control Protocol   si basa sulla creazione di una comunicazione  tra un Client ed un Server     il Client che pu    iniziare una comunicazione inviando una  richiesta al Server che    in attesa su una porta  in particolare  se il Server accetta  viene aperta    porta di un indirizzo IP  ci   significa che non    Possiamo paragonare il protocollo UDP all   in   vio di una lettera tramite posta normale  non  vi    certezza assoluta della consegna  ma nella  stragrande maggioranza dei casi la trasmissio   ne andr   a buon fine  Invece il protocollo TCP  pu   essere visto come l invio di una lettera  tramite posta con ricevuta di ritorno  nel qual  caso si ha una verifica della corretta ricezione  del messaggio  Risulta pi   semplice  quindi   implementare il protocollo UDP  sebbene esso  accentui i limiti del sistema    Detto ci    ritorniamo a parlare del nostro  shield  elencando le funzioni dei LED posti a  bordo      TX lampeggia quando lo shield trasmette  da
171. no con le  proprie mani  Il progetto Arduino ha preso  avvio in Italia ad Ivrea  nel 2005  con lo scopo  di rendere disponibile a progettisti  studenti   e semplici hobbisti  un dispositivo di svilup           Arduino Single Sided Serial     po facile ed allo stesso tempo pi   economico  rispetto a simili sistemi di prototipazione  I   progettisti sono riusciti nell intento di creare  una piattaforma di semplice utilizzo ma che     Jai pupi Poi fa i pa  da E    det ri terna    ali it ht  Ri  iii     SAM    r k    Li sli i  T i Beh   E n         II modulo Arduino serial     al tempo stesso  permettesse una significativa  riduzione dei costi rispetto a molti prodotti  disponibili sul mercato  A ottobre 2008 erano  gi   stati venduti pi   di 50 000 esemplari di  Arduino in tutto il mondo       pagg  dan duo  mt    te       E TE Ti    r ipa    uri    pin    nil a via l aa    o LERERLRRERELEAR    pare    BORE    LEEFER j    RIALITARALOI    Circuito stampato dell   Arduino serial V2 0     142 Maggio Giugno 2010   ELETTRONICA IN          Una scheda Arduino consiste di un micro   controller a 8 bit AVR prodotto dalla Atmel   con l aggiunta di componenti complementari  che ne facilitano l utilizzo con altri circuiti    Le schede ufficiali usano i chip della serie  megaAVR  nello specifico  i modelli ATme   ga8  ATmega168  ATmega328  e ATmega1280   ma i loro cloni sono disponibili anche con altri  microcontrollori  Molte schede includono un  regolatore lineare di tensione a 5 volt ed u
172. nstallato  Fig  25   Avviate il software X CTU  e selezionate la cartella PC_Setting  quindi  specificate la porta COM utilizzata dall   adat   tatore  se non compare nell elenco cliccate su  User_Com_Port e poi inserite manualmente   il numero della porta sul campo Com_Port_  Number e cliccate su Add  Adesso sar   disponi   bile nell elenco delle COM  Fig  26     Per impostazione predefinita  i moduli  comunicano con il protocollo 9 600 baud  8   bit di dati  1 bit di stop e nessun bit di parit     cliccate su Test Query e lasciate che il software  identifichi il modulo    Se tutto    andato a buon fine  avrete la sigla  del modulo e la versione del firmware  Fig   27   ad esempio  inserendo un modulo XBee  PRO  come risposta abbiamo ottenuto  modem  tipo XBP24 versione firmware 10E6  modelli con  firmware versione 1 x    Selezionate la cartella Modem_Configuration     A ELETTRONICA IN   Dicembre 2010   Gennaio 2011 147    e cliccate su Modem_Parameter   Read per  ottenere la configurazione del vostro modulo   Se il modulo    pi   recente del software sar    necessario aggiornare il data base delle fun   zioni  connettendovi ad internet e cliccando su  Adattatore Download_New_Version  Fig  28     USB XBee Con il comando Read otterrete l   intera confi    gurazione presente nella memoria del modulo    Fig  29   Analizziamo di seguito  in dettaglio    i parametri fondamentali    e CH    il canale di comunicazione  frequen   za del modulo radio   solo i moduli con lo  stesso ca
173. o all   esterno  senza aggiunta di ulteriori componenti     Arduino DIECIMILA     dotato di interfaccia  di programmazione USB e di un ATmega168  in un package DIL28  Il reset pu   avvenire  indifferentemente via software o con pulsante  sulla scheda  Viene usato uno stabilizzatore  di tensione e l alimentazione pu   avvenire  indifferentemente via USB o dall   esterno  non  serve che sia stabilizzata   Un polyfuse pro   tegge la linea alimentazione dell   USB  Inoltre     presente un LED collegato sul pin 13  utile  per i primi esperimenti     Arduino DUEMILANOVE     la versione  aggiornata della diecimila  rispetto ad essa  viene eliminato il selettore per l   alimentazio   ne  in quanto uno switch interno commuta in  automatico tra alimentazione USB o esterna   Viene eliminata la funzione di autoreset even   tualmente ripristinabile con un jumper    Dal 1   marzo 2009  il Duemilanove viene  fornito con il nuovo microcontrollore ATme   ga328p anzich   il ATmega168     Arduino Mini     la versione in miniatura  facente uso di un ATmega168 a montaggio  superficiale     Arduino Nano  versione ancora pi   piccola  della Mini  utilizzante lo stesso controller AT   mega168 SMD e alimentata tramite USB     LilyPad Arduino  si tratta di un progetto  minimalista per applicazioni    indossabili     basate sullo stesso ATmega168 SMD     eI  OS109       5  O       O       gt   Ke   de   lt q  O  W       O  O       Arduino BT  dotato di interfaccia di pro   grammazione Bluetooth e basat
174. o dei dati acquisiti  si pu   fare inserendo direttamente su Google  Maps   le coordinate relative alla posizione  in  modo da rintracciare il ricevitore sulle mappe  di Google  Dalla riga in cui sono specificate la  latitudine e la longitudine  Lat Long    estra   polate i due numeri successivi ed inseriteli nel  seguente indirizzo internet  http   maps google   com  per l esattezza  componete nella casella  degli indirizzi del browser una stringa del  tipo http   maps google com maps g 45 643876     Fig  10   GPS Bee visto  da sopra        Fig  11  GPS Bee  i visto da sotto        8 814163  dove al posto di 45 643876  8 814163  dovete scrivere le due coordinate desunte  dalla vostra applicazione  Nel caso di questo  esempio  45 643876  8 814163 sono le coordi   nate della nostra redazione    Inserendo la stringa e premendo Invio  o fa   cendo clic sul pulsante di inoltro dell indiriz   zo  si aprir   la pagina web di Google Maps    con la posizione specificata sulla cartina sia in  modalit   stradale che satellitare  a scelta    Per sperimentare applicazioni GPS con Ar   duino  potete usare un secondo modulo GPS  denominato GPS Bee  facente uso del chipset  U BLOXS5 e capace di ricevere sino a 50 satelli   ti contemporaneamente  ha quindi 50 canali    il suo formato lo rende del tutto compatibile  con l hardware dei moduli XBee  Le caratteri   stiche di questo modulo sono le seguenti    e chipset U BLOX 5    e hot Start in 1 secondo    e sensibilit   di  160 dBm in acquisiz
175. o ed il valore numerico  lo sketch si  chiama wiflyosc_01 ed    disponibile assieme ai  file di questo articolo    Nello sketch contenuto nel Listato 1  viene  usata la libreria wifly h solo per la gestione  della comunicazione con la WiFly   il resto del  listato riguarda l elaborazione dei caratteri  provenienti dalla comunicazione SPI    Il loop principale provvede alla ricezione   dei caratteri in arrivo per poi richiamare la  funzione oscRXHandler che ha il compito    eI  OS109       5  O                                    o g  oy  ge Ullalo               Listato A      N O     o    void loop      byte incomingByte      Aspetto la ricezione dei dati dalla wifly   while  SpiSerial available    gt  0       incomingByte   SpiSerial read    amp  0xFF     leggo un byte  oscRxHandler incomingByte      Elaborazione del carattere    slalalszazslalstaza la alate a a ate sla lalarale Lala allea ls La sla ls telala lea za lella a sala lea ala rale ala la sto scalate a a lara a a scesa    di interpretarli  Alla funzione oscRXHandler      associata una variabile di stato osc_RxoP  la   quale tiene traccia dello stato di ricezione  a   seconda che stia arrivando l indirizzo  il tipo   di dato oppure il valore  contenuti nel mes    saggio OSC    L arrivo del quarto byte del dato identifica la   fine del messaggio OSC e le variabili oscRxData   e oscRxFloatArg contengono  rispettivamente  il   valore numerico del dato ed il suo indirizzo    Adesso completiamo lo sketch aggiungendo   la 
176. o interno anche una logica per la  correzione degli errori ed una crittografia dei dati a 128 bit           Coordinator  O Router O       D    EndDevice        Fig 12   Esempio di rete PPP      A          Ee Esempio di rete PMP         o                 Fig 14   Esempio di rete P2P           gt  StarLink      4       Mesh Link      cl  AD      Fig 15   Esempio di rete Mesh       3 e _     OO OOOO OOOO OOOO OOOO lEWw O     A ELETTRONICA IN   Dicembre 2010   Gennaio 2011145    Fig 16   Esempio di rete Mesh per la gestione dell impianto  di illuminazione di un edificio di grandi dimensioni        Zone    Lights    Lights       1 K  3 A Adapter ei J  Zone 2 e  lt   Es g RS 232  Eo os Tig  as  802 15 4    Lighting Ballast  amp     Occupancy Sensor    Central Facilities  Management       siii  CI    e tao   e  e ConnectPort    X  i Gateway  Watchport   Warehouse i      USB Camera  d USE     Woatchport   D  i    Bistonca Sensor    n  Pa   annn   n   a       LI  n    X 1 Wire    T 3 e  5 h   a  k   ae      ne      ten ID Fob  Po  XBee   Read         i a n  LA kferalass Mash Hohner   KXBee  lt    Li      u         a Ma        a t a     ai     A n pi      Ji      Zone 3 XBee    Lights Module    Adapter Entry Exit Door       devono esse fatte dall utente prima dell invio  dei dati     Command mode   Inviando i tre caratteri speciali           il mo   dulo XBee si porta in Command Mode e pu    essere configurato da semplici comandi AT  il  che permette di modificare il baud rate  l   ind
177. o ora all utilizzo dei display LCD  grafici  GLCD  sicuramente pi   affascinanti   e flessibili rispetto a quelli di testo  cerche   remo di non addentrarci troppo nello speci   fico  rimandando  chi volesse approfondire   il discorso sul controllo dei display grafici   all   apposito corso gi   pubblicato nei fascicoli  daln TSalnn 12 gt    La prima cosa da dire    che come per i di   splay LCD di testo  i GLCD si suddividono a  seconda del chip adibito al controllo e sono  essenzialmente disponibili sul mercato due  grandi categorie  la prima si basa sull uso    comando funzione ___   _        LiquidCrystal lIcd 12  11  5  4  3  2    lced begin cols  rows     lcd cursor      led noCursor       lcd blink    Attiva il lampeggio del cursore  led noBlink    Disattiva il lampeggio del cursore  Icd display   Attiva visualizzazione sul display    led noDisplay    Disattiva visualizzazione sul display    lcd scrollDisplayRight       lcd scrollDisplayLeft          136 Agosto   Settembre 2010   ELETTRONICA IN    Inizializza il display e lo dichiara come oggetto di nome lcd da usarsi nel programma  Imposta per l oggetto Icd il numero di colonne  cols  ed il numero di righe rows   Attiva visualizzazione del cursore sulla posizione attuale    Disattiva visualizzazione del cursore sulla posizione attuale    Trasla il testo del display di una posizione a destra    Descrizione  Trasla il testo del display di una posizione a sinistra    e3  Ao    oLo        5  O       O     5  Ke   fa   lt 
178. o su un  microcontrollore ATmega168     Arduino Mega  si caratterizza per il fatto che  impiega un processore ATmega1280 a mon   taggio superficiale per la gestione di I O e  memoria addizionale     Gli schemi hardware di Arduino vengono  distribuiti  in modo da poter essere utilizzati  nei termini legali  con una licenza Creative  Commons Attribution Share Alike 2 5  e sono  disponibili sul sito ufficiale Arduino  Per  alcune versioni della scheda sono disponibili  anche il layout e i file di produzione    Il codice sorgente per l Ambiente di sviluppo  integrato e la libreria residente sono disponi   bili  e concessi in uso  secondo i termini legali  contenuti nella licenza GPLv2    La GNU General Public License    una licenza  per software libero     comunemente indicata  con l acronimo GNU GPL o semplicemente  GPL    Contrariamente alle licenze per software  proprietario  la GNU GPL assicura all utente  libert   di utilizzo  copia  modifica e distribu   zione  La GPL ha incontrato un gran successo  fra gli autori di software sin dalla sua crea   zione  ed    oggi la pi   diffusa licenza per il  software libero    Come ogni licenza software  la GPL    un do   cumento legale associato al programma rila   sciato sotto tale licenza  Come tutte le licenze  di software libero  essa concede ai licenziatari  il permesso di modificare il programma  di  copiarlo e di ridistribuirlo con o senza modi   fiche  gratuitamente o a pagamento  Rispetto  alle altre licenze di software libero
179. onoscibili dal  micro  provvede il modulo interno denomi   nato ADC  analog to digital converter   la  risoluzione di 10 bit significa che il numero  associato alla lettura analogica potr   andare  da un minimo di zero fino ad un massimo di  1 023  2    1   Essendo la corrispondenza line   are  possiamo dire che se a 5 volt corrisponde  il numero 1 023  a 2 5 corrisponde 511 e via  di seguito  Va da s   che la risoluzione sar   al  massimo 5 1024 ovvero circa 4 9 millivolt  Il  tempo necessario alla conversione    di circa  100 microsecondi e quindi la massima fre   quenza di campionamento potrebbe essere di  10 KHz  ovvero diecimila campioni al secon   do  La sintassi con cui scrivere l istruzione       analogRead pin   dove pin indica il piedino  del micrcontrollore dal quale sar   eseguita   la lettura  La funzione ritorna il valore della    pIy OSI109       5  O       O     5  y  fa   lt   O   I  de  O  O       PISTA TLEA LF  Eii fpei    ui tt 3    sat   rduino      biecimila    Fa JEL       me  i  ajh E    FEWE TE Eh da  ii csd W    Oira E I       mm  m    ui Je  m m    conversione  che  come detto prima  sar   com   preso tra 0 e 1 023    Come al solito  prepariamo un esempio   per dimostrare l utilizzo della nostra istru   zione  creiamo uno sketch che permetta di  visualizzare sul display la posizione dello  slider_1 tramite un numero tra 0 e 9  Ovvia   mente non    possibile leggere direttamente   il valore del potenziometro  ma come avete  visto dallo schema  i due 
180. ontrasto LCD  Data instruction  Read Write   Enable   Dato   Dato   Dato   Dato   Dato   Dato   Dato   Dato   Chip select 1   Chip select 2   Reset   Tensione per Vo  Retroilluminazione anodo  Retroilluminazione catodo    Eil ELETTRONICA IN   Agosto   Settembre 2010 187    ca       r   ai  x    nl  caccia io    da  i  i  i   an I  n        J  E J  j a      i         E E  H E L  s  I  n  Di  n E  z i  f  ghi    m       i F  ii     d n  E  T z  nh 3  i F     a  n     i  F    LI  ma  na  Ea       HRR Sire    va collegato al pin 3  Vo  sempre del display   Non guasta inserire un piccolo condensatore  da 100 nF tra i  5 V e il GND  il pi   vicino  possibile al display per sopprimere eventuali  disturbi elettrici presenti nei collegamenti   Fatto questo  si passa alla programmazione    comando    GLCD Init NON_INVERTED     GLCD GotoXY x y   GLCD ClearScreen      Graphic Drawing Functions  se color    WHITE    cancella pixel  se BLACK attiva pixel   GLCD DrawCircle x  y  radius  color   GLCD DrawLine x1 y1 x2 y2 color   GLCD DrawVertLine x  y  length  color   GLCD DrawHoriLine x  y  length  color   GLCD DrawRect x  y  width  height  color     GLCD DrawRoundRect x  y  width  height   radius  color     GLCD FillRect x  y  width  height  color   GLCD InvertRect x  y  width  height   GLCD SetInverted invert   GLCD SetDot x  y  color   GLCD DrawBitmap bitmap  x  y  color   Font Functions  GLCD SelectFont font  color    GLCD PutChar character   GLCD Puts string   GLCD Puts_P string   GLCD
181. ote Configuration    PC Settings   Range Test   Terminal Modem Configuration    Modem Parameters and Firmware   r Parameter View Profile Versions    Write   Restore   Clear Screen   Save     T Always update firmware Show Defaults Load    Modem  XBEE Function Set     XB248     ZNET 25 ROUTERZEND DEVICE AT    rA  gt     3  Networking      0  CH   Operating Channel  D  FFFF  OP   Operating PAN ID      234  ID   PANID  BI  IFFE  SC   Scan Channels  DM  3  SD   Scan Duration  E  FF  NJ   Node Join Time  E  0  JV   Channel Verification    Addressing        FFFE  MY   16 bit Network Address       134200  SH   Serial Number High  E  40308035  SL   Serial Number Low  E  0  DH   Destination Address High  E  0  DL   Destination Address Low  D  O ZA   ZigBee Addressing   O  E8  SE   Source Endpoint   O  E8 DE   Destination Endpoint   BI  11  CI   Cluster ID   O   NI  Node Identifier       0  BH   Broadcast Radius    Read parameters  OK    COM31  96008N 1 FLOW NONE XB24B Ver1247    di comunicazioni implementabili sono diverse  e dipendendo dalla versione firmware instal   lata  non    quindi nota a priori la modalit    operativa predefinita  n   tantomeno    possibi   le sapere se supportano il transparent mode   Le versioni di firmware disponibili  Zig Bee          Fig 41   Possibili selezioni del menu Function  Set per un modulo XBee serie 2        UD X CTU  COM31   Remote Configuration  PC Settings   Range Test   Terminal Modem Configuration     Modem Parameters and Firmware   r Parame
182. oto e viceversa  DI    Fig 42   Impostazione di un modulo XBee serie2  come Coordinator     QD X CTU  COM31  cli  RES  Remote Configuration  PC Settings   Range Test   Terminal Modem Configuration     flat Parameters and Firmware     r Parameter View r Profile    uni  ie   Betao   Dren  _s   as       m Awaye update firmware _ 1 Senta    Lt    Modem  XBEE Function  fee x  J  ie 1047 v   I Networking A     CH   Operating Channel F  D OP   Operating PAN ID  E  234  ID   PAN ID  O  1FFE  SC   Scan Channels  B  3  SD   Scan Duration  E  FF  NI   Node Join Time    Addressing     MY   16bit Network Address  O SH   Serial Number High  D SL   Serial Number Low      0  DH   Destination Address High  Bi  0  DL   Destination Address Low  O  O ZA   ZigBee Addressing  D  E8  SE   Source Endpoint        E3  DE   Destination Endpoint     11  C   Cluster 10  E   NI  Node Identifier      0  BH   Broadcast Radius    fi  FF  AR   Aggregation Route Broadcast Time E     o Dagi                                    lee                          COM31  96008N 1 FLOW NONE       Fig  43   Impostazione parametro DL modulo  XBee serie 2     UD X CTU  COM3   o  its  Remote Configuration  PC Settings   Range Test   Teminal Modem Configuration     r  Modem Parameters and Firmware   eta r Profle     r Versions               Read    wie   Restore     Clear creen   Save   Domioadnon  TT Always update fimware Show Defaults    t       Modem  XBEE Function Set i     KB248 v  IZ ZNET 25 COORDINATOR AT   r3 047 El    
183. ove     2009          basata su di un microprocessore AT   mega328  in essa sono presenti 14 piedini  input output digitali  di cui 6 utilizzati  come uscite PWM   6 ingressi analogici    un oscillatore con quarzo a 16 MHz  una  connessione USB  un ingresso per l   alimen   tazione  un ICSP header  In Circuit Serial  Programming  ed un pulsante di reset   Tutto ci   che    necessario per supportare il  microprocessore    contenuto nella scheda   Per iniziare a lavorare con essa    sufficiente  connetterla ad un computer con un cavo  USB oppure tramite un alimentatore AC   DC o una batteria     Alimentazione   La scheda Arduino Duemilanove pu    essere alimentata tramite la porta USB del  PC  oppure con un alimentatore esterno    la sorgente di alimentazione    selezionata  automaticamente    L alimentazione esterna  non USB  pu    arrivare da un alimentatore AC DC non  stabilizzato  con plug da 2 1 mm  oppure  da una batteria  usare i contatti Vin e GND  per la connessione     E    consigliabile alimentare la scheda con  una tensione esterna da 7 a 12 volt in quan   to con un potenziale inferiore il regolatore  interno non riesce a fornire i 5 volt neces   sari mentre  con una tensione superiore  si  rischia il surriscaldamento     pIy OS109    z  5  O       O     3  y  i    lt   O  W       o  O       GATE_CM             50    NDT2S55    IC4  MC 332690 5 0A    Pl CG  STI    GNO GNU GND    Arduino 2009    USBUCC RESET EN    Schema elettrico di Arduino 2009           RESET     
184. per SD Card  oppu   re per microSD  le Shield vengono proposte  con traslatore di livelli sia a partitore resistivo       E    Fig 6   La SD Card  Shield inserita  sulla scheda Seeeduino     T    Fig 8   SD Card Shield schema elettrico        150 Febbraio 2011   ELETTRONICA IN Ei                     pIy OSION    ouin       O     5  y  Sea   lt   O  W  fa  o   O       Fig 9   Propriet   di una SD Card da 2 GB  visualizzate in Windows       Propriet     Dico rigala  E  aii dt Thumette  Ni    Ts Disg roi  Fia stero FAT    E oaro uiian Ghie    1EM  T byi    ua m LETS 97 b53 yi          sia a logica integrata  Per la nostra applicazio   ne abbiamo utilizzato la SD Card Shield della  SeeedStudio  www seeedstudio com  commer   cializzata dalla ditta Futura Elettronica  codice  7300 ARDUINOSDLETT   Questa unit     molto semplice e dal costo contenuto  permet   te il cablaggio veloce di una SD Card standard  con Arduino  Il piccolo deviatore presente  sulla scheda permette di scegliere se prendere  l alimentazione per la SD Card dal PIN9 o dai  3 3 volt di Arduino  A seconda della libreria  utilizzata  saranno supportate MMC  SD o  SDHC  come esempio per questo articolo  abbiamo utilizzato una SD Card standard da  2 GB  Se la inserite in un PC  tramite appo   sito lettore esterno  se non gi   integrato nel  PC  e andate a visualizzare le propriet   della  periferica  mostrata da Windows come Disco  Rimovibile  troverete una schermata come  quella visibile nella Fig  9    Oltre allo sp
185. possibilit   di attivare un LED  connesso   all uscita 2 di Arduino  tramite il pulsante   toggle1 di TouchOSC  Aggiungiamo anche   la possibilit   di attivare da Arduino il Led1   di TouchOSC e sempre da Arduino andare a   modifica la scritta su Labell    Lo sketch si chiama wiflyosc_02 e attraver    so Serial monitor potete inviare i seguenti   comandi      carattere    a     attiva LED1 su touchOSC      carattere    b      spegne LED1 su touchOSC      carattere    s     scrive su Labell di touchOSC  la scritta    ciao         carattere    d      scrive su Labell di touchOSC  la scritta    mondo        In questo sketch sono presenti le procedure  oscSendFloat e oscSendString che provvedono  all invio di messaggi OSC verso iPhone        AI STAZAZALA ZA alla la la asa sla lalla ala tale ala ls sla A PT E O als ta lalale ts alals alata tata ta ala a ss als a tAzA ALA Lala La e a sla ls EE VA lati    Ad esempio  per accendere il led1 su touchO   SC    sufficiente scrivere    oscSendFloat      1 led1     1 0    mentre la riga di codice oscSendString      1 la   bell        ciao     consente di modificare la scritta  attuale su label1 di touchOSC con la scritta  ciao   Per la ricezione dei messaggi    stata predi   sposta la procedura oscReceiveFloat char   msg   float value  che viene richiamata ogni qualvolta  arriva un messaggio da touchOSC    Nel nostro caso    utilizzata per attivare  tra   mite il pulsante toggle1 di touchOSC  il LED  collegato al contatto 2 di Arduino  Lis
186. r down  lt  1uA Power down  lt  4puA 5  Velocit   di trasferimento RF   250 kbps 250 kbps  Velocit   trasferimento UART   1 2 k   1M baud 1 2 k   1M baud O  estensioni Linee di A D e digitali   Linee di A D e digitali  Periferiche indirizzabili 65 000 65 000  Numero di canali disponibili   16 15  alimentazione 2 1   3 6V 2 7  3 6 V       Fig 9  Modulo  XBee Serie2  con attacco    anche agire come intermediario per il rilascio  verso il nodo centrale di informazioni da altri  dispositivi   e End Device   ZED  anche detto Reduced  Function Device  RFID o semplicemente  nodo      un dispositivo client  raccoglie informazioni  e le invia al Coordinator o al Router  ma non  opera come intermediario per altri dispositivi      l elemento pi   semplice ed economico  soli   Fig 10 tamente destinato ad oggetti quali interruttori   Modulo TV  radio  lampade  elettrodomestici  ecc   Cna Normalmente fa parte di una sottorete a stella    CON ARACCO di tipo point to multipoint verso un Router o    U FL per  antenna esterna  Coordinator     per antenna  esterna     RETI IMPLEMENTABILI CON I MODULI XBEE  Di seguito vediamo quali sono i tipi di rete  wireless implementabili con i moduli XBee     Rete point to point  PPP   In questa rete due dispositivi dialogano tra  di loro  Per migliorare l immunit   ai disturbi  ed evitare conflitti che possano ritardare le  Fig 11 comunicazioni     possibile assegnare a questi   b     o aj due moduli un canale trasmissivo differente  rispetto agli altri  L
187. r facilitare i collegamenti con  dei semplici spezzoni di filo  Se volessimo  collegare un potenziometro all ingresso ana   logico 0 potremmo fare riferimento alle figure  4 e 5  Un altra alternativa    l utilizzo della  PROTOSHIELD  che similmente alla Danger  board     una scheda aggiuntiva da inserire  nel connettore della MainBoard  creandone di  fatto un estensione  A differenza della Dan   ger  non sono gi   connesse le varie periferiche  come i pulsanti i LED ecc   per      presente  un   area con delle piazzole alle quali sarete voi  a decidere cosa collegare e quali collegamenti  con il microcontrollore fare  Tale soluzione of   fre senz altro pi   flessibilit   di quella permes   sa dalla Danger board  in quanto potete anche  modificare a vostro piacimento le periferiche  togliendole e inserendole al bisogno    Bene  con questa lezione    tutto  vi aspettiamo  alla prossima puntata        pIy OS109       5  o           RA Il   a ai   n      p     sa       j    DUI   ti il il N          i   La      f    rdui    Scopriamo come gestire display a cristalli  liquidi alfanumerici e grafici  vedendo alcuni  sketch di esempio validi per i pi   comuni    dell ing   MIRCO    SEGATELLO    iamo giunti ormai alla terza puntata del   corso su Arduino  questa volta l   argo    mento della lezione sono i display  non  solo quelli di testo ma anche quelli grafici   Faremo una carrellata di applicazioni con di   versi tipi di dispositivi  sempre in modo molto  semplice e proponendo e
188. rammazione via  USB con connettore micro ed alimentazione  esterna tramite connettore JST     dovrete premere fisicamente il loro pulsante  di reset appena prima di fare clic su    Uplo   ad    nel software  nelle altre schede il reset     automatico   Il software di sviluppo non ha la necessit    di creare file intermedi  perch   partendo  direttamente dal codice sorgente crea  imme   diatamente il codice macchina da inserire nel  microcontrollore  il tutto  in un unico passag   gio  Esiste comunque il pulsante di compila   zione che provvede a verificare la correttezza  del codice  Qualche secondo dopo il  termine del processo di upload   vedrete il LED color    CARATTERISTICHE DI SEEEDUINO  Seeeduino v2 12    una scheda compati    bile con Arduino Diecimila e basata sul  microcontrollore ATmega168  La pin out  i  fori di fissaggio e le dimensioni sono compa   tibili al 100   con quelle di Arduino Dieci   mila  La scheda dispone di 14 I O  di cui sei  possono essere utilizzati come uscite PWM    8 ingressi analogici  16 kB di memoria flash  1  kB di SRAM e 512 byte di memoria EEPROM   Rispetto alla scheda Arduino Diecimila  pre   senta alcune differenze di seguito elencate    1  Gli stessi ingressi e uscite sono disponibili  su due connettori differenti    2  Il microcontrollore ATmega168 versione  DIP    stato sostituito con la versione SMD   ci   ha permesso di ottenere pi   spazio sul  PCB  semplificando l inserimento delle  schede dei vostri prototipi sui connettori    
189. re nella posizione DLINE sia per programma   re Arduino sia per testare gli sketch  in questo  modo non ci sar   alcun conflitto con i dati       150 Aprile 2011   ELETTRONICA IN Eil    Fig  5   GPS shield e  relativi connettori        provenienti dalla USB  che invece impegnano  le linee TX ed RX  pin 0e 1     Assicuratevi che il modulo EM406 non tocchi  le piazzole sottostanti lo stampato della GPS   shield e in caso contrario isolatelo con della  plastica    A questo punto potete occuparvi della pro   grammazione  obiettivo della quale    leggere  la stringa che esce ogni secondo dal modulo  EM406  estrapolando le varie sentenze con   tenenti i dati  Aver utilizzato la piattaforma             0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 e 0    e e    e e 0 e 0 0 0 e 0    e e e e e    e Ss e 0 e 0 0 0 e e e    e e e e e 0 e 0    0 e 0    e e Ss e S    e 0 e e e 0    0 0 0 e Ss e e e s e e 0    e e 0 e e    e e s e e    e e e 0 e 0    e e 0 e e e e e e    e 0 e e e 0 e 0 0 e e 0 e e 0 es e e 0 e 0 0 0 0 0 0 0 0     TITLE  GPSShield vi J    Dater 12 15 2009 15460 Pm    O  O  uu  O  O   gt      O    ouin              O     5  y      lt   O  Y   fa  O  O       di iiki    Eor  chi Pda    di Frelegge Fig  7   Librerie      Firmata aggiunte   bH       Arduino ci assicura la disponibilit   in rete di    un apposita libreria che ci assolva dal compito    di dover redigere un complicato software    Le librerie che andiamo ad utilizzare si chia   mano NeoSoftSerial e TinyGPS  sono state  cre
190. re occupa  lo spazio di un byte  ma lo spazio occupato su  disco sar   pari alla dimensione di un cluster   La FAT in s   mantiene la traccia delle aree   del disco disponibili e di quelle gi   usate dai  file e dalle directory  la differenza fra FAT12   FAT16  FAT32  ExFAT consiste appunto in  quanti bit sono allocati per numerare i clu   ster del disco  La prima versione del FAT fu   la FAT12  un file system per floppy disk  i   cui indirizzi per i cluster erano appunto a 12  bit e per questo poteva gestire dischi grandi   al massimo 32 MB  Nel 1987 arriv   il forma   to che ora viene chiamato FAT16 e che ha i    Tabella 5   Tipo di formattazione per una SD Card  riferito a sistemi operativi Windows      ele BA   FAT32 FAT16 FAT12    Massima capacit   512 TB 32 GB 2 GB 16 MB  Massimo numero di file eo  DEL 4 194 304 65 536  directory   Massimo numero di cluster 2 64 2 32 2 16 2 12  Massima lunghezza nomi dei file 255 255    ramaan ISS 254       A ELETTRONICA IN   Febbraio 2011151    Tabella 6   Struttura di un File system     Settore Informazioni FS Riservati  di avvio  solo FAT32   opzionale     FAT N  1  cluster a 32 kB e 16 bit di indirizzamento  ci    fiss   il limite massimo di una partizione in 2  GB  Per superare i limiti sulla dimensione dei  volumi imposta dal FAT16  Microsoft decise  di creare una nuova FAT chiamata FA T32   caratterizzata da indirizzi dei cluster a 32 bit   anche se in realt   si usano solo 28 bit    Il file system FAT    strutturato in quattro  
191. re una funzione  questa  soluzione la trovate meglio descrit   ta nel Listato 5  Se avete modo di  scaricare il data sheet di questo  backpack  noterete che risulta com   patibile anche con un altro display     Huge Graphic LCD 160x128 pixel     di grandi dimensioni e con riso   luzione maggiore  La gestione a  livello software avviene nello stesso  modo in quanto  ovviamente  la  scheda Arduino dialoga ancora con  il backpack  che riesce a gestire il di   splay in completa autonomia  Con la  retroilluminazione spenta la visibili   t      ridotta  quindi abbiamo previsto  un apposito scketch  display_05  che  imposta anche una minima retroil   luminazione  Il Backpack viene  normalmente fornito compatibile  con il display 128x64  ma    possibile  impostarlo per funzionare con il  display 128x160  allo scopo basta  rimuovere il jumper posto sullo  stampato  Tale jumper    davvero  minuscolo ed    realizzato con una  piccola saldatura  una goccia di  stagno  che dovr   essere rimossa  con molta attenzione  Bene  anche  per questa puntata    tutto  avete  tempo fino alla prossima per fare  tutti gli esperimenti e le prove  pratiche descritte  E    Le due piazzole da cui rimuovere il cortocircuito a stagno per  impostare la scheda Arduino in modo da farle controllare un display  da128x160 pixel  i    goa    ine  iti  7 de  aj Tie EE  mj eT i   or r    BESTIE          A ELETTRONICA IN   Agosto   Settembre 2010 143       Impariamo a gestire gli attuatori    dell ing   MIRCO  SEGATE
192. regolata con la  tecnica del PWM  Ricordiamo in breve che   con il termine PWM  si intende una tecnica di  modulazione in cui il segnale in uscita  in que   sto caso la tensione al motore  viene applicata  e poi tolta ad intervalli regolari e molto velo   cemente  Maggiore    il tempo in cui    presente  la tensione in uscita  rispetto al tempo in cui      assente  pi   il motore girer   velocemente e  viceversa    La ArduMoto si installa direttamente al di  sopra della scheda Arduino  con un cablaggio    predefinito e riepilogato nella Tabella 2    Allo scopo    necessario che vi procuriate degli  strip maschio passo 2 54 ed una morsettiera  per contatti passo 2 54 oppure 3 5 mm per il  collegamento dei motori  la loro saldatura non  presenta alcuna difficolt      Per la scelta dei motori  da poter collegare   dovete considerare che l alimentazione viene  prelevata dalla linea Vin della scheda Arduino   che a sua volta coincide con l alimentazione  esterna applica al Plug di alimentazione e pu    avere un valore compreso tra 7 e 14 V  Per  quanto riguarda l assorbimento dei motori  ri     Motor A Jp3 Avvolgimento A        Motor A Jp3 Avvolgimento A   Motor B Jp3 Avvolgimento B   Motor B Jp3 Avvolgimento B     GND Jp1 Massa alimentazione motori   M  Jp1 Alimentazione positiva motori  3 30volt    GND Jp4 Massa integrato A3967    5V Jp4 Alimentazione integrato A3967  per impostazione di fabbrica     ricavata dalla tensione motori tramite stabilizzatore interno    Cur Adj Impost
193. resso codici di istruzione  Basso  ingresso dati  Alto  lettur i      Lal dii dati   8 E Segnale di abilitazione   9 DBO   10 DB1   11 DB2   12 DB3            a sui Linea di bus dati   14 DB5   15 DB6   16 DB7       eI  OS109       3  O       O     5  y  k    lt   O  Uh     O           e LCD R W  gt  GND    e LCD Enable   pin digi   tale 11    e LCD D4   pin digitale  9   e LCD D5   pin digitale  4   e LCD D6   pin digitale  3    e LCD D7   pin digitale  2     Oltre a ci   bisogna provve   dere a collegare l   alimenta   zione ed il trimmer per la  regolazione del contrasto  I  pin DO  D1  D2  D3 pos   sono essere lasciati liberi  oppure posti a massa    A questo punto avete il  vostro display cablato col  microcontrollore  ma non  ancora programmato  se   lo accendete  non notere   te nulla se non dei pixel  parzialmente attivi    Al momento non risulta  tarato neppure il contra   sto           Arduino    Analog in    Fig  1    e createChar      Per completezza riportiamo qui di seguito Examples  anche tutti i comandi disponibili in fase di e Hello World  programmazione e gli esempi disponibili e Blink  nell ambiente di sviluppo  e Cursor  Function e Display    e LiquidCrystal     e begin     e clear     e home     e setCursor     e write     e print     e CUrSOr     e noCursor     e blink     e noBlink     e display     e noDisplay     e scrollDisplayLeft    e scrollDisplayRight    e autoscroll     e noAutoscroll     e leftToRight     e rightToLeft      e Text Direction  e 
194. rie 2 e dal menu a tendina  Function_Set si potranno leggere le varie  impostazioni per il modulo  per impostazione  predefinita  il canale trasmissivo    il D ed il  PAN ID    234  Due moduli identici  con le  stesse impostazioni predefinite  non potranno  comunicare tra di loro    Lasciate un modulo impostato come ZNET  2 5 ROUTER END DEVICE AT ed impostate  l   altro come ZNET 2 5 COORDINATOR AT   Fig  42   Per impostarlo    sufficiente selezio   nare questa dicitura sul menu a tendina e fare  clic su Write  A questo punto il modulo End  Device potr   inviare dati al modulo Coordi   nator  ma non viceversa    Per permettere al Coordinator di inviare dati    154 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A    eI  OS109       5  O       O       gt          lt q  O  W       O  O          all   EndDevice  possiamo ad esempio imposta   re il parametro DL 0xFFFF  questo abilita la  trasmissione a tutti i moduli  broadcast mode   come visibile nella Fig  43    Se invece vogliamo che il Coordinator invii  dati solo al nostro End Device  dovremo  impostare    e DHCOORDINATOR SHENDDEVICE    e DLCOORDINATOR SLENDDEVICE     Esiste anche una terza possibilit    che consiste  nell   utilizzare entrambi i moduli come ZigBee  ROUTER END DEVICE AT  figure 44 e 45   con parametri    e DHA SHB      DLA SLB    e DHB SHA    e DLB SLA     Ora i moduli sono in grado di dialogare tra  loro  in questa modalit   i dati inviati sul TX di  un modulo  arrivano direttamente sull   RX del  modulo rem
195. rima libreria che andiamo a descrivere si  chiama SDuFAT  sviluppata da David Cuar   tielles e disponibile all indirizzo http   blushin   gboy net p SDuFATT   dove    reperibile nel file  chiamato SDuFAT zip    La libreria SDuFAT    compatibile con le  SD Card standard formattate FAT16 con  protocollo di comunicazione SPI e permette  di leggere e scrivere su file gi   esistenti  Per  poterla utilizzare  scompattate il file e copiate  l   intera cartella SDuFAT nella cartella libra   rie del software Arduino  al primo avvio vi  ritroverete con la disponibilit   della libreria e  relativo esempio    Prendete la SD Card  inseritela nel PC e  verificate che sia formattata in modalit   FAT   di solito quelle appena acquistate sono gi   for   mattate  ma potete tranquillamente riformat       Enremattazione di SD AGE  E     ic    pia pprteri   MAT impostazione presefirita   Dragoni rit   di aboca sona    Borgina predefinte deposte    EEren ci valuta  SO 08    gpa di formattazione       Fig 11   Formattazione della SD Card     eI  OS109    z  5  O       O     5  y  fn   lt   O  W  fa  O  O       Fig 12   Il nostro file di prova  hola txt        tarle  purch   in modalit   FAT e in un unica  partizione  Non    possibile gestire file se non  nella Root della scheda    Create all   interno della SD un    Documento   di testo    di nome hola txt e scrivete all   interno  di questo file un certo numero di caratteri    ad esempio 20 caratteri    spazio     Attenzione   utilizzate un editor
196. ripheral Interface Bus  di  americana Sparkfun ed    basato sul modulo Arduino  che assicura una velocit   di trasferi   wireless prodotto dalla Roving Network di mento ben superiore rispetto a quella garanti        ta dalla trasmissione asincrona dell   UART  Il  convertitore da UART a SPI siglato 5C16I5750   permette la comunicazione tra il modulo  UART ad alta velocit   dell   integrato RN 131G   con la porta SPI di Arduino  facente uso dei  segnali CS  MOSI  MISO  SCLK che utilizzano  podi Azio    L interfaccia UART di Arduino rimane cos   a  disposizione per la comunicazione con il PC   La differente configurazione del convertitore  SC16IS750 ha portato all esistenza in commer   cio di tre differenti versioni dello stesso WiFly  shield    La versione pi   recente  Revision 3     distri   buita dalla ditta Sparkfun  www sparkfun   com products 9954   viene contraddistinta dal  codice 9954 e riporta sul lato inferiore la data     6 15 10     In questa versione    presente   un pulsante di reset ed il quarzo utilizzato  per l    SC16IS750    da 14 MHz  La versione  meno recente  Revision 2   www sparkfun com   products 9367  ha codice 9367 e si riconosce  per la presenza del quarzo a 14 MHz e per   un piccolo dispositivo metallico rettangolare  vicino ai pin 6 e 7  riportante la scritta    14       sullo stampato non    presente alcuna data  stampigliata e non c    il pulsante di reset  La  primissima versione  Revisionl  si riconosce  per la presenza di un quarzo da 12 MHZ
197. sata da Arduino     Utilizzare le indicazioni Piportate sulla taskoarr in basso all  avvio     del programma    E N N E E e eda talea se 0      arduino  pinMocelpin out  Arduino  OUTPUT     arduino pinMode pin_in  Arduino  INPUT           void draw        background  L orT  s  stroke on         Modifica colore shape qadrato a seconda del livello logico dell   uscita  if  values 0     Arduino HIGH   mid ceonde  else  ono  rect 40  40  40  40         Modifica colore shape cerchio a seconda del livello logico dell   ingresso  if  arduino digitalRead pin_in     Arduino HIGH   TWNbcconos  else  TECO  CIMMipse  1506070407405    AM Controllo luminosicta LED   rillleonstrainimouseX   2  0  25592     rect 40  140  140  40     arduino  analoghreitel9  constrainlmouseX   2  0  255  3    void mousePressed     i     Verifica sel premuto pulsante del mouse sopra la shape quadrato     nel qual caso inverte stato pin di uscita    if  mouseX gt 40  amp  mouseX lt 80  amp  mouseY gt 40  amp  mouseY lt 80       if  values 0     Arduino LOW     arduino  digitalWritelMin  out  Arduino sG  s  values 0    Arduino HIGH      else 4  a fduinodiginta lWMiritte  pimnc0ut  Arduino s  LOW  s  values 0 l   Arduino s LON s       ELETTRONICA IN   Novembre 2010 149       Fig  4      i t ha Appiani ppp bep double ciale     i  reti  Cimiteri    Pul free Frere mode     2 PR     a       Fig  5    A questo punto passiamo al lato PC  per  prima cosa dobbiamo scaricare e scompatta   re Processing dal sito di riferim
198. sempi pratici che  riguardino la parte sia hardware che software   I primi dispositivi che andremo a descrivere  sono i display di testo  immancabili in svariate  applicazioni e molto semplici da utilizzare   grazie alle librerie gi   pronte  Prima di adden   trarci nei dettagli  facciamo una breve intro     modelli reperibili in commercio     duzione su questo tipo di display  non tanto  dal punto di vista costruttivo  quanto riguardo  al loro utilizzo  Partiamo dicendo che tutti i  display LCD di testo si basano su un chip de   coder  che  letti i dati in ingresso  provvede a  gestire i pixel del display in modo appropria   to     proprio il tipo di decoder usato all   inter   no del display che ne determina l utilizzo e le  funzioni  non tanto la grandezza o il numero  di righe     quindi importante  quando si acqui   sta un display LCD  sapere quale chip decoder  lo governa  perch   da questo dipender   la sua  gestione a livello software  A livello hardware        Tabella 1   5V  GND  VLCD  Data  WR RD    Alimentazione positiva   Massa   Tensione negativa usata per la regolazione del contrasto  8 linee di dati   Linea per la lettura scrittura per LCD   Comando di abilitazione display       RS Linea per impostazione dati comandi    invece  le cose sono pi   complicate  perch    ogni casa produttrice  anche a parit   di chip  decoder montato  personalizza la piedinatura  dei contatti  rendendo a volte inutilizzabili  display privi di documentazione  Per questo  corso usere
199. so hardware  DTR  della FT232L     connessa alla linea di reset della ATmega328  attraverso un condensatore da 100 nanofarad   Quando questa linea viene alimentata con una  tensione troppo bassa  la linea di reset assume  un livello sufficiente ad impartire il reset della  scheda  Il software Arduino utilizza questa ca   ratteristica per caricare codice semplicemente  premendo il pulsante di caricamento  uplo   ad   Ci   significa che il bootloader pu   avere  un timeout pi   breve  mentre l abbassamento  del DTR pu   essere coordinato con l   inizio del  caricamento    Questa configurazione ha altre implicazioni   quando la Duemilanove    connessa ad un  Mac o ad un PC con sistema operativo Linux   ogni volta che viene fatta una connessione   via software  attraverso la porta USB  essa   si re inizializza  Per il mezzo secondo  circa     pIy OS109    z  5  O       O       gt   Ke   de   lt q  O  W       O  O       successivo  sulla Duemilanove sar   attivato il  bootloader    Poich   la programmazione    stata fatta con la  caratteristica di ignorare i dati non formattati  correttamente  ad esempio  tutto ci   che non  ha a che fare con il caricamento di un nuovo  codice  intercetter   i primi pochi byte dei dati  spediti alla scheda quando viene aperta una  connessione  Se all    Arduino    connessa una  scheda aggiuntiva che utilizza questa porta  dati per comunicare con il microcontrollore      importante che il software con cui comuni   ca attenda circa un secondo dopo l
200. ssai agevole  dovendo dialogare con un driver     intelligente    al quale    sufficiente indicare la direzio   ne di rotazione e fornire un impulso per ogni step che  si vuole ottenere  Per come funzionano  i motori pas   so passo possono ruotare il proprio perno anche solo  per porzioni di giro  con estrema precisione    motori  passo passo si dividono in due categorie  unipolari e  bipolari  a seconda della configurazione degli avvolgi   menti interni  In quelli unipolari sono presenti quattro  avvolgimenti e la corrente li percorre in un solo senso   il cablaggio consiste in quattro fili  uno per ciascun  avvolgimento  pi   un filo comune  5 fili totali  oppure  quattro fili  uno per ciascun avvolgimento pi   due fili  ciascuno il comune di due avvolgimenti  6 fili totali    In quelli bipolari sono presenti solo due avvolgimenti  ma la corrente pu   andare in entrambi i sensi  il ca   blaggio consiste in due fili per ciascun avvolgimento   per un totale di 4 fili        cordiamo che in un motore elettrico oltre alla  corrente assorbita in funzionamento normale     importante considerare anche la corrente  massima richiesta in fase di avvio  corrente di  spunto  che pu   arrivare anche a 3 o 4 volte  la corrente nominale  Se prevedete un utilizzo  intenso dei motori con continue accelerazio   ni e frenate     importante che anche questa  corrente non superi il valore consigliato dei 2  A  Per tale ragione sceglierete dei motori con  corrente nominale non superiore a 500 mA
201. ssima rotazione a destra  il  valore 90 indica la posizione centrale  L esatta  corrispondenza tra valore in gradi inviato e  l effettiva rotazione del servo viene specifi   cata dai valori Max e Min nella dichiarazione  dell   istruzione attach    tali valori devono esse   re ricavati mediante prove pratiche  in quanto  possono anche variare da servo a servo        Sintassi  servo write angle    Parametri servo  variabile di tipo servo   Angle  valore corrispondente alla rotazione in    gradi     ISTRUZIONE WRITEMICROSECONDS    Imposta la posizione del servo come valore  relativo alla durata dell impulso espressa in  microsecondi  Normalmente un valore 1000  corrisponde alla massima rotazione a sinistra   2000 alla massima rotazione a destra ed il va   lore 1500 corrisponde alla posizione centrale   neutro    Sintassi  servo writeMicroseconds uS    Parametri servo  variabile di tipo servo    uS  valore in microsecondi relativo alla posi   zione del servo    Installando il software Arduino 18  vi ritrove   rete con due esempi gi   pronti relativi all   uti   lizzo dei servo  il primo  denominato Knob   permette di posizionare il servo a seconda          void setup      d      void loop    dal    myservo write pos    delay 15         crea un oggetto di tipo servo con nome myservo       yariabile contenente il valore cella posizione cel seryo    myservo attach 9      associa l   oggetto myservo al pin 9       loop partendo da 0 fino a 180 gradi       a passi di un grado       i
202. sso all uscita 2 di Arduino    Un ulteriore sketch denominato wifly_04 pde  permette di interagire con una pagina web  contenente un menu a tendina  il cui valore  selezionato sar   inviato ad Arduino    Ulteriori esempi sono forniti assieme alla  libreria e riguardano le applicazioni di Web_  Client gi   descritte in occasione dell puntata  del corso dedicata all   Ethernet Shield   L utilizzo della WiFly non si limita certamente  a quanto qui descritto  ma esistono altri im   pieghi di un certo interesse  uno di questi    la  gestione di una scheda Arduino tramite un te      TEOR                         LED_OFF      Stato LED  OFF      Intemet   Modalit   protetta  attivata       File Modifica Visualizza Preferiti Strumenti  GW Preferiti     3 E  Siti suggeriti v  Tentativo connessione con SPI UART      G http   192 168 0 100 75      Connesso a SPI UART                  WebServer tramite WiFly Shield WebServer tramite WiFly Shield    Tentativo connessione con SPI UART     Connesso a SPI UART     t  B       FIN    2 j ds 4  it   ie se o  __ Seleziona  Avvio impostazioni rete wireless       IP  192 168 0 100   SOGET   Sel 2 HITP 1  GET   Sel 1 HTTP 1 1  GET   Sel 3 HTTP 1 1    IP  192 168 0 100   GET   HTTP 1 1   GET   L LED_ ON ETIP 1 1  GET   L LED OFF HITP 1 1  GET   L LED_ON HTTP 1 1  GET   L LED OFF ETIP 1 1    Fai la tua scelta    Seleziona      Send          V  Autoscroll   Internet   Modalit   protetta  attivata       Noline ending   9600baud       Fig 13   Visualizza
203. stabilizzatore di Dispone inoltre di 2 kB di SRAM ed 1 kB di  tensione interno alla scheda ed    utile per EEPROM utilizzabile  quest   ultima  per il sal                             A ELETTRONICA IN   Marzo 2011 151       vataggio di dati permanenti  mantiene i dati  anche in assenza di alimentazione     Quanto agli ingressi e alle uscite  ciascuno dei  14 pin di I O pu   essere usato come pin di  input o output e pu   erogare   assorbire una  corrente massima di 40 mA  inoltre dispone di  una resistenza di pull UP del valore di 20 50  kohm  attivabile tramite programmazione    Arduino UNO dispone di sei ingressi  analogici  A0 A1 A2 A3 A4 e A5  che per  impostazione predefinita hanno risoluzione di  10 bit ed accettano una tensione compresa fra  0 e 5 volt  tuttavia    possibile usare l ingresso  Aref per modificare il range di misura   Arduino UNO prevede degli interrupt esterni  localizzati ai pin 2 e 3  questi possono essere  configurati come trigger per eventi esterni   come ad esempio il rilevamento di un fronte  di salita o di discesa di un segnale in ingresso     Il modulo PWM del microcontrollore ATme   ga si pu   assegnare ai pin 3  5  6  9  10  e 11   Questi ultimi possono essere configurati via  software per generare segnali PWM con riso   luzione di 8 bit  Tramite un semplice filtro RC     possibile ottenere tensioni continue di valore  variabile    E veniamo alle porte di comunicazione    la seriale fa capo ai pin TX 1  e RX 0  che  sono i corrispondenti dell  
204. stata  associata la comunicazione con il modulo   Avviate l   IDE di Arduino  aprite Serial moni   tor sulla COM  assegnata all   adattatore Blue   tooth  con il Baud Rate di 38 400 ed attendete  l   arrivo dei dati acquisiti da Arduino  Notate  che    come se Arduino fosse collegato via  cavo USB  ma in pratica    connesso in modali   t   wireless  Non essendo cablate le linee RTS e  CTS dal modulo Bluetooth Bee verso Ardui   no  non sar   possibile la programmazione di  Arduino tramite questo collegamento  BI    A ELETTRONICA IN   Giugno 2011 159    Arduino    dell ing  Sperimentiamo la realizzazione di una  MIRCO connessione Wi Fi  resa possibile dallo  SEGATELLO specifico modulo WiFly Shield  prodotto  dalla Rovin Network e compatibile anche  con alcuni cloni di Arduino  Dodicesima e  ultima puntata     n questa puntata del corso su Arduino sigla RN 131G  Questo modulo  operante in   ci occupiamo dello shield denominato logica a 3 3 volt  potrebbe esse interfacciato   WiFly  che permette ad una scheda con il modulo seriale  UART  di Arduino  ma  Arduino  anche alle versioni    clone    con ci   non garantirebbe la possibilit   di utilizzare  essa compatibili  di potersi connettere ad una la massima velocit   di comunicazione  Per  rete wireless secondo lo standard 802 11b g  sfruttare appieno le prestazioni del modulo  Lo shield che abbiamo utilizzato per que  wireless    preferibile interfacciarlo con la  sta occasione    stato sviluppato dalla ditta porta SPI  Serial Pe
205. sto ecc  sono state implementate  cos   come  la messaggistica relativa agli errori ed allo  stato di lavoro  La toolbar per le funzioni pi    frequenti comprende i comandi visibili nella  Tabella 3  I menu riepilogati nella barra dei  menu soprastante  File  Edit  Sketch  Tools   Help  permettono di accedere alle funzioni  pi   evolute e meno frequenti  come ad esem   pio la selezione della scheda Arduino da noi  utilizzata  Di seguito descriviamo quelle pi    importanti    Edit   e Copy for Discourse  copia il codice selezionato    e Copy as HTML  copia il codice selezionato e  lo rende disponibile per il trasferimento in  una pagina Web     Sketch  e Verify Compile  compila e verifica gli errori  nel listato   e Import Library  aggiunge una     include statements nel codice         Listato     19   libreria allo sketch attuale inserendo          Danger_01     amp eggiio EDI  Per DangerShield su Arduino Duemilanove   i  int ledPin   6     LED connesso Rea  void setup       d inizializza il pin del LeD come uscita digitales  pinMode ledPin  OUTPUT            Viene dichiararco un loop senza Uscita     d Le istruzioni interne al loop vengono continuamente eseguite    void loop        digitalWrite ledPin  HIGH      Accende il LED  delay  1000   lt   digitalWrite ledPin  LOW      spegne il LED  delay LOOO   lt     aspetta un secondo    114 Luglio 2010   ELETTRONICA IN      aspercca un secondo    e Show Sketch Folder  apre la cartella  contenente I file dello sketch attuale   e A
206. ta  detta anche sentenza      quindi la seguente      GPGGA 161229 487 3723 2475 N 12158 3416 W 1 07 1 0 9 0 M    0000 18    Ma veniamo all utilizzo pratico di questo  ricevitore GPS  siglato EM 406A  reperibile  presso la ditta Futura Elettronica  www futu   rashop it  con codice 8160 EM406A  completo  di cavetto di collegamento  Per chi volesse  utilizzarlo direttamente su di una breadboard  per fare degli esperimenti  consigliamo  di eliminare il connettore di uscita   in dotazione e rimpiazzarlo  con uno pi   adatto  se invece  intendete realizzare da voi  uno stampato per ricevere   i segnali da questo modu    lo  potete trovare  sempre   a catalogo Futura Elettro   nica  il relativo connettore   codice 7300 CONNEMA406A            Tabella 3   GGA data output     Message ID  GPGGA GGA protocol header  UTC Time 161229 487 hhmmss sss  Latitude 3723 2475 ddmm mmmm  N S Indicator N N north or S south  Longitude 12158 3416 dddmm mmmm  E W Indicator W E east or W west  O no fix  1 fix OK  GPS SPS Mode   Position 1 2 fix OK  Differential GPS   Fix Indicator SPS Mode   4  fix OK  GPS PPS Mode   fix valid    Satellites Used 07 Range O to 12  HDOP 10 Horizontal Dilution of  Precision  MSL Altitude 9 0 meters  Units M meters  Geoid Separation meters  Units M meters    Age of Diff  Corr  Null fields when DGPS is    not used  Diff  Ref  Station ID 0000  Checksum  15   lt CR gt  lt LF gt  End of message termination    Per interfacciare correttamente questo modulo  con la scheda Arduino
207. tato 2    Facilmente  potrete adattare questi sketch per  altri generi di applicazione  Ad esempio  oltre  al controllo in remoto di svariati tipi di robot   l interesse potrebbe spostarsi sulla domotica   in quanto la WiFly    configurata per associarsi  ad un iPhone con un specifico indirizzo IP  non appena si trova nel suo raggio d azione   Immaginate di essere appena rincasati dal  lavoro e di trovarvi  col vostro cellulare  a por   tata di WiFly  subito il vostro iPhone diventa  automaticamente il controller di casa vostra   permettendovi dall apertura del cancello alla  gestione delle tende da sole  fino al comando  dell impianto di riscaldamento  Il tutto nelle  vostre mani  E    Listato 2          void oscReceiveFloat char   msg  float value        char adressl         1 togglel      if strnemp msg adressl strlen adressl    0      ii vallue  10200  4 i  Serial printlin    P1 0N       digitalWrite 2  HIGH      accende LED     if  value  0 00  1  serial  princin RI Sora  digitalWrite 2  LOW      spegne LED    DEPEN E E eso ecscssccscroscscsescee    A ELETTRONICA IN   Luglio   Agosto 2011 159    
208. te  in modalit   seriale  In commercio sono anche                          TE EE ene rete be a does tata atea talia e e e ecs 0 sca    Ts    Disipllay2 02    Semolice esempio utilizzo GLCD a comando seriale   cablaggio hardware   Graphic LCD Serial    Per il    Usare le linee Vin  GND  TX    a  byte buf_erase      0x C  0x00      Cancella schermo  byte bur back   10x7C  0x02  05   i  rerroilluminazione 0 0  100 100    byte buf_line   0x0 0xX0C  0  0  127  63  1r     Linea OO  202 disegna O cancel Tla  byte buf cirelell   10x7C  0x03  63  31  20  175    Cerchio  X1 Y1  raggio 1 disegna 0 cancella  void setup        Serial begin 115200      Imposta comunicazione a 115200 baud     void loop      Ripete all   infinito      Serial write buf_backl   3      Retroilluminazione 0    delay 100     Serial write buf_erase  2      Cancella schermo   CIC  I000    Serial write buf_line  7      Disegna linea   delay  I000  s   Serial write buf_circle  6      Disegna cerchio   Ie  i000  s   Serial  print ElercronicalN    s    Seriye un testo    140    delay I000        Backpack connesso a GLCD ADM12864H    alatalatatatotatziatatalatataiatatatatatatatatota E E E ttt    Agosto   Settembre 2010   ELETTRONICA IN    tant E E ta  eea S  DI                       eI vAe   eLo     ouin                   O     5  y  fa   lt   O   I  de  O  O                  gt   Display_03    Semplice esempio utilizzo ELCO a comando seriale   SI usano i comanoi a riga  Per il cablaggio hardware     Graphic LCD Serial 
209. te di tipo PAN  con al massimo  qualche dispositivo  Il primo problema da  affrontare riguarda la connessione hardware  tra il modulo XBee ed il microcontrollore  in  quanto i moduli Xbee operano a 3 3 V e adot   tano un connettore a passo 2 mm non proprio  di facilissima reperibilit    quindi non possono  essere utilizzati direttamente su di una baset   ta millefori sperimentale    Per i collegamenti hardware tra  microcontrollore e XBee    necessario con   siderare che la linea TX degli XBee pu     essere connessa direttamente alla RX del  microcontrollore  pur giungendo una ten   sione di 3 3 volt a livello logico alto  il   tutto funzioner   lo stesso  La linea TX del  microcontrollore pu   essere connessa alla li   nea RX di XBee tramite un partitore di tensio   ne che abbassi da 5 a 3 3 V la tensione  oppure  interponendo un diodo con l   anodo rivolto  verso il modulo Xbee  RX  e il catodo rivolto  verso il microcontrollore  TX      necessario  siano abilitate le resistenze di pull up del mo   dulo XBee  In commercio esistono opportune  interfacce gi   predisposte per queste funzioni   illustrate nelle figure 17 e 18     146 Dicembre 2010   Gennaio 2011   ELETTRONICA IN A    e3  OS109       5  O       O  z  3  Ke   de   lt   O  W       O  O       Tabella 4   Piedinatura dei moduli XBee     1 VCC   2 DOUT Output  3 DIN   CONFIG Input  4 DIO12 Either  5 RESET Input  6 PWMO   RSSI   DIO10 Either  7 PWM   DIO11 Either  8  reserved    9 DTR   SLEEP_RQ  DIO8 Either  10 GND  
210. tenuto e forniti  in svariate grandezze  dipendenti essenzialmente dal   la loro potenza  possono essere impiegati in tantissime  applicazioni pratiche  una tra tutte  la movimentazione  di piccole videocamere per le ripre    se a bordo di robot  pan tilt    Per comprendere il funzio   namento di un servo da  modellismo  occorre osser   varlo al suo interno  esso     costituito da un piccolo mo   tore in corrente continua che   grazie  ad un sistema di ingra   naggi  fa ruotare un perno  sul quale    calettato un  piccolo potenziometro  la  lettura del valore resistivo  di questo potenziometro  fornisce la posizione esat   ta del perno  Un circuito  elettronico realizzato in  tecnologia SMD provvede  al controllo bidirezionale del motore ed al corretto posi   zionamento del perno in relazione al segnale elettrico  di comando    Il tutto funziona secondo lo schema riportato nella Fig   1  dal quale appare evidente che il posizionamento av   viene confrontando il valore in tensione fornito dal po   tenziometro con quello ricavato dal segnale di ingresso       Segnale di  ingresso    Scheda di 3  controllo SI Riduttore sp    ISTRUZIONE ATTACH     Associa la variabile servo ad uno specifico  pin  In Arduino 0016 e precedenti  sono sup   portati solo due servo collegati ai pin 9 and 10   Sintassi  servo attach pin   servo attach pin  min   max     Parametri servo  variabile di tipo Servo    Pin  numero del pin harware utilizzato    Min  opzionale   durata minima dell impulso   in 
211. ter View Versions   Read   wite   man  i Clear Screen     Save     p    mi Cola   oad   pre    Modem  XBEE Function Set Version       xB248     z ZNET 25 ROUTER END DEVICE AT     1247       3    Networkina  ZIGBEE COORDINATOR API  p3    moi  p  ZIGBEE COORDINATOR AT  IZIGBEE ROUTER SENSOR     DI  FFFF  OP ZIGBEE ROUTER END DEVICE API       224 ID   IZIGBEE ROUTER END DEVICE AT          FFE  SCIZNET 2 5 COORDINATOR API  ZNET 25 ROUTER SENSOR   O  FF  NI   NZNET 25 ROUTER END DEVICE ANALOG I0    gi            m    3 Adtesing     t   Ly  FFFE  MYZNET 25ROUTER END DEVICE DIGITAL IO  IZNET 25 ROUTER END DEVICE PH    D  40308035  SL   Serial Number Low       00H  Destination Address High    fa mn ni nai ii Add    OEM RF Modules by MaxStream   Digi Interna    tional brand Firmware Versions  sono    e 1 0xx   Coordinator  Transparent Operation    e 1 1xx   Coordinator  API Operation    e 1 2xx   Router  End Device  Transparent  Operation    e 1 3xx   Router  End Device  API Operation     Non    possibile utilizzare immediatamente   i moduli  dato che prima    necessario pro   grammarli  volendo nuovamente utilizzare  due moduli per realizzare una semplice rete  punto a punto in Transparet Mode     necessa   rio impostare un modulo come Coordinator e  l   altro come End Device    Come prima  dovete interfacciare il modulo  al PC  in cui avvierete X CTU  la lettura dei  parametri predefiniti vi fornir   la schermata  visibile nella Fig  41  Noterete la sigla XB24   B  ad indicare la se
212. terfacciare il modulo XBee al PC    con   veniente procurarsi un adattatore  disponibile  sia in versione seriale che USB  quest   ultima      equipaggiata con il convertitore USB seriale  della FDTI  nel qual caso dovrete prima instal     Descrizione    Power supply   UART Data Out   UART Data In   Digital I O 12   Module Reset  reset pulse must be at least 200 ns   PWM Output 0   RX Signal Strength Indicator   Digital IO  Digital I O 11   Do not connect   Pin Sleep Control Line or Digital IO 8   Ground   Digital I O 4   Clear to Send Flow Control or Digital I O 7   Module Status Indicator or Digital I O 9   Do not connect   Associated Indicator  Digital I O 5   Request to Send Flow Control  Digital I O 6   Analog Input 3 or Digital I O 3   Analog Input 2 or Digital I O 2   Analog Input 1 or Digital I O 1   Analog Input ODigital IO O or Commissioning Button    lare gli appositi driver scaricabili dal sito del  produttore del chip http   ftdichip com Drivers   VCP htm  Se state usando una scheda Arduino  con interfaccia USB  questi driver li avete gi    installati    In riferimento all   adattatore USB XBee  i   due LED denominati TX e RX permettono di  monitorare il traffico dati del modulo XBee   un terzo    connesso alla linea RSSI di XBee ed  un quarto indica presenza di alimentazione   Inserite il modulo XBee sull   adattatore e  collegatelo al PC  nel caso usiate la versione  per USB  utilizzate Gestione Risorse del sistema  operativo per sapere su quale COM    stato  i
213. ti      RX  lampeggia quando lo shield riceve dati      COL  lampeggia quando si verifica una  collisione di pacchetti all   interno della rete      FDX  indica che la connessione alla rete  avviene in full duplex      LINK  indica la presenza di una rete e lam   peggia quando lo shield trasmette o riceve  dati      RSI  stato di reset      PWR  indica che lo shield    alimentato     Per quanto riguarda l utilizzo dello shield   a livello software  non ci sono problemi in  quanto l   ambiente di lavoro di Arduino con   tiene gi   la libreria e gli esempi per la gestio   ne della Ethernet  possiamo quindi passare  direttamente all impiego pratico  Lo Shield  Ethernet  versione SeeedStudio  viene fornito  gi   pronto all uso  ma consigliamo di saldare  sugli appositi spazi degli strip femmina  in  modo da avere facilmente accesso    eI  OS109    aa  esiste il ruolo di Client o Server   sises Non vi     quindi  alcun controllo dello stato  f Fig 1 della comunicazione  perch   non    stata ef  a  Ethernet fettuata  n      possibile sapere se i dati inviati    shield di siano effettivamente giunti a destinazione  z  SeeedStudio         una comunicazione e allora sar   possibile        Fig 2  effettuare il trasferimento di dati  ai pin di Arduino o per inserirci Ethernet  Caratteristica di questo protocollo    quella di un secondo shield  appena Shield     inserita nella scheda Ar   duino     pronta all uso  fo  Durante tutte lepro   S4    essere a conoscenza dello stato della conn
214. ti dall    FT232     Seeeduino V3 28   Seeeduino    una scheda compatibi    le con Arduino duemilanove basata sul  microcontrollore ATmega328  Differisce dal  modello Seeeduino V2 12 perch   dispone di  maggior memoria flash  EEPROM e SRAM   Per quanto riguarda l utilizzo  essa non di  discosta molto dalla versione originale   Sulla scheda sono disponibili tre piccoli devia   tori con le seguenti funzioni      seleziona se l alimentazione giunge dalla  USB o da fonte esterna  per la prima ap   plicazione impostiamo l alimentazione da  USB  cos   da non doverci procurare ulteriori  alimentatori     Lic     r   PALE    RS e ila  E    O Sia    i n       Funzionalit   della scheda Seeeduino       seleziona l alimentazione della logica a 5 V  o 3 3 volt  5 volt vanno benissimo come inizio  e i 3 3 V potrebbero essere utili se si intende  usare la scheda per alimentare un    circuito esterno funzionante a  tale tensione      il terzo deviatore  seleziona la  modalit   di  reset  impo   standola su  automatico  la scheda   si resetter   in  automatico non  appena sar   caricato  il firmware    Per la prima applica   zione impostiamo tutti i   deviatori con la levetta rivolta verso l interno  della scheda  La scheda viene connessa al PC  con il solito cavo USB  con connettore micro  dal lato scheda   la procedura di avvio e di  programmazione    identica alla scheda Ardui   no originaria descritta in precedenza  a          Seeeduino V3 28           Funzioni degli interruttori a slitt
215. tione dei display grafici  ripartiti per categoria  Graphic Drawing Functions riguardano  il disegno di primitive grafiche e Font Functions    inerente ai caratteri     138 Agosto   Settembre 2010   ELETTRONICA IN Ei     e3  OS109       5  O       O     5  Ke   fe   lt   O   I  fn  O  O       Tabella 7   Collegamenti fisici tra scheda Arduino Tabella 8    E SII       Cancellazione Ox7C   0x00  Vin Vin Alimentazione positiva 6 7V Demo mode OXx7C   0x04  GND GND GND Reverse Mode Ox7C   0x12  TX RX Linea dati Set retroilluminazione   Ox7C   0x02  R   R valore illuminazione 0 100  OX7C   0x10   X SPO ORAA orizzontale  Set reset pixel  Y P Y coordinata verticale  Graphics LCD library    che spiega in dettaglio P 0 resetta P 1 setta  l utilizzo di questa libreria e ne permette an  PICO e Eee  eni load dl 5   Disegna Linea KIL ae VAL ar X2  X2 Y2 coordinate di fine  che il download  I nostri lettori troveranno gi   Y2   P P 0 cancella P 1 disegna  disponibili questi file  arricchiti da un ulterio  wa vis coordinate centro          Ox7C   0x03   D    re esempio  la cartella di nome KS0108GLCD Disegna cerchio Hevier   3280  s   A     0      P 0 cancella P 1 disegna  contiene sia le libreria  sia dei file di esempio  d ii Wiat dei tell Ox7 C  OxOF   X1 Y1 angolo alto sinistro  e deve essere copiata all Interno della cartella Disegno rettangolo Xi EMA X2 X2 Y2 angolo basso destro  Libraries sottodirectory della cartella principale ZAP P 0 cancella P 1 disegna  Arduino 0018  N    1      
216. to identica nelle specifi   che alla MMC classica  Attraverso un adatta   tore  che serve semplicemente ad adattare le  dimensioni della card  le RS MMC possono          di una  SD Card     HI 2a Fig 1  lima    148 Febbraio 2011   ELETTRONICA IN Ei     essere usate in qualsiasi slot per MMC  o SD    Le Secure Digital  chiamate pi   brevemente  SD  sono l evoluzione delle MMC e rag   giungono una capacit   di 32 GB  Esistono   tre formati  Tabella 1   le SD di dimensioni  standard  le mini SD e le microSD  chiamate  anche TF Card  Trans Flash Card   Sia le mi   croSD che le miniSD possono essere utilizzate  con lettori di SD mediante semplici adattatori   Analogamente alle Multi Media Card  le SD  utilizzano contatti superficiali anzich   connet   tori maschio femmina  fatto che ne aumenta  ulteriormente la robustezza  ma le rende   poco indicate per applicazioni in ambienti  particolarmente gravosi  specie in presenza di  vibrazioni    Le SD superiori ai 2 GB e con una velocit   mi   nima di lettura  scrittura di 2 2 MB s vengono  chiamate SDHC  Secure Digital High Capacity   oppure SD 2 0  e non sono compatibili con i  vecchi lettori di schede SD  Le SDHC  nate  per accelerare la riproduzione dei contenuti  multimediali  sono classificate in base alla  velocit   di trasferimento  detta SD Speed Class  Ratings e definita dalla SD Association  che le  divide in classi  Tabella 1   Le SD con capacit    superiori ai 32 GB verranno chiamate con il  nuovo termine  SDXC  Secure Dig
217. tro sito  a fine corso  saranno disponi   bili anche i programmi commentati in lingua  italiana usati nelle varie puntate    Lo sketch cui facciamo riferimento    descritto  nel Listato 1     Tabella 4   Comandi per il display e loro sintassi     Caricate ed avviate lo sketch  regolate il con   trasto agendo sul trimmer sino ad evidenziare  la scritta    hello  world     ed il gioco    fatto   Questo esempio    molto importante perch    vi fa capire anche la modalit   con la quale  vengono visualizzate le variabili  in questo  caso quella denominata millis     che contiene  il numero di millisecondi da quando Arduino  sta eseguendo il programma  dividendola per  1 000 si ottiene il numero di secondi di esecu   zione del programma    Notate come la variabile scritta in memoria in  forma binaria venga rappresentata in numero  decimale cifra per cifra  con una conversione  automatica  Altro punto importante da notare     la presenza della riga  include  lt LiquidCry   stalh gt  che permette di includere la libreria e  quindi i comandi per gestire un display LCD   Allo stesso modo sar   possibile importare  altre librerie  anche create da terzi  al fine di  espandere le funzioni disponibili    Potete sbizzarrirvi e provare anche tutti gli  altri esempi inerenti ai display LCD  ci sono  esempi per agire sulla scritta oppure sul cur   sore in vari modi  Per comodit   riportiamo   nella Tabella 4 di seguito  la sintassi con un  esempio dei principali comandi per il display   Passiam
218. ttivata Ma       A ELETTRONICA IN   Maggio 2011 153       e 1 023 sono gi   assegnati a specifiche funzio  L applicazione    cos   interessante che viene  ni del sistema operativo  voglia di migliorarla  completando la pagina  Ecco la configurazione usata per il nostro web ed attivando un autorefresh in modo da  esempio  visualizzare in tempo reale il livello di tensio     ne all ingresso  Poche conoscenze di HTML  byte mac       0xDE  0xAD  0xBE  OxEF  OxFE  0xED     permettono di scrivere il nuovo sketch  il    byte ip       192  168  0  77     Server server 80       pIy OSION    ouin    quale si chiama Ethernet_01 pde  che potete an   che scaricare dal nostro sito www elettronicain     Ora caricate lo sketch su Arduino e lasciate  che il nuovo firmware avvii la comunica   zione con il router  Aprite Internet Explorer   o un Browser a scelta e scrivete l indirizzo  http   192 168 0 77  vedrete caricarsi la pagina  web residente all   interno di Arduino  ripor   tante i dati relativi agli ingressi analogici    Se agli ingressi non avete collegato alcunch    i  valori saranno casuali ed in ogni caso per leg   gere una nuova serie di valori sar   necessario  rinnovare la richiesta di lettura pagina  cosa  fattibile cliccando sul pulsante di refresh  Per  testare meglio lo sketch  utilizzate un trimmer  del valore di 10 kohm  al quale avrete saldato  tre fili che collegherete cos    gli estremi ai pin   5V  GND ed il centrale ad uno degli ingressi  analogici  Utilizzate il trim
219. txt dove sono  stati scritti i dati  numerici       k me hep    E mn hp       E e hap    cartella libraries di Arduino  Il file di esempio  si chiama FileLoggerDemo e prima di caricar   lo sulla scheda Arduino dovete modificarne la  riga che imposta il pin di alimentazione della  SD Card  fate ci   con le seguenti istruzioni        define the pin that powers up the SD card   define MEM PW 9    Assicuratevi che la SD Card sia formattata in  FATTI  create al suo interno il file di nome     file log    e scrivete in questo alcuni caratteri   Inserite la SD nello slot della shield ed avviate  lo sketch  dovete aprire anche Serial Monitor   impostato sui 9 600 baud  per poter inviare il  comando di scrittura    W       Verr   scritto all   interno della SD Card il mes   saggio dichiarato con la riga  define MES   SAGE  se l operazione    andata a buon fine  vedrete visualizzata la stringa    OK    su serial  monitor    Abbiamo creato anche un esempio minimali   sta  SD_03 pde  nel quale oltre a scrivere un  testo viene scritto il valore acquisito dall   in   gresso analogico 0  Lo spezzone di codice  che esegue questo passaggio    riportato nel  Listato 2    Come potete vedere le istruzioni sono molto  semplici e prevedono essenzialmente l acqui   sizione del dato dall ingresso analogico 0 e la  creazione della stringa    logStr    che contiene   il valore acquisito e che sar   visualizzata   su Serial Monitor  La stringa formata da  caratteri viene quindi convertita in un ar    r
220. uino mette a disposizione gli esempi  PachubeClinet e PachubeClientString  Un valido  esempio    gi   stato proposto sul numero 151  della rivista a proposito dell articolo riguar   dante il    Termostato ambiente          disponibile anche un altro interessantissimo  esempio che prevede l invio e la ricezione di  stringhe dal PC ad Arduino con il protocollo  UDP  aprite lo sketch denominato UDPSen   dReceive pde  modificate se necessario l   indiriz   zo IP e caricatelo su Arduino    Nella parte terminale dello sketch trovate il  listato da far girare su processing  lo trovate  nella quinta puntata di questo corso su Ardu   ino   utilizzato in questo caso per inviare la  stringa    hello word    via ethernet alla nostra  scheda Arduino  Tramite Serial monitor  dell   IDE di Arduino vedrete la stringa arrivata  ed una risposta di consenso giunger   anche a  processing  Per poter usare il protocollo UDP  con processing    necessario installare la libre   ria hypermedia net  che trovate nel nostro sito  assieme ai file di questo numero della rivista   Vista l interessante modalit   di comunica   zione tra un PC ed Arduino tramite ethernet  abbiamo pensato di realizzare una piccola ap   plicazione scritta in Visual Basic 6 che imple   menta  appunto  il protocollo UDP  Anche in  questo caso l applicazione invia una semplice  stringa di testo ed attende risposta da Ardu   ino  ma facilmente pu   essere modificata per  ogni altra esigenza    Come avete visto  le applicazioni imple
221. umero compreso tra 0 e 255  non utilizzato da altri dispositivi nella rete    In definitiva  la configurazione per il nostro  esempio sar       ROUTER IP 192 168 0 1   PC IP 192 168 0 199   PC subnet mask 255 255 255 0  ARDUINO IP 192 168 0 77  ARDUINO subnet mask 255 255 255 0    Lasceremo non specificati tutti gli altri para   metri    In una connessione TCP  oltre all indirizzo IP  della postazione remota cui devono giungere  le informazioni  bisogna conoscere anche a  quale applicazione esse debbono essere pas   sate  A tale scopo  si usano le porte  le quali  sono una specie di allocazione della memoria  del computer che esiste quando due computer  sono in comunicazione tra loro e forniscono  un punto terminale per l applicazione remota   Le porte vengono sempre identificate con un  numero compreso tra 0 e 65 535  i cui valori 0       http   192 168 0 77    Windows In    Ae  10 1921     File Modifica Visualizza Preferiti  SQ Preferiti    lt  amp      Siti suggeriti v      http   192 168 0 77   analog input 0 is 296    analog input 1 is 325  analog input 2 is 344    analog input 3 is 340 Fig 3  analog input 4 is 227 Pagina web dello  analog input 5 is 218 sketch Web Server     avuto la vostra stessa idea    L indirizzo IP  IP Address     una sequenza di  quattro numeri compresi tra 0 e 255 e  simil   mente al MAC  identifica ogni dispositivo  all   interno di una rete  Anche questo deve    essere univoco per ogni dispositivo sulla rete     Internet   Modalit   protetta  a
222. un collegamento wi   reless PC Arduino  Per connettere il modulo  XBee alla scheda Arduino  potete utilizzare  l adattatore generico  Fig  17 e Fig  18  realiz   zando i seguenti collegamenti    e  5V Arduino al  5V adattatore XBee    e GND Arduino   gt  GND adattatore XBee    e TX Arduino   gt  RX Adattatore XBee    e RX Arduino   gt  TX Adattatore XBee     Ricordiamo che la linea TX di Arduino fa  capo alla RX del convertitore FDTI  mentre   la linea RX di Arduino fa capo alla TX del  convertitore FDTI  ci      un problema perch   i  due dispositivi XBee e FDTI inviano dati sulla  stessa linea  L alternativa    utilizzare l   apposi   ta XBee Shiedl  che consente di realizzare tutti i  collegamenti in modo semplice e veloce    Tra le varie Shield disponibili nel mercato ab   biamo usato la versione sviluppata in collabo   razione con la Libelium  che fornisce supporto  a questo indirizzo  http   www  libelium com   squidbee index php title Downloads        Fig 24    Schema  adattatore USB        Fig 25   Visualizzazione dispositivi seriali disponibili       Gestione dispositivi    File Azione Visualizza            HGETNEsEsS     F Porte  COM e LPT   YF Bluetooth Serial Port  COM21   YI Bluetooth Serial Port  COM22   TP Bluetooth Serial Port  COM23   TW Bluetooth Serial Port  COM24   TP Bluetooth Serial Port  COM25   YY Bluetooth Serial Port  COM26   YY Bluetooth Serial Port  COM27   YF Bluetooth Serial Port  COM28   9 Bluetooth Serial Port  COM29   TP Porta di comunicazione
223. va  con Word Pad vi fornir   la corrispondenza  lore nella corrispondente variabile  Il valore di tra frequenza e note  lo stesso file pu   essere  tale variabile viene usato nell istruzione suc  incluso nell   applicazione  Un esempio di ci       cessiva if  Button_1_State    HIGH  per testa  disponibile in file example digital toneKey   re lo stato del pulsante e  se premuto  livello board  Un ulteriore esempio di emissione    logico alto  eseguire  ulteriori istruzioni  che    nel nostro caso coinci  E Lis a oi    dono con l   accendere il       LEDI1  Analizzando lo To  schema elettrico della an     gt  Visualizza in sequenza i numeri cal    al 9 sul display a LED    scheda Danger possila    Per Danger hield su Arduino Duemilanove  mo infatti vedere che i w  pulsanti one S      Pin connesso a ST_CP oi 74HC5S95  ognuno tra il relativo t int latchPin   8        e 11   gt   lPin connesso a SHCP oi 2 H1C595  pin digitale e l ali  incline   mentazione positiva  LEA ace  mentre una resistenza   196 calar   Le     connessa tra tali pin e Corti pondenza tragedie eee  e la massa  allo scopo i e a 2 32 2 10  di garantire un livello sor SEUROL    logico basso  LOW     limposta i pin come uscite    l pinMode latchPin  OUTPUT    se i pulsante non    pinMode clockPin  OUTPUT      premuto  A pulsante      pinMode dataPin  OUTPUT    premuto la tensione di iI  alimentazione giunger      al pin corrispondente SIANO  Aol ali       routine di conteggio  ponendolo a livello t for  Gint j  0  
224. verificarne la compatibilit    abbia   mo provato anche la libreria FAT16 creata   da Ryan Owens e disponibile all indirizzo  wwsw roland riegel de  con file di nome sd reader_  source _20100110 zip    Questa libreria permette la scrittura e la  lettura in file esistenti su MMC  SD e SDHC  formattate FAT16 e FAT32  FAT32 solo con  ATmega328     Anche in questo caso    necessario che il de   viatore PWR sia in posizione 3 3 V e che nelle  impostazioni generali sia impostato       Define the pin numbers   define CS  8    define CS  10    define MOSI 11   define MISO 12   define SCK 13    Per il resto  il principio di funzionamento     simile alle altre librerie descritte    La libreria SDFAT scaricabile all indirizzo  www sparkfun com tutorial microSD_Shield Sd   Fat zip con file di nome SdFat zip     la versione     Sparkfun    della libreria SDFATLIB dalla  quale eredita tutte le caratteristiche    Occorre tenere presente che pi   una libreria     complessa e ricca di funzioni  maggiori risorse  richieder   in fatto di memoria  per questo  motivo consigliamo di usare la libreria che  abbia il minor numero possibile di funzioni  richieste dalla vostra applicazione  A titolo di  esempio  nella Tabella 7 riportiamo l   occupa   zione in memoria di ciascuna libreria nel caso  dell esempio base    Con ci    abbiamo concluso questa puntata  J       libreria Binary Sketch Size   SDUFAT 8340 su 30720  FileLogger 6020 su 30720  SDFATLIB 11706 su 30720  FAT16LIB 8142 su 30720    Tabell
225. vettore  Arduino list  il quale contiene l elenco delle  porte COM installate nel PC  Andate su esplo   ra risorse di Windows per conoscere su quale  porta    presente Arduino  quindi avviate lo  sketch  anche se ci   determiner   la segnala     150 Novembre 2010   ELETTRONICA IN Ei     Mac   S x    Cartelle  a   processing 1 21   gt  examples  sn   java  p  6 lib  a   libraries  b d   arduino  ba dd  b di javascript  be di minimi   gt    net   gt   di opengl  a Ji osch5  di ecamples  library  d   reference    di tia  bi pdf  p di senal  p di video   gt    reference  di tools    zione di errore in  comunicazione  Vi  far   vedere nella  taskbar in basso   le porte COM  installate ed il cor   rispondente indice  del vettore   Avviate il pro   gramma  la prima  casella a sinistra  corrisponde  all uscita 13 di Ar   duino  alla quale       presente il LED Fig  6    interno  Potete ac    cenderlo e spegnerlo a vostro piacimento  Per  verificare le altre uscite    necessario connette   re un LED su ogni uscita    Sono presenti altri due esempi utili per testare  uno gli ingressi digitali e l   altro le uscite  PWM    Per provare appieno queste nuove funzio    ni  ci siamo cimentati nella stesura di uno  sketch che permettesse di attivare un uscita e  visualizzare lo stato di un ingresso  lo abbia   mo chiamato Processing_01 pde  Descriviamo   per    un secondo sketch denominato Proces   sing_02  con il quale oltre a gestire in ed out  controlliamo la luminosit   di un LED tramite 
226. z    Memoria Flash    Caratteristiche dell   Arduino Duemilanove        montato sulla scheda un LED  Quando  questo ha valore HIGH  il LED    acceso   quando il piedino    LOW  il LED    spento     La Duemilanove ha sei ingressi analogici   ognuno dei quali con una risoluzione di   10 bit  ovvero 1 024 valori differenti   Per  impostazione predefinita essi accettano in  ingresso una tensione tra GND e 5 V  sebbe   ne sia possibile cambiare il limite superiore  utilizzando il piedino AREF  Inoltre  alcuni  piedini hanno delle funzioni specializzate  si  tratta di    e 4  SDA  e 5  SCL   riguardano un bus PC e  supportano la comunicazione IC  TWI  uti   lizzando la libreria Wire  la documentazio   ne del caso si trova sul sito della Wiring      Ci sono poi altri due piedini specializzati  che  sono    e AREF  tensione di riferimento per gli  ingressi analogici  viene utilizzato con ana   logReference      e Reset  portata a livello basso permette di re   settare il microprocessore  inizializzazione      A questo proposito conviene consultare il  data sheet dell   ATmega168     Comunicazione   La Arduino Duemilanove ha una serie di fun   zioni utili alla comunicazione con un compu   ter  un altra scheda Arduino  o altri micropro   cessori  L   ATmega328 dispone di un modulo  di comunicazione seriale UART TTL com   patibile  5 V  accessibile dai piedini digitali   0  RX  e 1  TX   Un integrato FIDI FT232RL  sulla scheda canalizza questa comunicazione  seriale sulla USB  i driver 
227. za di una volta al  secondo  Durante la fase di programmazione  di Arduino con lo sketch riportato nel Listato  1    importante che gli interruttori della XBee  shield siano posti in modalit   USB  Quindi  staccate Arduino  impostate gli interruttori  della XBee Shield su XBee ed alimentate la  scheda tramite la presa Plug  Questo    neces     Autoscroll       Fig 12   Dati ricevuti da Serial monitor di Arduino     sario perch   il modulo Bluetooth Bee dialoga  con il microcontrollore di Arduino tramite il  modulo UART  il quale non deve entrare in  conflitto con eventuali segnali giunti via USB   Passati alcuni secondi dall   accensione  il  modulo Bluetooth sar   operativo e visibi    le  Avviate il software Bluesoleil  installato  precedentemente  inserite il Bluetooth dongle   attendete venga riconosciuto  quindi selezio   nate Bluetooth Rileva periferiche Bluetooth   sul modulo Bluetooth Bee devono lampeg   giare entrambi i LED  Cliccate con il pulsante  destro sopra l icona della periferica trovata   e  dal menu contestuale cui accedete  attivate  la funzione di ricerca servizi  Verr   chiesta   la Passkey di accesso alla periferica  il valore  predefinito    0000  quattro zeri   Sempre con il  pulsante destro del mouse sopra la periferica   dal menu contestuale avviate il servizio SPP   servizio porta seriale   A questo punto inizie   r   a lampeggiare lentamente il solo LED ver   de  Visualizzate le propriet   della connessione  SPP per sapere a quale COM virtuale    
228. zione tramite  browser relativa allo sketch  wifly_04 pde     Fig 12   Sketch wifly_02 pde  su serial monitor     Fig 14   Sketch wifly_04 pde  su serial monitor     A ELETTRONICA IN   Luglio   Agosto 2011 155       Fig 15   Configurazione rete adhoc     IP 1G9 2154 1 1 8000  Hit  55 255 0 0   Gi  0 0 0  BAST 169 254 1 100 9000                                                          Per fare questo     necessario utilizzare lo  sketch SPIUartTerminal  come gi   descritto  precedentemente  ed inviare la seguente con   figurazione che andiamo a descrivere passo   passo      Set wlan ssid ARDUINO  imposta il nome  della rete visibile dal dispositivo che vorr    connettersi      Set wlan join 4  imposta il tipo di rete in  modalit   ad hoc      Set wlan chan 1  imposta il numero di canale  utilizzato per la comunicazione Wi Fi      Set ip adress 169 254 1 1  imposta l indirizzo  IP del WiFly nella rete  local       Set ip netmask 255 255 0 0  imposta la ma   schera di sottorete              Then send each command followed by a carriage return     Waiting foz input     Connected via Ad Hoc on ARDUINO  Using Static IP   IF UP   DHCP 0FF   Ip 169 254 1 1 82000  NM 258 255 0 0    1 8000   0     1 100 9000          Fig 16   Configurazione indirizzi IP rete adhoc     156 Luglio   Agosto 2011   ELETTRONICA IN A       Fig 17   Rilevamento rete da parte di iPhone         0     1 100 9000            Set ip dhcp 0  disabilita il DHCP      Set ip protocol 1  imposta il protocollo di  comuni
229. zioni  infatti nella cartella  esempi troverete altri sketch che permettono  di gestire funzioni specifiche della scheda  Arduino    Prima di caricare lo sketch su Arduino assi   curatevi che  nella riga Firmata begin 57600     sia impostata una velocit   di comunicazione  di 57 600 bps  Per collaudare i nostri esempi  collegate al pin 9  tramite una resistenza da  200 ohm  un LED  mentre al pin 2  che usere   mo come ingresso  connettete un pulsante con  la relativa resistenza di pull down  Fig  1      eI  OS109       3  O       Listato 1       processing_02    Semplice esempio di utilizzo del software Processing per   dialogare con Arduino duemilanove  Su Arduino    caricato  SstandardFirmarta  00de  questo programma va utilizzato con Processing l z2  il  Con 1l mouse sul shape quacraro si activa l uscita 13   L ingresso 2 viene usato per cambiare colore al shape cerchio    Con il mouse sullo shape rettangolo si regola la luminosit     dell LED connesso all  useita 9     z      To g  oW  goe Uljalo     IMPORLZp oe esige  IMPOrt cCe arduino     e  Arduino arduino     color off calo 79  111    color on   color g84   145  158      intil values   4 Arduino  LOW Ps  int pin out   13     Definisce pin ci uscita 13  LED on board   int pin  in   2     Definisce pin di ingresso 2  void setup         s ze 200   200         0 0 0 0 0 0 0 00    printinlArduino  listh    s j  arduino   new Arcduinolthis  Arduino  listOC2 l  57600      I Impostare l indice array  2  a seconda cella COM u
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
桁表示  TANK USER MANUAL - Totally Wicked Eliquid  les ouvrages disponibles au centre de documentation de l`Arehn  User Manual - CyberPower  GE EP Series Case Studies  Model 55i - User Manual  Charger  市民のひろば 平成26年12月号チラシ  IBM THINKPAD X41 User's Manual      Copyright © All rights reserved. 
   Failed to retrieve file