GUIDA ARDUINO 101 - Tutorial n°1: Cos'è Arduino

metallo97

Utente Èlite
3,530
1,200
CPU
Intel Core i7 930 @ 4GHz
Scheda Madre
ASUS Rampage II Gene
HDD
Crucial M500 120GB
RAM
OCZ Platinum 9-9-9-28 @ 1866MHz
GPU
MSI Radeon HD7950
Audio
Creative X-Fi
Monitor
HP 22xi
PSU
Nilox SRM850
Case
Project: Black Side of The Modding
OS
Windows 7 64 Bit
Ciao a tutti ragazzi, dopo aver aperto il sondaggio su questa stessa sezione ho visto che c'è molta gente interessata a imparare o almeno a capire cos'è e come funziona Arduino, in questa serie di tutorial cercherò di spiegare molto semplicemente cos'è e come funziona,com'è fatto, cosa si può fare e altre migliaia di cose.
Molto probabilmente la cadenza di uscita dei tutorial sarà settimanale, tempo e scuola permettendo.

Inizia così la serie di tutorial intitolata:
ARDUINO 101

Cominciamo subito con:

Cos'è Arduino:​

Arduino è una piattaforma open-source, nata e cresciuta in Italia, usata da migliaia, se non milioni, di utenti in tutto il mondo, quindi nel web troveremo molti progetti già fatti che richiedono l'uso di Arduino come sistema principale o come ausiliare. Open-source significa che è possibile scaricare direttamente dal sito arduino.cc lo schema elettrico per poi costruirsi il proprio modello come piace e nelle forme più disparate.
Molto semplicemente Arduino è una serie di schede elettroniche che forniscono un microcontrollore programmabile in un linguaggio molto simile al C, chiamato Wiring, che dice al microcontrollore cosa deve fare, per quanto e come. Il microcontrollore controlla le porte in entrata e in uscita, sia analogiche che digitali.

Questa è una delle schede più vendute e base direi di Arduino, l'Arduino Uno:

10deey8.jpg


Che a sua volta è divisa in due modelli diversi: la versione normale con microcontrollore Atmega 328 montato su zoccolo, che può quindi essere estratto per essere usato in progetti che non richiedono l'uso di Arduino (per esempio programmate il codice su Arduino e poi lo usate senza la scheda, collegando a mano tutti i pin). L'altra versione è chiamata SMD perchè presenta una versione miniaturizzata dell'Atmega 328, a differenza del precedente modello però questo chip è saldato direttamente sulla scheda, quindi non è possibile la sostituzione del chip in caso di malfuzionamento.

2yz0oqh.jpg


Questo è il pinout completo della scheda Arduino UNO con microcontroller Atmega 328 su zoccolo:

21cuxx5.jpg


Troviamo poi il modello Mega, che è mega in tutti i sensi, infatti è sensibilmente più grande del fratello minore Arduino UNO, sul modello Mega troviamo un microcontrollore Atmega 2560 che è capace di controllare ben 54 tra input e output digitali e ben 16 analogici, contro i 14 digitali e i 6 analogici di Arduino UNO...

2z598ad.jpg


Naturalmente sono presenti altre decine di schede Arduino, tutte diverse e create per uno scopo specifico, qui potrete trovare la lista e scegliere quella che più fa comodo a voi:

Arduino - Products

Passiamo ad analizzare la scheda Arduino UNO con Atmega 328 su zoccolo:

Quello che ci interessa principalmente sono: la porta USB, le porte digitali e le porte analogiche.

La porta USB direi è la parte più importante, innanzitutto è una porta di tipo B, come quella presenti sulle stampanti. A noi sarà molto utile perchè sarà quella che caricherà il nostro codice direttamente sulla scheda.

Ci sono poi le porte digitali che in totale sono 14, di cui 6 con segnale PWM, numerati da 0 a 13. Le porte digitali vengono usate per inviare o ricevere un segnale, che nel codice viene chiamato HIGH o LOW, letteralmente Alto o Basso, che in informatica sono pari a 1 e 0, infatti queste porte forniscono un controllo di quello che è collegato solo di ON e OFF. Mentre i segnali PWM vanno da 0 a 255 e quindi forniscono un controllo molto più specifico di quello che vorremmo controllare. Per esempio, come vedremo nelle prossime puntate, se vogliamo far controllare un LED, se lo metteremo sulle porte digitali potremmo o accenderlo o spegnerlo, mentre se lo metteremo sulle porte PWM potremo scegliere un graduale cambiamento da acceso a spento e viceversa.

Ricordo che sulle porte digitali è possibile collegare componenti che assorbono al massimo 40mA, questo perchè se ne richiedete di più potete rischiare di bruciare il microcontrollore, per dare più corrente ai componenti sarà possibile dare un alimentazione esterna tramite dei transistor che possono tenere una corrente maggiore.

Passando ai pin analogici che in questa scheda sono 6, numerati da A0 a A5. In queste porte è possibile solo inviare segnali, che possono essere usati poi per comandare le porte digitali. A queste porte possiamo collegare una miriade di oggetti, come potenziometri, sensori crepuscolari, sensori di temperature e molti altri componenti.

Queste sono le cose più importanti sulla scheda, troviamo poi sulla scheda diversi punti di terra, chiamata GND o Ground, un pulsante di reset se dovesse bloccarsi la scheda, un jack per l'alimentazione esterna, che non deve superare i 20V, anche se è raccomandato non immettere più di 12V e non meno di 7V. Troviamo poi uscite di tensione 3.3 e 5V, la prima non può superare i 50mA di corrente, la seconda i 40mA. Presente poi un'entrata VIN alla quale è possibile collegare direttamente un pacco batterie tramite il cavo positivo in VIN e negativo in GND che andranno ad alimentare la scheda.

Nell'uso di Arduino, come vedremo nei prossimi tutorial, sarà consigliato l'uso di una breadboard, che renderà molto più facile lavorare con Arduino, per sapere cos'è una breadboard guardate il thread creato dal buon Blume a questo link: http://www.tomshw.it/forum/elettronica-e-dintorni/353616-cose-una-breadboard-e-come-si-usa.html

Per programmare Arduino è necessario aver scaricato nel PC il programma Arduino IDE, qui è possibile scaricare la versione più recente, attualmente la 1.0.5: Arduino - Software

Nel prossimo tutorial mostrerò l'interfaccia principale di Arduino e cominceremo ad imparare a programmare e ad usare la scheda. Il primo progetto sarà quello di alimentare un LED e farlo lampeggiare.

Stay Tuned ;) e chiedete se avete bisogno o non avete capito!
 

Lidoboy

UTENTE LEGGENDARIO
Utente Èlite
18,371
3,763
CPU
i7-2600K
Dissipatore
Zalman CNPS 9900 MAX - Blue
Scheda Madre
MSI Z77A G45
HDD
SSD Samsung 830 256Gb
RAM
2x8Gb DDR3 1600Mhz Corsair Vengeance
GPU
NVidia GTX 1070Ti
Audio
HyperX Cloud II
Monitor
DELL S2719DGF
PSU
Arkangel 850W
Case
Thermaltake Armor+ VH6000BWS Black
Periferiche
Logitech Proteus Core + Omen 300 Mouse Pad XL + Corsair K95 RGB
Net
Fibra 1000Mb
OS
WinSeven
Il primo che chiede se "Ci gira Crysis" gli taglio le mani..
 

dragonrising

Bannato
13,054
2,391
CPU
i7 4790k - cooled by CM hyper 612s
Scheda Madre
Asrock z97 professional
HDD
Samsung 850 pro + wd caviar blue
RAM
Corsair Vengeance LP Ddr3 1600Mhz 8GB (2x4gb) 9-9-9-24
GPU
Msi gtx 980 ti gaming
Audio
Integrata
Monitor
Benq XL 2420z
PSU
Evga supernova 750w B2
Case
Corsair 750d
OS
Windows 8.1 Pro 64bit
ci gira battlefield 4? le mode sono cambiate...
complimenti metallo ;)
 
  • Mi piace
Reazioni: Utente 16812

metallo97

Utente Èlite
3,530
1,200
CPU
Intel Core i7 930 @ 4GHz
Scheda Madre
ASUS Rampage II Gene
HDD
Crucial M500 120GB
RAM
OCZ Platinum 9-9-9-28 @ 1866MHz
GPU
MSI Radeon HD7950
Audio
Creative X-Fi
Monitor
HP 22xi
PSU
Nilox SRM850
Case
Project: Black Side of The Modding
OS
Windows 7 64 Bit
In Arduino Tre già fanno girare Linux Full-HD, aspettiamo un po :asd:
 
  • Mi piace
Reazioni: roeric

Gress

Il BAT-carpentiere
Utente Èlite
6,252
2,610
CPU
Intel core i7 4930k
Dissipatore
Silverstone Argon SST-AR03
Scheda Madre
Asrock X79 extreme 9
HDD
ssd samsung pro 256 gb
RAM
dominator XMS3 1333 2x4GB 7-8-8-24 T1
GPU
ASUS 380 strix 4 GB
Audio
Asrock game blaster
Monitor
ASUS MX279H
PSU
corsair tx650M V2 bronze modulare
Case
"Progress" Desk case
OS
windows 7 64 bit
ottimo metallo :ok: seguo interessato
 

roeric

Utente Attivo
1,334
219
CPU
i5 4670k + CM 412s
Scheda Madre
GA-Z87X-D3-h
HDD
ssd 120 GB + hdd 2 TB
RAM
2 x 4 GB DDR3 G.Skill
GPU
R9 280x asus dcu top
Audio
integrata
Monitor
asus vb172
PSU
XFX 650w
Case
CM 693
OS
windows 7
Quoto sopra, davvero ottimo inizio :sisi: :ok:
 

liberodaniele

Utente Èlite
1,609
195
CPU
i5 2500 @4,1GHz
Dissipatore
corsair h70
Scheda Madre
msi z68s-g43
HDD
samsung evo 500gb+ssd 60 gb corsair+hdd 300gb
RAM
8 gb corsair veneange low profile
GPU
RX 480 NITRO
Case
CM 690 II
Periferiche
logitech g 502 + logitech 810 brown switch
OS
Windows 10

metallo97

Utente Èlite
3,530
1,200
CPU
Intel Core i7 930 @ 4GHz
Scheda Madre
ASUS Rampage II Gene
HDD
Crucial M500 120GB
RAM
OCZ Platinum 9-9-9-28 @ 1866MHz
GPU
MSI Radeon HD7950
Audio
Creative X-Fi
Monitor
HP 22xi
PSU
Nilox SRM850
Case
Project: Black Side of The Modding
OS
Windows 7 64 Bit
Domenica spero di passare al secondo tutorial, tra poco cominceremo a fare qualcosa :asd:
 
  • Mi piace
Reazioni: Gress e Blume.

Cricco95

Utente Attivo
123
3
sono interessato ad acquistare arduino, cosa mi consigli per iniziare? Arduino UNO REV3 + Starter Kit

Contenuto Starter Kit:

Elenco del contenuto del kit n°1 breadboard n°50 cavetti jumper maschio/maschio, utili per il collegamento tra Arduino e Breadboard n°10 led rossi n°10 led verdi n°1 led RGB n°10 condensatori ceramici 10nF n°10 condensatori ceramici 100nF n°5 condensatori elettrolitici 100uF Resistenze: 10pezzi per ogni valore: 330Ohm, 1KOhm, 10KOhm n°1 tilt switch n°1 termistore n°1 fotoresistenza n°1 diodo n°1 buzzer n°5 pulsanti n°5 switch n°1 servo in miniatura n°1 potenziometro + manopola n°1 scheda plastificata con codice colori resistenze n°1 contenitore in plastica - See more at: 115010 - Kit di base componenti per Arduino , da Seeed Studio a
 

metallo97

Utente Èlite
3,530
1,200
CPU
Intel Core i7 930 @ 4GHz
Scheda Madre
ASUS Rampage II Gene
HDD
Crucial M500 120GB
RAM
OCZ Platinum 9-9-9-28 @ 1866MHz
GPU
MSI Radeon HD7950
Audio
Creative X-Fi
Monitor
HP 22xi
PSU
Nilox SRM850
Case
Project: Black Side of The Modding
OS
Windows 7 64 Bit
Arduino UNO assolutamente, il starter kit non è male ma se vi fare qualcosa di più è veramente striminzito... Sicuramente i cavi che ti danno per il collegamento arduino-breadboard sono di quelli solidi, ovvero non flessibili. Io consiglio quest'ultimo perché non hai vincoli di lunghezza e i collegamenti sono più morbidi. Poi io mi dilungo anche troppo :asd:
 
U

Utente 16812

Ospite
MICROCONTROLLORI
----------------------------------

Un microcontrollore non è altro che un circuito che integra all'interno dello stesso chip tutti i componenti elettronici necessari a realizzare un vero e proprio sistema a microprocessore: CPU, memoria RAM e EEPROM per i dati "volatili" e non, memoria FLASH di programma, porte di I/O, contatori e timer, convertitori DAC e ADC, moduli PWM, vari tipi di interfacce di comunicazione (seriale, USB, Ethernet, ecc.), moduli di visualizzazione e così via, tutto, ripeto, contenuto in un Single-Chip :asd:
Naturalmente un microcontrollore e un sistema a microprocessore avranno in comune, oltre alla "struttura" funzionale, il linguaggio Assembly e la logica di programmazione :sisi:
Ecco alcune caratteristiche che evidenziano le differenze tra un microcontrollore e un microprocessore:
1) la fabbricazione di un microcontrollore è basata su un'architettura di tipo HARVARD, in cui la memoria dati è distinta dalla memoria di programma, compresi i relativi bus, il che permette di sovrapporre le operazioni di "fetch" a quelle di accesso ai dati con conseguente aumento del numero di istruzioni eseguite in 1 s;
2) il microcontrollore ha un set ridotto di istruzioni (RISC);
3) il costo di un microcontrollore è nettamente inferiore a quello di un microprocessore;
4) il "firmware" di un microcontrollore risiede nella memoria non volatile e in genere viene progettato per applicazioni già note in fase di progettazione, a differenza di ciò che accade in un microprocessore "general purpose" in cui le funzioni svolte variano in funzione di un "programma" letto da una memoria di massa;
5) la velocità di un microcontrollore è nettamente inferiore a quella di un microprocessore ma un microcontrollore è preferibile in applicazioni Real-Time, in quanto forniscono risultati in tempi prefissati;
6) i microcontrollori vengono preferiti in applicazioni in cui sono richiesti ingombri ridotti, bassi consumi e basse dissipazioni, ecc.
Il primo Single-Chip fu il modello 8048, progettato da Intel e utilizzato nelle tastiere dei PC :asd:
Nel 1993 la Microchip introdusse il PIC16C84, dotato di memoria EEPROM cancellabile elettricamente che permetteva la "riprogrammazione" del firmware a circuito montato (In-System Programming).
Sempre nel 1993 la Atmel presentò il primo microcontrollore dotato di memoria FLASH, più facile da riprogrammare e con un "life-time" più elevato.
Tra i fattori che hanno "decretato" la definitiva affermazione dei microcontrollori sul mercato evidenziamo il basso costo (rispetto ai microprocessori), la vasta scelta di modelli con differenti gradi di complessità, la semplicità di programmazione (sia In-Field che In-System), la vasta gamma di periferiche specializzate e così via.
Vediamo ora alcuni tipi di impiego dei microcontrollori nell'ambito dell'elettronica di "consumo": il primo esempio che mi viene in mente è l'impiego nelle auto e in generale nei mezzi di trasporto, poi nella telefonia mobile e nei prodotti "consumer" (elettrodomestici).
Altre apparecchiature che impiegano microcontrollori sono le fotocopiatrici, gli sportelli ATM, le centraline di controllo dei motori e degli ABS, i distributori di bevande, prodotti biomedicali, strumenti musicali (digitali), ecc.
Tutti questi dispositivi che basano il loro funzionamento sul microcontrollore vengono denominati "Embedded", ossia "incapsulato", a significare il fatto che il sistema MCU interno è specializzato per compiere quella determinata funzione e non è quindi programmabile dagli utenti.
Per concludere questa breve introduzione agli MCU vorrei citare alcuni produttori che li progettano: la Motorola, la Texas Instruments, la NEC, la Microchip, la Infineon, la Fujitsu, la ST Microelectronics, ecc.
Buona lettura ;)
http://www.itiscannizzaro.net/docen...lst/microcontrollori_parte_1(lez_1-2-3-4).pdf

P.S. In seguito parleremo della famiglia PIC della Microchip :asd:
 
Ultima modifica da un moderatore:
U

Utente 16812

Ospite
IL PIC16F84A
--------------------

Il microcontrollore PIC16F84A è probabilmente il più diffuso controllore costruito da Microchip.
Il fatto che esso sia largamente adottato nelle scuole per attività didattiche e da piccole società per vari sistemi di controllo è dovuto al suo basso costo, alla facilità di utilizzo e alla semplicità di programmazione.
Inoltre possiede una memoria di tipo EEPROM, riscrivibile fino a 1000 volte, che lo rende adatto alla progettazione di sistemi prototipali.
Il PIC16F84A è composto da diversi moduli, ossia da più componenti e periferiche, comuni anche ad altri microcontrollori.
Vediamo brevemente quali sono le sue caratteristiche più importanti:
1) architettura Harvard;
2) memoria Flash da 1 kbyte;
3) memoria RAM da 68 byte;
4) memoria di 15 byte per registri speciali;
5) memoria EEPROM da 64 byte;
6) clock da 10MHz;
7) tensione di alimentazione da 2V a 6V;
8) bus dati a 8 bit;
9) timer generico a 8 bit;
10) stack a 8 livelli;
11) timer Watch Dog a 8 bit;
12) 13 pin per l'I/O;
13) modalità stand-by;
14) prescaler programmabile;
15) programmabilità in-circuit;
16) 4 sorgenti di interrupt.
A presto ;)

P.S. http://gianluca82.altervista.org/pic16f84/data/pic16f84.html :sisi:
 
U

Utente 16812

Ospite
ARDUINO (parte prima)
--------------------------------

Nel 2005 un gruppo di ricercatori dell'Interaction Design Institute di Ivrea inventò una piattaforma di sviluppo, denominata "Arduino" (dal nome del Re Arduino di Ivrea anche se un'altra versione vuole che il nome derivi da quello del bar che gli inventori erano soliti frequentare), molto economica e semplice da utilizzare in modo che anche coloro che avessero avuto scarse conoscenze di elettronica ed informatica avrebbero potuto utilizzarla.
Ivrea, ricordo, ospitava la Olivetti negli anni '70, leader nel settore dei calcolatori programmabili, ed era (Ivrea) considerata un centro tecnologicamente molto avanzato.
In seguito il sistema Arduino si diffuse in tutto il mondo, soprattutto in ambito didattico/hobbistico.
Sul sito ufficiale (www.arduino.cc) troverete (in inglese, non esiste una versione italiana del sito) la seguente definizione: "Arduino è una piattaforma elettronica open-source basata su software e hardware facili da usare. E' pensata per chiunque voglia costruire progetti interattivi".
Per piattaforma s'intende un sistema hardware (costituito da un microcontrollore Atmel che integra vari dispositivi come il regolatore di tensione, i connettori per i segnali analogici e digitali, il generatore di clock, ecc.) e software (l'ambiente di sviluppo IDE nel quale si può programmare in linguaggio Wiring, simile al C/C++. Il programma si chiama "sketch") completo, per costruire dispositivi elettronici di vario tipo.
Elenco brevemente alcune caratteristiche del sistema:
1) semplicità di programmazione in C (non è richiesta la conoscenza dell'Assembly del microcontrollore);
2) ampia disponibilità in rete di sketch e di interi progetti;
3) disponibilità di librerie di funzioni (ad es. per il pilotaggio di display LCD);
4) disponibilità di schede aggiuntive, dette "shield", per l'interfacciamento della scheda con motori, trasmettitori, ecc.;
5) semplicità di collegamento, sia col PC che con altri circuiti elettronici.

A000066_featured_2.jpg
 
  • Mi piace
Reazioni: filoippo97
U

Utente 16812

Ospite
ARDUINO (parte seconda)
------------------------------------

Vediamo ora brevemente quali sono le parti di cui la scheda è composta:
1) la presa USB che è l'interfaccia di collegamento al PC, attraverso la quale è possibile inviare il programma dal PC alla scheda;
2) la presa d'alimentazione (7-12V) per il funzionamento "stand-alone" una volta scollegata la scheda dal PC e collegata al circuito al quale è destinata. Un apposito circuito di regolazione della tensione posto sulla scheda fissa la tensione a 5V stabilizzata necessaria ai vari integrati;
3) gli ingressi analogici (analog in) da cui vengono acquisite le tensioni (gli ingressi sono 6) che vengono poi convertite in digitale a 10-bit tramite apposite istruzioni;
4) gli ingressi digitali (14 pin digital), a livelli TTL, che possono essere utilizzati mediante programma;
5) le uscite digitali (sempre individuate tra i 14 pin digital), anch'esse possono essere opportunamente programmate;
6) le uscite PWM, in grado di produrre segnali PWM per il controllo di alcuni attuatori (servomotori, lampade, ecc.). In pratica la modulazione PWM modifica il Duty-Cycle dell'onda rettangolare (da 0% fino al 100%) in base al valore della "modulante" (vedi i miei articoli sulle "Telecomunicazioni" per maggiori informazioni sulla modulazione PWM).
L'informazione contenuta nel segnale PWM è analogica, ecco perché l'istruzione che fissa il segnale su uno dei pin digitali (3, 5, 6, 9, 10, 11) viene chiamata "analogWrite";
7) il microcontrollore, un ATmega 328 della ATMEL, che è la CPU della scheda in grado di eseguire i programmi scritti per la scheda stessa;
8) il generatore di clock, un quarzo che genera la frequenza e scandisce le temporizzazioni di lavoro del microcontrollore (la frequenza può arrivare fino a 20MHz, circa 20 milioni di operazioni al secondo);
9) tre LED, tra cui quello marcato con la L è collegato alla linea 13 del connettore e viene utilizzato per segnalare particolari stati del programma mentre gli altri due, chiamati TX e RX, segnalano la comunicazione tra il PC e la scheda (se lampeggiano, vuol dire che Arduino e il PC stanno comunicando).
www.adrirobot.it/arduino/arduino_UN...co_della_scheda :sisi:
A presto ;)
 
Ultima modifica da un moderatore:
  • Mi piace
Reazioni: filoippo97
U

Utente 16812

Ospite
ARDUINO (parte terza)
--------------------------------

Oggi vedremo come si installa l'ambiente di programmazione (vedi link in basso) :sisi:
Dal sito www.arduino.cc si scarica l'ambiente di programmazione; per installarlo sul PC è sufficiente seguire la procedura guidata.
Ad un certo punto dell'installazione verrà chiesto di installare il driver USB per far comunicare Arduino col PC. Cliccare su "INSTALLA".
Per poter utilizzare l'ambiente di programmazione bisogna collegare la scheda alla porta USB e verificare da "Gestione dispositivi" che la scheda sia stata riconosciuta e associata ad una porta seriale COM.
Si accenderà il LED verde (in seguito, una volta programmata, la scheda potrà funzionare, staccata dal PC, con una tensione di alimentazione tra 7V e 12V, utilizzando l'apposito connettore (il + è un contatto interno)).
Dopo aver lanciato il software, si apre lo sketch di esempio (dall'elenco dei file di esempio), chiamato "Blink", che fa lampeggiare il LED L.
Si seleziona il tipo di scheda utilizzata, ad es. ARDUINO UNO.
Si seleziona la porta USB utilizzata.
Si carica (UPLOAD) lo sketch "Blink", mediante il pulsante "freccetta verso destra", per trasferirlo alla board e farlo eseguire.
Durante l'uploading i LED TX e RX dovrebbero lampeggiare, una volta terminato (su schermo compare il messaggio "Done Uploading") il caricamento lo sketch farà lampeggiare il LED L collegato al pin 13.
In seguito si potranno caricare altri esempi tramite il pulsante "freccetta verso l'alto".
A presto ;)

P.S. http://www.progettiarduino.com/guida-al-software-di-arduino-ide-sketch.html :sisi:
 
Ultima modifica da un moderatore:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili