1. A breve aggiorneremo la piattaforma di Reboot per risolvere alcuni problemi con i plug-in, quindi chiediamo ancora un po' di pazienza, Lo staff di Reboot

Scopriamo cos'è #1: Arduino

Discussione in 'Arduino News' iniziata da Guglio, 5 Set 2018.

  1. Guglio

    Guglio Staff ıllıllı Staff

    Iscritto:
    3 Set 2016
    Messaggi:
    3.290
    Like ricevuti:
    2.276
    Inauguro questa prima puntata della rubrica "Scopriamo cos'è" in collaborazione con elcoteam, che ha permesso a "Scopriamo cos'è" di nascere e vedere la luce finalmente, prima di iniziare voglio ricordarvi che se siete neofiti oppure già avete esperienza nel mondo dell'elettrotecnica, www.elcoteam.com è il posto giusto dove comprare ciò che vi serve, da ogni tipo di componente di una scheda elettronica, modem, componenti PC, saldatori fino a cose più semplici come cavi USB.

    [​IMG]

    Nato per permettere, anche ai semplici appassionati, di programmare e costruire nuove tecnologie in modo semplice e a costo ridotto, Arduino è diventato, in breve tempo, un vero e proprio ecosistema open-source, ed a oggi insieme a Raspberry, sono le board più consciute.

    Un po' di storia passata
    Nasce a Ivrea, nel 2005, da un'idea di un professore universitario, Massimo Banzi, che decise di creare una piattaforma per i propri studenti, così da facilitarli nello studio. Fu un completo successo, a tal punto da spingere l'ingegnere a rendere questa piattaforma... Open Source (Open Hardware) ovvero è possibile trovare sul sito ufficiale i circuiti, i componenti e addirittura le istruzioni per realizzare la board da zero.

    Gli studenti di Massimo Banzi si lamentavano di non riuscire a trovare un microcontrollere abbastanza potente ma al tempo stesso economico per gestire i loro progetti robotizzati. Giunge così il 2005, Massimo Banzi stava discutendo il problema con David Cuartielles, un ingegnere specializzato in microchip, ospitato presso la scuola dove insegnava. Decisero così di creare la loro scheda e chiamarono David Mellis, uno dei sui studenti, per scriverne il linguaggio di programmazione. Mellis scrisse il codice. Chiamarono in seguito la scheda Arduino, fra gli studenti ebbe un successo immediato. Quasi tutti, anche se non sapevano niente di programmazione di computer, erano riusciti infatti a utilizzare Arduino

    Decisero in seguito di costituire una società, ma con una particolarità: i progetti sarebbero rimasti open source, chiunque avrebbe potuto quindi utilizzare i modelli di Arduino per costruire la propria board, ad una condizione...ogni rifacimento sarebbe dovuto essere a sua volta open source,

    Uno sguardo al "presente" (2013 ~)
    Arduino diventa così importante e conosciuto che alcuni big del settore si accorgono delle potenzialità della board, tra cui Intel, che a partire dal 2013 ha iniziato una collaborazione che ha portato alla realizzazione delle schede Galileo ed Edison. Stesso discorso con Microsoft che ha portato alla creazione di Arduino Yùn, un minicomputer Linux basato su scheda wi-fi.

    [​IMG]

    Uno sguardo al "presente" (2015 ~)
    Arduino come detto nasce alla scuola di design di Ivrea e i fondatori sono Massimo Banzi, David Cuartielles, David Mellis e Tom Igoe. Per produrre le schede Massimo sceglie la Smart Projects. A capo di questa azienda troviamo Gianluca Martino, che viene fatto entrare a pieno titolo tra i cofondatori.
    Gli accordi tra i 5 prevedono che ognuno abbia una quota del 20% di una partnership che nel 2008 diventerà l'americana Arduino Llc. In Italia, invece, è proprio la Smart Projects (che aveva la sola licenza di produzione della board ufficiale) a registrare il marchio Arduino, nasce così Arduino Srl. I soci però vengono informati soltanto nel 2010 da Martino della registrazione fatta in Italia. Nel 2016 l'accordo di “fusione” dopo una lunga "battaglia" tra i due Arduino.

    [​IMG]

    Arduino cos'è e cosa può fare

    Arduino è una famiglia di schede elettroniche con caratteristiche hardware, funzionalità e prezzi diversi a seconda della necessità.
    Le schede Arduino sono versatili, inoltre la dimensione della board è contenuta in ogni suo rifacimento. Difficile é rispondere alla domanda "Ma Arduino cosa fa?" perché potenzialmente le possibilità (hardware e software permettendo) sono infinite, non ha una funzionalità specifica ma tutto dipende da come viene programmato.

    [​IMG]

    Nel web sono disponibili tante idee di progetti Arduino e ai suoi svariati campi di applicazione.
    Per esempio sono disponibili progetti per realizzare un impianto di irrigazione intelligente ed automatizzato, per rilevare i campi elettromagnetici in una zona circoscritta per gestire un sistema antincendio con sensore fiamma, per sviluppare un sensore di battito cardiaco e così via.

    I componenti di Arduino

    Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l'aggiunta di componenti complementari per facilitarne l'incorporazione in altri circuiti. Nelle schede vengono usati i chip della serie megaAVR - nello specifico i modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.

    Versioni di Arduino
    Fino a oggi, sono state commercializzate 16 versioni dell'hardware Arduino
    I componenti di Arduino variano in base alla board che possediamo, in questo caso analizzeremo i componenti principali di una scheda Arduino UNO REV3 che sono: (guarda immagine sotto)
    • Una porta USB
    • Un connettore (Jack) per l’alimentazione
    • il chip ATmega 328 ovvero il microcontrollore (28 pin)
    • Un pulsante di reset
    • Un piccolo led “power on” che indica lo stato di accensione della scheda
    • Connettori PIN Input/Output digitale, per collegare i componenti aggiuntivi, di quattordici totali sei possono essere usati come segnale pwm
    • PIN di ingresso analogico
    • PIN di Alimentazione
    [​IMG]

    Alimentazione
    Per alimentare Arduino l'ideale sarebbe utilizzare una tensione da 9 volt, ma possono andare bene anche tensioni che vanno dai 7 ai 12 volt. E' possibile utilizzare anche la porta USB per far funzionare Arduino MA un’alimentazione di questo tipo non sarà in grado di alimentare circuiti che necessitano di più di 5 volt, quelli erogati dalla normale porta USB del computer.
    L’alimentazione fornita ad Arduino inoltre può essere condivisa con il resto del circuito tramite i pin di alimentazione che troveremo nel connettore apposito, contraddistinto dalla scritta POWER, possiamo vedere che sono disponibili il pin di massa (GND), l’alimentazione a 5V e anche un ulteriore alimentazione a 3,3V per i dispositivi alimentati a questa tensione. Nel circuito è presente un diodo con funzione di protezione dall’inversione di alimentazione (solo se alimentato tramite l'apposito jack).
    E' possibile fornire tensione ad Arduino anche con una batteria a 9 Volt tramite apposito adattatore, possiamo utilizzare i pin Vin e GND (nel connettore POWER).

    [​IMG]

    Microcontrollore
    Al centro della scheda possiamo vedere il nostro microcontrollore, il cuore della scheda Arduino UNO, l'ATMEGA328 (28 pin per la versione normale ma esiste pure una versione SMD) un microcontrollore ad alte prestazioni con bus a 8 bit prodotto dalla Atmel con architettura di tipo RISC (Reduced Instruction Set Computer).
    All'interno di questo componente viene salvato il programma scritto dall'utente e tutta la configurazione di base (bootloader) che permette ad Arduino un funzionamento corretto.

    Memoria
    L'ATmega328 dispone di 32 kB di memoria, della quale:
    • 0,5 kB sono usati per il bootloader,
    • 2 kB di SRAM (Static Random Access Memory, la memoria RAM è utilizzata a runtime per ad esempio le variabili),
    • 1 kB di EEPROM (Electrically Erasable Programmable ROM, serve per salvare eventuali dati e parametri di configurazione utili e/o necessari al nostro programma) che possiamo leggere o scrivere utilizzando la EEPROM library.

    Pin input/output digitali
    Ognuno dei 14 digitali presenti sulla board Arduino UNO può essere utilizzato indifferentemente come un ingresso o un'uscita, utilizzando le seguenti funzioni
    Codice:
    pinMode(), digitalWrite(), e digitalRead()
    [​IMG]

    Le uscite operano a 5 volt inoltre, alcuni pin hanno funzioni specializzate:
    • Pin: 0 (RX) e 1 (TX): possono essere utilizzati per ricezione (RX) e trasmissione (TX) dei dati seriali TTL. Collegati ai pin corrispondenti della porta USB-TTL del processore ATmega8U2.
    • Pin 2 e 3: possono essere configurati come trigger per eventi esterni.
    • Pin 3, 5, 6, 9, 10 e 11: possono essere configurati via software con la funzione analogWrite() per generare segnali PWM con risoluzione di 8 bit.
    • Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): possono essere programmati per realizzare una comunicazione SPI.
    • Pin 13: connesso a un LED interno alla scheda, utile per segnalazioni di diagnostica. Quando il livello del pin è HIGH, il LED è acceso, quando il livello del pin è LOW, è spento.

    Pin analogici
    Arduino UNO presenta 6 ingressi analogici, etichettati da A0 ad A5, ognuno dei quali fornisce 10 bit di risoluzione (1024 valori diversi) quindi tramite questi pin possiamo collegare ad Arduino dei sensori che forniscono delle tensioni in ingresso variabile a seconda del valore misurato. Questi valori saranno poi convertiti da Arduino in un valore che va da 0 a 1024 per poterli poi processare nei nostri sketch. Come per i pin digitali alcuni piedini hanno funzionalità specifiche:

    [​IMG]

    • I pin A4 (SDA) e A5 (SCL). permettono di realizzare una comunicazione nello standard I2C a due fili.

    Arduino IDE

    IDE, Integrated Development Environment è l'ambiente di sviluppo che ci permette di programmare Arduino.
    L’IDE di Arduino è in grado di comunicare e programmare tutte le diverse schede della famiglia Arduino (anche cloni). Non vado oltre per spiegarvi come programmare Arduino non essendo il luogo adatto vi farò quindi una semplice introduzione, è doveroso sottolineare che il linguaggio di programmazione utilizzato per Arduino è il C/C++; il compilatore utilizzato è ovviamente dedicato per i microcontrollori della famiglia AVR della Atmel.

    Dove acquistare Arduino

    Potete trovare diverse board Arduino sul sito www.elcoteam.com, un sito interamente italiano che fin dagl'anni 60 si occupa di elettrotecnica, potete trovare Arduino e molto altro visitando il sito cliccando il nome in questo thread oppure pigiando nel banner in basso!

    [​IMG]
    Siamo così giunti al termine di questo primo episodio di questa nuova rubrica, ancora una volta ringrazio www.elcoteam.com per aver partecipato e che dire...alla prossima!

    See you next time
     
    #1
    A jtagger73, GiadaBoot, marcyvee e 8 altri utenti piace questo elemento.
  2. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    Attualmente il peggior modo di imparare a programmare un microcontrollore :smile:
    Bell'articolo comunque, ricordo che ce ne erano anche altri scritti da Alan e RiujyAndy

    <ot> Che dite di una guida sui PIC anche? </ot>
     
    #2
    Ultima modifica: 5 Set 2018
    A gizmigzi piace questo elemento.
  3. marcyvee

    marcyvee Intellettuanale

    Iscritto:
    24 Dic 2015
    Messaggi:
    1.916
    Like ricevuti:
    517
    Wow, che storia! Non avevo idea che fosse italiano! Ed essendo italiani hanno cercato di metterselo in quel posto :tearsofjoy:
    Piuttosto, non ho capito dove si può acquistare.…. :neutral:
    Perché il peggior modo? Spiega che mi interessa .. Intanto cerco le guide.

    Cos'è un segnale pwm?
     
    #3
  4. Guglio

    Guglio Staff ıllıllı Staff

    Iscritto:
    3 Set 2016
    Messaggi:
    3.290
    Like ricevuti:
    2.276
    Cerca Arduino sul sito linkato
     
    #4
  5. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    Troppe astrazioni, in pratica nasconde molti concetti che dovrebbero essere assimilati dall'inizio della programmazione... inoltre non insegna l'essenziale per ogni elettronico: leggere i datasheet.
    Il mio consiglio per chi vuole iniziare elettronica è andare sui PIC (facili da programmare anche in Assembly, economici e datasheet semplici e chiari).

    Immagina di avere un motore, se lo alimenti direttamente girerà al massimo della sua velocità.
    Ora immagina di staccare e riattacare continuamente la corrente, la velocità del motore sarà direttamente proporzionale al periodo in cui il segnale è attivo (duty cycle, in inglese). Quello è il PWM
     
    #5
    A jtagger73 piace questo elemento.
  6. marcyvee

    marcyvee Intellettuanale

    Iscritto:
    24 Dic 2015
    Messaggi:
    1.916
    Like ricevuti:
    517
    Praticamente un potenziometro?
    Per il resto concordo... Semplificare troppo fa imparare poco. ..
     
    #6
  7. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    Esatto
     
    #7
    A marcyvee piace questo elemento.
  8. RyujiAndy

    RyujiAndy Staff ᗧ͇̿ · · ᗣ͇̿ᗣ͇̿ᗣ͇̿ᗣ͇̿ Staff

    Iscritto:
    15 Dic 2014
    Messaggi:
    557
    Like ricevuti:
    390
    il PWM è una modulazione di segnale digitale, cioè un onda quadtra con larghezza di segnale variabile
    [​IMG]
    sul potenziometro invece avviene una caduta di tensione quindi è il segnale stesso che viene ridotto.
    Anche se il risultato è alquanto simile funzionano in 2 modi completamente diversi.

    P.S.: io ho sempre acquistato dal sito ufficiale https://store.arduino.cc/
     
    #8
    A jtagger73, marcyvee e Guglio piace questo elemento.
  9. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    Piccola aggiunta: essendo il PWM non altro che un segnale digitale (cioè che oscilla tra 0 volt e la tensione massima, senza passare però per "vie di mezzo") sconsiglio l'uso di questo dove è necessario creare tensioni variabili per darle in pasto a circuiti integrati (finché si tratta di led o di motori va bene, invece).
    In quei casi consiglio una scala R-2R
     
    #9
  10. marcyvee

    marcyvee Intellettuanale

    Iscritto:
    24 Dic 2015
    Messaggi:
    1.916
    Like ricevuti:
    517
    Quindi sarebbe uno analogico e uno digitale?
     
    #10
  11. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    No... il PWM sfrutta il fatto che la media del segnale sia un valore intermedio dipendente dal tempo attivo.
    Ad esempio se il tempo attivo è del 25%, allora la media del segnale sarà il 25% della tensione massima.
     
    #11
    A Guglio piace questo elemento.
  12. marcyvee

    marcyvee Intellettuanale

    Iscritto:
    24 Dic 2015
    Messaggi:
    1.916
    Like ricevuti:
    517
    Ma quante ne sai? Dove le avete imparate ste cose? Per curiosità.. ..
     
    #12
  13. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    Sinceramente, non lo so nemmeno io.… sarà che le ho imparate per curiosità.
     
    #13
    A SNK piace questo elemento.
  14. IlVampirelloXY

    IlVampirelloXY Livello 16

    Iscritto:
    3 Feb 2016
    Messaggi:
    699
    Like ricevuti:
    297
    Concordo pienamente, fa apparire il mondo dei controlli in modo troppo facile, nascondendo la parte di basso livello, c'è da dire però che è veramente Easy ed economico.… Forse tutto dipende da dove vuoi arrivare.…. E sicuramente è diventato uno standard mondiale, molte altre schede hanno adottato o anno anche i connettori passo Arduino ( anche con Micro di altra classe es ne nucleo della st con cortex m7) consentendo upgrade futuri. Che utilizzano la stessa parte periferica.
     
    #14
  15. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.895
    Like ricevuti:
    1.615
    C'è da dire che queste astrazioni hanno preso piede anche fuori dall'AVR (nelle board ST da te citate e nei PIC con lo sviluppo di Pinguino)
     
    #15
Sto caricando...

Condividi questa Pagina