Risultati da 1 a 6 di 6

Discussione: Arduino

  1. #1
    Advanced Member
    Data Registrazione
    14-09-2010
    Messaggi
    660

    Arduino

    I 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.
    Naturalmente un microcontrollore e un sistema a microprocessore avranno in comune, oltre alla "struttura" funzionale, il linguaggio Assembly e la logica di programmazione.
    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.
    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

    P.S. Http://www.itiscannizzaro.net/docenti/rocchi/materiali/4blst/microcontrollori_parte_1(lez_1-2-3-4).pdf
    Ultima modifica di Kriss2; 18-07-2019 alle 08.19.29

  2. #2
    Advanced Member
    Data Registrazione
    14-09-2010
    Messaggi
    660
    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. gianluca82.altervista.org/pic16f84/data/pic16f84.html
    Ultima modifica di Kriss2; 08-07-2019 alle 11.52.22

  3. #3
    Advanced Member
    Data Registrazione
    14-09-2010
    Messaggi
    660
    ARDUINO (prima parte)
    -----------------------------

    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.



  4. #4
    Advanced Member
    Data Registrazione
    14-09-2010
    Messaggi
    660
    ARDUINO (seconda parte)
    ------------------------------

    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
    A presto

  5. #5
    Advanced Member
    Data Registrazione
    14-09-2010
    Messaggi
    660
    ARDUINO (terza parte)
    --------------------------

    Oggi vedremo come si installa l'ambiente di programmazione
    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. www.progettiarduino.com/guida-al-so...ide-sketch.html

  6. #6
    Advanced Member
    Data Registrazione
    14-09-2010
    Messaggi
    660
    ARDUINO (quarta parte)
    ----------------------------

    Per terminare questa mini-guida alla board Arduino, oggi vedremo in breve quali sono le sue caratteristiche:
    1) microcontrollore ATmel ATmega 328;
    2) tensione di lavoro: 5V;
    3) tensione in ingresso da 7V a 12V;
    4) ingressi analogici: 6 pin;
    5) 14 pin (di cui 6 forniscono segnali PWM) I/O digitali;
    6) corrente DC per ciascun pin I/O: 40mA;
    7) 32kB di Flash Memory (0.5kB utilizzati dal bootloader);
    8) 2kB di SRAM;
    9) 1kB di EEPROM;
    10) clock da 16MHz.
    Ciascuno dei 14 pin digitali può funzionare sia come input che come output, usando le istruzioni pinMode(), digitalRead() e digitalWrite(). Essi sono in grado di operare tra 0V e 5V e possono "erogare" o ricevere 40mA al massimo.
    I pin digitali hanno un resistore di pull-up di 20-50kOhm; per poterlo attivare (per default è disinserito) si utilizzano le istruzioni pinMode(pin, INPUT) e digitalWrite(pin, HIGH).
    Inoltre alcuni pin digitali hanno speciali funzionalità, come quella di fornire segnali PWM (se impostati come uscite), comunicare col bus seriale SPI, ricevere e trasmettere dati seriali TTL e così via
    Le tensioni sui 6 pin analogici (da A0 a A5) vengono convertite in digitale a 10-bit (1024 valori) e per default i valori convertiti sono compresi tra 0V e 5V; volendo cambiare il valore di fondoscala è possibile agire sul pin AREF (mediante l'istruzione analogReference()).
    Anche i pin analogici hanno alcune funzionalità speciali: ad es. sono in grado di supportare la comunicazione TWI (Two-Wire Interface) per il collegamento di periferiche lente ad una scheda madre (TWI è un bus seriale, detto anche I2C).
    Infine il pin ARES, come già detto, fornisce la tensione di riferimento per gli ingressi analogici mentre il pin di RESET è in grado di resettare il microcontrollore (se portato BASSO).
    A presto

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •