annuncio

Comprimi
Ancora nessun annuncio.

Microcontrollore... che animale è?

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • Microcontrollore... che animale è?

    Apro le danze

    Il microcontrollore è un dispositivo programmabile in grado di memorizzare, eseguire e gestire informazioni di dati. Ne consegue che i microcontrollori sono adatti a gestire situazioni di ogni genere. Possono acquisire dati dall’esterno, processarli ed agire di conseguenza compiendo operazioni che noi abbiamo prefissato in fase di programmazione. In sostanza, lui fa ciò che noi gli diciamo di fare.

    Il microcontrollore è un sistema completo formato da diversi elementi:
    CPU (Central Processor Unit); il cervello del sistema.
    ALU (Aritmetich Logic Unit); unità che effettua le operazioni logiche */+-.
    FLASH MEMORY; memoria che contiene il nostro programma. Può essere scritta e sovrascritta.
    RAM (Random Access Memory); memoria dove custodire i dati temporanei usati dal nostro programma.
    EEPROM (Electrically Erasable Programmable Read-Only Memory); memoria che può essere usata per scriverci dati e conservarli anche a micro disalimentato. I dati posso essere letti e riscritti in qualsiasi momento.
    TIMER; unità che gestisce i tempi di operazione del micro ed i tempi di esecuzione.
    PORTE I/O; porte Input/Output di comunicazione con l’esterno.
    REGISTRI; speciali “pagine” che gestiscono le unità interne ed i loro modi di funzionamento. Possono essere letti e scritti.

    Il solo ed unico linguaggio che i microcontrollori capiscono, è il codice macchina, ovvero una serie di istruzioni in codice binario che sono state impostate di targa dal costruttore.
    Per rendere più malleabile il codice macchina, i produttori forniscono uno “pseudo-codice” chiamato ASSEMBLY che consiste in abbreviazioni letterali che saranno poi convertite in codice macchina da appositi programmi chiamati ASSEMBLER.
    Anche il codice Assembly è abbastanza ostico e non sempre facile da ricordare a livello sintattico-mnemonico. Per agevolare il lavoro agli addetti, oggi possiamo usare i più comuni linguaggi di programmazione (come il C, C++ o il vecchio Basic) tramite programmi chiamati COMPILATORI.

    Ricapitolando, possiamo scrivere il nostro programma in C++ ed il COMPILATORE lo trasformerà direttamente in codice macchina tramite un ASSEMBLER interno, per poi essere a sua volta scritto nella FLASH MEMORY del micro.

    --------------------------------------------------------------------------------------------------------------------------
    Il modo più semplice ed immediato per affacciarsi al mondo dei microcontrollori è l’uso di schede di prototipazione tipo Arduino, che non solo sono già belle e montate, ma sono anche interfacciate via USB con il computer che contiene il compilatore/programmatore.

    Ci sono diverse tipologie di schede che si differenziano principalmente nella quantità di memoria FLASH (dove si scrive il nostro programmino). Fondamentalmente i comandi ed il modo di programmazione sono pressoché identici, rendendo “trasportabili” i vari programmi (chiamati sketch) da una scheda all’altra senza grandi cambiamenti se non qualche piccolo adattamento software.

    La scheda base, se così possiamo chiamarla, è l’Arduino UNO. Questa scheda monta a bordo un controllore con una frequenza di clock di 16MHz. Ha tredici pin di ingresso/uscita digitali (0-5 volt) e di questi, due pin possono essere usati per la comunicazione seriale TTL (ovvero con valori 0-5V). Sempre di questi tredici pin, sei pin possono essere usati per generare un segnale PWM, ovvero un’onda quadra con duty-cycle variabile. Proseguendo, abbiamo sei ingressi analogici con cui misurare tensioni massime di 5V. Il convertitore A/D (analogico/digitale) è a 10 bit.

    Per il momento tralasciamo gli altri pin che vedremo in seguito a cosa servono.
    Ultima modifica di IZ0GIF; 21-02-13, 15:20.
    73 de IZ0GIF - Mimmo

    www.iz0gif.it

    La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

  • #2
    Re: Microcontrollore... che animale è?

    ...oh che bello! Bravo

    Allora intanto andro sulla baya a ordinar l'arduino, mega... o uno?
    little pistol station op. Leo - stazione Yaesuita
    IW5EIJ's website


    ARI Firenze


    Radio what's new?
    Radio, someone still loves you


    de IW5EIJ / KK6TIF

    Commenta


    • #3
      Re: Microcontrollore... che animale è?

      Dato che ci sei, prendi una MEGA che lascia molto più spazio alla fantasia
      73 de IZ0GIF - Mimmo

      www.iz0gif.it

      La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

      Commenta


      • #4
        Re: Microcontrollore... che animale è?

        Continuiamo.

        In campo radioamatoriale, ci troviamo spesso nella situazione di dover effettuare delle misure e ricavarne, da esse, informazioni utili. I campi sono tra i più svariati, dalla misura del ROS alla lettura di una tensione o di un dato seriale o alla rilevazione dello stato di un pin. Per iniziare, vediamo come trasformare una lettura analogica in un dato comprensibile al nostro micro.

        Il convertitore A/D (analogico/digitale)
        Se il nostro micro ragiona solo con codici binari, come facciamo a fargli leggere una tensione che è una grandezza analogica? Ecco che ci viene in aiuto il Convertitore Analogico/Digitale.

        Il convertitore Analogico/Digitale è un dispositivo che trasforma una tensione, quindi una grandezza analogica, in un valore numerico in forma binaria. La risoluzione di un convertitore A/D si misura in bit ed indica il numero massimo di livelli che può restituire in uscita.

        Facciamo un esempio con un convertitore A/D ad 8 bit.
        Un convertitore ad 8 bit può restituire un valore binario massimo di 1111 1111 che sono, in decimale, 256 livelli. In realtà, se fate la conversione da Binario a Decimale, quel valore rappresenta 255 ma considerando che anche lo zero è un valore, ecco che abbiamo 256 livelli (da 0 a 255). Per ricavare il numero di livelli ottenibili, basta fare 2^8 dove 2 rappresenta il numero di valori ottenibili da un bit (1 e 0) e 8 rappresenta la risoluzione del nostro convertitore. Un convertitore a 10 bit, ad esempio, avrà una risoluzione massima di 1024 livelli (2^10).

        Torniamo al nostro convertitore ad 8 bit. Se campioniamo una tensione di 5V, avremo in uscita dal convertitore un valore decimale di 255 (1111 1111 binario). Una tensione di 2,5V darà un valore di 127 (0111 1111 binario) e via dicendo.

        Se dividiamo i nostri 5V per 256 (valori massimi ottenibili da un A/D ad 8 bit) avremo che ogni bit restituito equivale ad una tensione di 0,0195V. In questo modo potremo manipolare il valore di una tensione e far fare tutte le operazioni possibili al micro. Per calcolare il valore di tensione letto dal nostro convertitore A/D, basterà moltiplicare il valore da esso restituito e moltiplicarlo per 0,0195V.

        Es.
        - A/D 8 bit;
        - Valore restituito dal convertitore A/D = 0110 0010 (valore decimale 98)
        - Tensione letta = ((5/256)x98) = 1,914V
        Ultima modifica di IZ0GIF; 22-02-13, 14:43.
        73 de IZ0GIF - Mimmo

        www.iz0gif.it

        La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

        Commenta


        • #5
          Re: Microcontrollore... che animale è?

          Ciao,

          c'è un refuso...

          V = (( 5/256)x98) = 1,914 se non ho preso un granchio colossale.

          73, Piero

          Commenta


          • #6
            Re: Microcontrollore... che animale è?

            Originariamente inviato da I5SPO Visualizza il messaggio
            Ciao,

            c'è un refuso...

            V = (( 5/256)x98) = 1,914 se non ho preso un granchio colossale.

            73, Piero
            Ciao Piero,
            sistemato, grazie
            Ultima modifica di IZ0GIF; 22-02-13, 14:45.
            73 de IZ0GIF - Mimmo

            www.iz0gif.it

            La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

            Commenta


            • #7
              Re: Microcontrollore... che animale è?

              quando ero ''giovane'' ho scritto diversi software in assembler x il 6502..

              bei tempi..
              73 arb

              Commenta


              • #8
                Re: Microcontrollore... che animale è?

                arrivato caldo caldo dalla baya (via G land)... e mo'?
                Scarico il sw per programmare & compilare direi, quale consigli?

                pse k
                File allegati
                little pistol station op. Leo - stazione Yaesuita
                IW5EIJ's website


                ARI Firenze


                Radio what's new?
                Radio, someone still loves you


                de IW5EIJ / KK6TIF

                Commenta


                • #9
                  Re: Microcontrollore... che animale è?

                  Ciao Leo,
                  intanto scaricati il software:
                  http://arduino.cc/en/Main/Software

                  Se non sei pratico del linguaggio di programmazione, inizia con le cose semplici e prendi come riferimento la lista dei comandi http://arduino.cc/en/Reference/HomePage

                  Quì c'è un ottimo corso per iniziare:
                  http://www.mauroalfieri.it/corso-arduino

                  Inizia a prendere confidenza con i comandi e prova a scrivere il tuo primo sketch, tipo quello di accendere e spegnere un led.

                  Quando connetterai la scheda al pc, non verrà riconosciuta. I drivers li trovi dentro la cartella di Arduino. Se hai problemi, fai un fischio.

                  Sto preparando un po di materiale, probabilmente domani lo pubblico sul forum.
                  Ultima modifica di IZ0GIF; 27-02-13, 17:50.
                  73 de IZ0GIF - Mimmo

                  www.iz0gif.it

                  La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

                  Commenta


                  • #10
                    Re: Microcontrollore... che animale è?

                    Tenk iù very grazie!

                    Fai con calma, come vedi non l'ho neppure sballato, solo aperto la busta per veder se c'era davvero HI
                    La cosa mi attrae ma il tempo scarseggia... e prima nel buffer (fifo) c'è da tarare il XV per i 70MHz
                    little pistol station op. Leo - stazione Yaesuita
                    IW5EIJ's website


                    ARI Firenze


                    Radio what's new?
                    Radio, someone still loves you


                    de IW5EIJ / KK6TIF

                    Commenta


                    • #11
                      Re: Microcontrollore... che animale è?

                      Nel dubbio vi informo che leggo avidamente, anche se non sarò mai in grado di controllare un DDS. Però mi piace.

                      Paolo I4EWH
                      http://i4ewh.altervista.org

                      Commenta


                      • #12
                        Re: Microcontrollore... che animale è?

                        Paolo,
                        sarai la mia sfida personale
                        Non mi arrenderò finchè non ti vedrò girare un encoder per cambiare frequenza al DDS!!!
                        73 de IZ0GIF - Mimmo

                        www.iz0gif.it

                        La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

                        Commenta


                        • #13
                          Re: Microcontrollore... che animale è?

                          Originariamente inviato da IZ0GIF Visualizza il messaggio
                          Paolo,
                          sarai la mia sfida personale
                          Non mi arrenderò finchè non ti vedrò girare un encoder per cambiare frequenza al DDS!!!
                          Mimmo,
                          digli che si può anche accordare un lineare usando un Arduino, e vedrai Paolo che si butta ad imparare !

                          Naturalmente, lineare da 5 KW out ... hi

                          Ciao,
                          Piero.

                          Commenta


                          • #14
                            Re: Microcontrollore... che animale è?

                            Se vi piace il Sangiovese di Romagna sono disposto a offrire da bere molto volentieri!

                            Paolo I4EWH
                            http://i4ewh.altervista.org

                            Commenta


                            • #15
                              Re: Microcontrollore... che animale è?

                              PORTE DIGITALI
                              Per interfacciarsi al mondo esterno, i microcontrollori hanno a disposizione delle porte digitali in grado di essere configurate come ingressi o come uscite. Il livello logico usato da queste porte è del tipo TTL, ovvero 0 (GND) per il livello basso e +5V per il livello alto.

                              Il livello logico alto (+5V) è in grado di fornire una corrente molto piccola, parliamo dell’ordine di 30-40 mA. Se si superano tali valori, la porta sarà irrimediabilmente compromessa. Quindi, se vogliamo alimentare un led o un’altra porta digitale, non avremo nessun problema ma se vogliamo alimentare un relè, allora dobbiamo per forza di cose interporre un piccolo transistor di segnale.

                              La configurazione delle porte va dichiarata nel SETUP del programma ma all’occorrenza possono essere riconfigurate durante l’uso. Le porte solitamente sono raggruppate in banchi da 8 (le porta sono numerate da 0 a 7) e generalmente sono contrassegnate da lettere tipo A, B, C, ecc. Possiamo “leggere” e “scrivere” lo stato di ogni singola porta o di un banco intero tramite comandi software a seconda delle nostre esigenze.

                              Ad esempio, posso leggere lo stato della porta A1 ottenendo un singolo bit di risposta, ovvero uno o zero (equivalente allo stato vero o falso). Posso altresì leggere lo stato di un intero banco ottenendo come risposta un numero binario compreso tra 00000000 e 11111111. Ancora, possiamo leggere lo stato di alcuni gruppi di porte, tipo, i primi quattro bit della porta A oppure gli ultimi tre o ancora i quattro centrali ecc.

                              Nell’immagine allegata potete farvi un’idea di come sono suddivise le porte del microcontrollore che equipaggia la scheda Arduino UNO.
                              File allegati
                              73 de IZ0GIF - Mimmo

                              www.iz0gif.it

                              La ragione parla, l'ignoranza urla. --- Chi sa, fa, chi non sa, insegna.

                              Commenta

                              Sto operando...
                              X