Guarda nella tua cucina. Un forno a microonde con display LED luminoso e tastiera in gomma? Ti nasconde il cervello. È più di un semplice circuito stampato. È un microcontrollore. Questi piccoli chip di silicio sono ovunque. Sono sepolti in profondità nei prodotti moderni. Probabilmente lo usi decine di volte al giorno.

Pensa alla tua macchina. Tutti ne hanno almeno uno. Il modello di fascia alta può ospitare da 6 a 7 auto. Funziona solo un motore. Utilizzare diversi freni antibloccaggio. Controllo della velocità di crociera? Questo è il terzo. Inizierai a vedere uno schema. Il dispositivo con cui stai parlando probabilmente ne ha uno.

Vengono mostrati in TV. Sono sul videoregistratore. Anche i vecchi impianti stereo di fascia alta si affidano a questi. Vuoi fare una foto? In una DSLR o una fotocamera digitale di alta qualità, lo è. cellulare? Veramente. telecamera. Segreteria telefonica. stampante laser. È un telefono moderno con ID chiamante e uno slot di memoria per 20 numeri? SÌ. cercapersone. SÌ. Vengono utilizzati anche in elettrodomestici ricchi di funzionalità come frigoriferi e lavastoviglie con interfacce digitali.

Fondamentalmente, quando un prodotto interagisce con un utente, ha al suo interno un microcontrollore.

Ma di cosa si tratta esattamente? Perché dovremmo preoccuparci?

Comprendere questo componente cambierà il modo in cui guardi alla tecnologia. Questa non è magia. Questa è solo ingegneria. Capire come funziona apre la scatola nera. Puoi iniziare a costruire qualcosa da solo.

Risolviamo questo mistero. Scopri cos’è un microcontrollore. Comprendi come vengono elaborati i tuoi dati. Allora devi farlo. Realizza un orologio digitale. Questo è tutto. Utilizzare un microcontrollore.

Successivamente, creeremo un termometro digitale.

Questi oggetti sono più che semplici giocattoli. Ti parleranno dei prodotti disponibili in commercio. Scopri come gli ingegneri progettano le apparecchiature che utilizzano. Queste sono informazioni pratiche.

“Fondamentalmente, i microcontrollori sono incorporati nei prodotti e nei dispositivi con cui gli utenti interagiscono.”

Questo è il primo passo. Non resta che l’implementazione.

Un microcontrollore è un computer. Ha la stessa struttura di base del computer desktop su cui probabilmente stai leggendo questo articolo. C’è un processore che esegue il codice. Estrae quel codice dall’archivio. Utilizza la RAM per variabili temporanee. Ha input e output che interagiscono con il mondo.

La differenza è lo scopo. Una macchina desktop è una macchina per uso generale. Esegui un browser, un gioco o un elaboratore di testi. I microcontrollori sono macchine speciali. Fa una cosa. Ed è molto ben fatto.

Un dispositivo utilizza un driver incorporato se soddisfa determinati standard.

Lo scopo incorporato

Questi chip sono nascosti all’interno di altri dispositivi. Controllano la funzionalità o il comportamento dei prodotti di consumo. Non li vedi. Interagisci solo con i contenuti che abilitano.

Sono dedicati. Eseguono un singolo programma specifico. I programmi vengono generalmente archiviati nella ROM (memoria di sola lettura) e cambiano raramente. È cotto.

Il potere è importante qui. Un computer desktop collegato al muro può consumare 50 watt di potenza. Un microcontrollore alimentato a batteria può consumare 50 milliwatt di potenza. Questo fa una grande differenza in termini di efficienza.

Input, output e ambiente

I microcontrollori hanno i propri dispositivi di input. Spesso sfoggiano un piccolo LED o LCD per l’output. Ma nella maggior parte dei casi comunicano con l’hardware che controllano.

Pensa a una TV. Il microcontrollore riceve input dal telecomando. Visualizza l’output sullo schermo. Controlla il selettore del canale. Regola gli altoparlanti. Regola il tono e la luminosità dell’elettronica del tubo a raggi catodici.

Oppure guarda la tua macchina. Il controller del motore riceve input dal sensore di ossigeno e dal sensore di detonazione. Controllare la miscela di carburante. Cronometra le candele.

Anche il forno a microonde è un classico esempio. Prende input da una tastiera. Mostra l’ora sullo schermo LCD. Attiva un relè per accendere o spegnere il magnetron.

Questi chip sono adatti anche ad ambienti difficili. Di solito sono durevoli, anche se non necessariamente forti e durevoli. I controller del motore per le auto dell’Alaska devono resistere a temperature fino a -30°F. In Nevada, potrebbe toccare i 120°F. In combinazione con il calore del motore, la temperatura interna dell’auto può aumentare tra 150°F e 180°F.

Un microcontrollore all’interno di un videoregistratore? Probabilmente non gli importa. Non è affatto robusto.

Hardware interno

Il processore stesso è diverso. Potrebbe essere antico. Può essere sorprendentemente potente.

I processori Z-80 possono essere utilizzati nei telefoni digitali. Era un chip a 8 bit degli anni ’70. Originariamente alimentava i computer domestici.

Il GPS Garmin utilizza una versione a basso consumo dell’Intel 80386. L’80386 è uno standard desktop. Ora è all’interno di un navigatore portatile.

Per compiti semplici, i produttori preferiscono chip microcontrollori speciali. Prezzo e dimensioni sono i fattori decisivi. Motorola 6811 e Intel 8051 sono esempi storici. Sono progettati per essere economici, compatti e a basso consumo.

Poi ci sono i microcontrollori PIC. C’è una ragione per cui questi prodotti sviluppati da Microchip sono così popolari. Per gli standard odierni, sono minimalisti. Ma comprali in quantità e sono incredibilmente economici. Soddisfa le esigenze del progettista con un solo chip.

Perché la semplicità vince

Considera un tipico chip microcontrollore di fascia bassa. Può avere 1000 byte di ROM. 20 byte di RAM. 8 pin I/O.

Se prodotto in grandi quantità, il prezzo è di pochi centesimi.

Non eseguirai mai Microsoft Word su questo. Word richiede 30 MB di RAM e un processore in grado di elaborare milioni di comandi al secondo.

Tuttavia, non è necessario Word per controllare il microonde. Hai bisogno di svolgere un compito specifico. Costi bassi. Bassa potenza. Questa è la proposta di valore dei microcontrollori.

Utilizzo del microcontrollore

La tendenza sta cambiando. Man mano che i dispositivi diventano più intelligenti, il confine tra “microcontrollore” e “processore” diventa labile. Ma la filosofia di base rimane. Se tutto ciò di cui hai bisogno è controllare relè, monitorare sensori e lampeggiare LED, non ti serve un supercomputer. Hai bisogno di un cervello concentrato ed efficiente.

La prossima volta che controlli l’orologio, regoli il termostato o avvii l’auto, ricorda questo chip piccolo, durevole ed economico che funziona silenziosamente in background. Non è solo hardware. È un computer specializzato che fa il suo lavoro.

Il modo migliore è costruire porte TTL della serie 7400 per costruire un orologio digitale. Scopri come si verificano i picchi di tensione attraverso un transistor. Puoi capire perché una singola porta NOT è un chip fisico. Puoi anche vedere che l’implementazione di qualcosa di complesso richiede cablaggi complessi e più chip. Un semplice orologio può richiedere 15 o 20 singoli componenti. funziona. È ingombrante però. Ed è difficile.

Il software cambia completamente l’equazione.

I microcontrollori racchiudono la logica di dozzine di porte su un singolo chip di silicio. tu scrivi il programma. Il chip lo esegue. L’hardware fa il resto. In questo articolo salteremo il labirinto della breadboard e andremo direttamente al codice. Stiamo costruendo un orologio digitale. Costa quasi duecento dollari. Sembra pazzesco per un orologio che indica solo l’ora. L’obiettivo però non è risparmiare. L’obiettivo è imparare a comunicare con il microcontrollore. Se capisci questo, puoi fare qualsiasi cosa.

Timbro BASIC: semplificazione hardware

La maggior parte dei microcontrollori richiede linguaggio assembly o driver complessi. Richiede un programmatore. È necessario comprendere i cicli di clock e la mappatura della memoria. Il BASIC Stamp di Parallax rimuove questo attrito. Questo è un microcontrollore PIC confezionato nel linguaggio BASIC che la maggior parte degli hobbisti conosce.

Il nome è letterale. Il tabellone ha le dimensioni di un francobollo.

Stiamo lavorando alla Revisione D del BASIC Stamp. Non sono solo patatine. Si tratta di una scheda portante completamente assemblata. Include supporto per batteria da 9 volt. Dotato di regolatore di potenza che mantiene stabile la tensione. Include pin di intestazione per linee di ingresso/uscita. C’è anche una piccola area di prototipazione se vuoi saldare uno o due resistori direttamente sulla scheda. Puoi anche acquistare il chip BS-1 originale e collegarlo tu stesso. La revisione D ti risparmia solo il mal di testa.

Perché utilizzare francobolli “costosi”?

I timbri BASIC non sono disponibili per i prodotti di consumo. I produttori li odiano. sono molto lenti. È costoso. Se dovessi produrre 10.000 unità, probabilmente utilizzeresti un PIC o un AVR standard. Ma per la prototipazione? Sono imbattibili.

L’installazione di un normale microcontrollore può richiedere diverse ore. È necessario configurare i fusibili. Devi masterizzare un bootloader. È necessario eseguire il debug dell’output seriale. Il timbro richiede solo due cose. Collegalo a una porta del tuo computer desktop. tu scrivi il programma. Premi invia. Il chip funziona.

Con questa semplicità arriva un compromesso. La memoria BS-1 nel timbro è limitata. La memoria EEPROM contiene solo circa 256 byte. Ciò equivale a circa 75 righe di codice BASIC. Ci sono limitazioni. Non è possibile creare un server web. Non è possibile salvare le immagini ad alta risoluzione. Tuttavia, è possibile far lampeggiare la luce LED. il sensore può essere letto. Puoi far funzionare un orologio.

Costruisci un orologio

Sto usando questo hardware per costruire un orologio digitale. Sarà costoso. La scheda stessa costa una frazione del costo, ma è necessario un computer per programmarla. Devi conoscere i tuoi limiti.

Il limite di 75 righe ti obbliga ad essere efficiente. Non puoi gonfiare il tuo codice. Devi considerare cosa deve effettivamente fare il chip. È necessario visualizzare i secondi? SÌ. Il display deve essere aggiornato ogni millisecondo? Probabilmente no. Ogni riga è importante.

Questo approccio ti insegna il nocciolo dei sistemi embedded. Non si tratta solo di scrivere codice. Sei tu a controllare le tue risorse. Stai lavorando entro i limiti hardware. Se riesci a far funzionare un orologio su uno Stamp, puoi pilotare quasi tutto con un microcontrollore. La logica rimane la stessa. La scala cambia.

L’orologio in sé è semplice. Ma arrivarci è il vero valore. Impara a connetterti usando i pin. Impara a gestire il tempo. Scopri come inserire il codice su un chip con poca o nessuna memoria.

“I francobolli sono così piccoli e funzionano a batteria che puoi portarli quasi ovunque.”

Questa portabilità è un vero punto di forza. Puoi portare l’orologio ovunque. È possibile collegare i sensori. Puoi trasformarlo in una stazione meteorologica. La base è solida. Il codice è serrato. L’attrezzatura è minima.

Non stai solo costruendo un orologio. Stai sviluppando abilità.

Un linguaggio semplificato per la logica incorporata

Scrivere un BASIC stamp non significa reinventare la ruota. Utilizza una versione perfezionata del linguaggio di programmazione BASIC. Se conosci già il BASIC ti sembrerà familiare, solo la sintassi è più precisa. Se hai un background C, Pascal o Java, le funzionalità di Stamp BASIC sono facili da padroneggiare. Se non hai mai scritto codice, non iniziare da qui. Per favore studia prima sul tuo desktop.

Parallax descrive questo ambiente in dettaglio, ma per una rapida panoramica, diamo un’occhiata a una serie specifica di istruzioni progettate per hardware limitato.

Flusso di controllo standard e subroutine

La logica fondamentale rimane costante. Ecco alcuni dei soliti sospetti per la gestione del flusso del programma.

  • “for…next” per il ciclo standard.
  • gosub salta a una subroutine.
  • goto salta alla riga contrassegnata nel codice.
  • “se…allora” per decisioni condizionali.
  • let per il compito (sebbene solitamente facoltativo in Stamp BASIC).
  • “return” termina la subroutine.
  • end interrompe il programma e mette il chip in stato di stop.

Operazioni dirette dei pin I/O

Qui è dove i francobolli vivono e muoiono. I pin sono interfacce con il mondo fisico. BS-1 ha 8 pin (0-7). BS-2 lo raddoppia a 16 (0-15). Vanno in entrambe le direzioni. Puoi leggere da loro e scrivere loro.

Puoi controllarli utilizzando determinati comandi.

  • Il “pulsante” utilizza la logica integrata di antirimbalzo e di ripetizione automatica per leggere gli input.
  • “alto” e “basso” impostano il pin su 1 (+5 V) o 0 (massa).
  • “input” e “output” definiscono la direzione del pin.
  • Collegare il potenziometro al condensatore secondo le istruzioni e il pot leggerà il potenziometro.
  • “pulsin” e “pulsout” gestiscono l’ingresso e l’uscita della durata dell’impulso.
  • pwm produce la modulazione dell’ampiezza degli impulsi per motori o dimmerazione.
  • “reverse” inverte la direzione I/O.
  • serin e serout gestiscono la comunicazione seriale.
  • Il “suono” produce una frequenza specifica.
  • Cambia lo stato del bit del pin di uscita “toggle”.

Funzioni specifiche del timbro ed EEPROM

L’hardware presenta alcune peculiarità a cui il linguaggio risponde direttamente:

  • branch Leggi la tabella dei rami per velocizzare le ricerche.
  • Invia la stringa “debug” alla console del desktop.
  • eeprom gestisce la memorizzazione dei programmi.
  • lookdown e lookup consentono l’indicizzazione delle tabelle.
  • “nap” e “pause” introducono ritardi.
  • random genera numeri pseudo-casuali.
  • “read” e “write” utilizzano la memoria EEPROM non volatile.
  • “sleep” spegne il chip per un certo tempo.

Operatori aritmetici e logici

La matematica è fondamentale. È molto semplice.

  • “+” e “-” per addizione e sottrazione.
  • * per la moltiplicazione di parole basse.
  • “**” per la moltiplicazione di parole alte.
    ●/ per divisione.
  • per modulo.
  • “max” e “min” vengono utilizzati per trovare valori estremi.

Le operazioni logiche sono ad es.

  • “&” (e)
  • “|” (o)
    –^ (XNOR)
    –&/ (NAND)
  • “|/” (NOR)
    –^/ (XNOR)

Gli operatori di confronto per l’istruzione if sono =, <>, <, <=, >, >=, AND, OR.

Limite di memoria: realtà a 14 byte

Le variabili BS-1 non sono infinite. Ci sono esattamente 14 byte di RAM. Devi trattare ogni byte come oro.

Il linguaggio fornisce nomi di variabili predefiniti, ma puoi anche aggiungere alias ai nomi di variabile.

  • w0 - w6 : variabili word a 16 bit.
  • b0 - b13 : variabili byte a 8 bit.
  • bit0 - bit15 : variabili booleane a 1 bit.

Questo è il problema. A causa del modo in cui è mappata la memoria, w0 e b0 (e b1 ) condividono la stessa posizione fisica della RAM. "w1" è condiviso con "b2" e "b3". bit0 –bit15 sono in "w0". Ciò significa che cambiando "w0" cambieranno anche "b0" e "b1". Questo non è un errore. Questa è una limitazione. Devi sapere esattamente cosa stai sovrascrivendo.

Parla al mondo attraverso gli spilli

Perché ci sono così tante istruzioni I/O? Perché questi spilli sono l'unico modo in cui il francobollo comunica con il mondo esterno.

Inviare valori è facile. "high 3" trasmette +5 V sul pin 3. "low 3" invia massa. È possibile scegliere qualsiasi pin da 0 a 7 di BS-1. La logica è simile a BS-2, ma ci sono più pin da controllare.

Istruzioni avanzate come "pwm" per motori e "pot" per resistori variabili semplificano la progettazione dell'hardware. Non è richiesto alcun circuito esterno complesso per ciascun ingresso analogico. Il timbro gestisce la tempistica dell'impulso.

Se sei bloccato, "Programmare e personalizzare un computer BASIC Stamp" di Scott Edward è una risorsa affidabile. Include un progetto di esempio che mostra come collegare insieme queste cose invece di limitarsi a scrivere codice.

Non è necessario un dottorato in sistemi embedded per iniziare a utilizzare il BASIC Stamp. Tutto ciò di cui hai bisogno è un computer desktop e il BASIC Stamp Starter Kit. Questo kit include l'hardware necessario, i cavi di collegamento e un'applicazione desktop per inserire il codice BASIC nella memoria del chip.

Questo pacchetto può essere acquistato da Parallax o Jameco, fornitori che potresti conoscere dai nostri precedenti articoli su cancelli elettronici e orologi digitali. Parallax elenca lo Starter Kit BASIC Stamp D come numero di parte 27202. Il numero di parte di Jameco è 140089. Entrambi costano $ 79.

La Parallax organizza occasionalmente campagne "We've Bagged the Basics". Questo accordo aggiunge "Programmazione e personalizzazione del computer BASIC Stamp" di Scott Edward alla tua scatola. Questo è un riferimento utile se vuoi scavare più a fondo del manuale.

Cablaggio ed esecuzione del codice

La configurazione fisica è semplice. Collega il timbro alla porta parallela del tuo computer. Quindi esegui l'applicazione DOS, modifica il codice e invialo via cavo.

Premi ALT-R per eseguire il programma nell'editor. Il software controlla prima la sintassi. Quindi inserire il codice nella memoria EEPROM del timbro. Il chip lo esegue immediatamente.

L'esempio predefinito crea un'onda quadra sul pin I/O 3. Collegare una sonda logica o un LED a questo pin. Lo vedrai lampeggiare due volte al secondo. Il comando PAUSE fa sì che lo stato cambi ogni 250 millisecondi.

Questo dispositivo assorbe energia sufficiente per funzionare per diverse settimane con una batteria da 9 volt. Puoi spremere più vita modificando i tempi. Accendi il LED per soli 50 ms e poi spegnilo per 450 ms. Anche il passaggio dalle istruzioni PAUSE alle istruzioni NAP può ridurre significativamente il consumo energetico.

Creare un orologio digitale davvero costoso

Spendere $ 79 per luci lampeggianti sembra uno spreco. La maggior parte delle persone desidera costruire qualcosa di utile con il BASIC Stamp. Altri $ 100 ti danno un orologio digitale. Il costo sembra elevato finché non ti rendi conto che le parti non sono usa e getta. Sono riutilizzabili. Li useremo nei progetti futuri.

Guida più numeri con Pin limitati

Supponiamo che tu debba visualizzare un numero su un pin I/O. Nella nostra precedente guida sull'orologio digitale, abbiamo mostrato come utilizzare un chip 7447 per connettersi a un LED a 7 segmenti. Questi chip funzionano bene con il BASIC Stamp. Collegare 4 pin direttamente al 7447. Sul display appare un numero compreso tra 0 e 9. Il timbro BS-1 ha otto pin I/O. Questo è sufficiente per alimentare direttamente due 7447.

L'orologio richiede 4 cifre. Otto pin non possono pilotare quattro chip contemporaneamente. diventi creativo.

Diagramma che mostra le linee I/O del BASIC Stamp che si collegano a quattro chip 7447 con linee di abilitazione

Ecco la configurazione. Otto righe provengono dal Francobollo. Quattro linee sono collegate a tutti e quattro i 7447. Trasportano dati. Le altre quattro linee attivano i gettoni uno per uno. Il pin "E" del 7447 è un ingresso di abilitazione. Oscura il display. Il programma timbro emette la prima cifra. Cambia la prima linea di controllo per abilitare il primo chip. Quindi invia un altro valore. Abilita il secondo chip. Ripeti tutti e quattro più e più volte.

Puoi connetterti in molti modi diversi. 7447 potrebbe essere sufficiente. Utilizzare un demultiplexer 74154. Più conducenti. In questo modo puoi guidare fino a 16 cifre.

La realtà del multiplexing

Ecco come controlli il tuo display a LED. Apri il vecchio calcolatore LED. Accendilo. Agitare mentre si guarda lo schermo. Prestare molta attenzione. È accesa solo una cifra alla volta. Questa tecnica è chiamata multiplexing del display. Inganna l'occhio per vedere il numero completo.

Il multiplexing funziona con gli orologi. Funziona con una calcolatrice. Ha problemi.

I LED consumano energia. Velocemente.
Il LED a 7 segmenti visualizza solo numeri.

Le quantità sono limitate. E le lettere? E i simboli?

Passa al display LCD

Uno schermo LCD è l'alternativa. Questi schermi sono ovunque. Sono facili da collegare a un timbro.

Considera un display alfanumerico a due righe e 16 caratteri. Questo tipo è disponibile da Jameco. Codice articolo 150990. Disponibile anche presso Parallax. Codice articolo 27910.

LCD a due righe da 16 caratteri montato su breadboard

Questa immagine mostra una visualizzazione tipica. È collegato a una breadboard. Ciò rende più semplice l'interfacciamento. Non si saldano i fili alle parti esposte. Stai collegando le righe.

Il display LCD a riga singola è costoso, ma per un semplice motivo

Ottieni quello per cui paghi. Questo tipo di modulo LCD è costoso. Il prezzo è di circa $59. Non sono esattamente spiccioli per un hobbista. Certamente non può essere utilizzato nei forni di serie. Il margine svanirebbe prima di vendere la prima unità.

Ma esistono per una ragione. Il processo di progettazione è semplificato. Puoi pilotare l'intero display utilizzando solo un pin I/O.

Questo modulo contiene logica. Gestisce il lavoro pesante della comunicazione seriale. Il microcontrollore Stamp deve solo inviare dati. Il comando SEROUT in Stamp BASIC rende tutto questo banale. Non sono richiesti cicli temporizzati complessi. Non è necessario lottare con le specifiche del protocollo. L'hardware fa il lavoro.

Funzioni di alimentazione e visualizzazione

Il consumo energetico è molto basso. Questo dispositivo consuma solo 3 milliampere di corrente. Questo è trascurabile per un progetto alimentato a batteria. Si alimenta con una batteria standard da 9 volt tramite un bollo che fornisce i +5 volt e la massa necessari.

Lo schermo stesso è versatile. Mostra testo alfanumerico. Lettere. Numeri. Puoi anche definire caratteri personalizzati se desideri un'icona specifica. È più di una semplice luce lampeggiante. È un vero e proprio output di testo.

Prototipo e produzione

Questa è la realtà del design integrato. Puoi creare prototipi con parti costose ma facili da usare. Quindi riprogetta per i costi.

Se stai costruendo un prodotto commerciale, utilizzerai questo display da $ 59 per convalidare la tua logica. Metti alla prova il tuo codice. Ti assicureresti che l'interfaccia funzioni. Una volta confermato, passerò a un LCD generico più economico. Scriveresti chip driver personalizzati. Ottimizza il tuo software. I moduli costosi sono strumenti di sviluppo, non strumenti di consegna finale.

Stabilisci una connessione

Collegare l'hardware è molto semplice. Fornire +5V e terra. Collegare uno dei pin I/O dell'etichetta alla linea di ingresso del monitor.

Preferisco l'avvolgimento del filo per questo. È pulito. Affidabile. Non richiede saldature. È necessario uno strumento per avvolgere i cavi (parte Jameco 34577) e un filo per avvolgere i cavi da 30 calibri (la parte Jameco 22541 è una scelta comune). La struttura di connessione è compatta. Puoi mettere tutto in una piccola custodia senza tonnellate di saldatore.

Struttura e accuratezza del codice

Il programma BASIC riportato di seguito trasforma il timbro in un orologio. Si presuppone che il display LCD sia collegato al pin I/O 0.

""Essenziale
pausa 1000 ' Attende l'avvio del display LCD
serout 0, n2400, (254, 1) 'Cancella lo schermo
serout 0, n2400, ("time:") 'Stampa il titolo "time:"

' Preimpostare le variabili prima di caricare il programma
b0 = 0 ' Secondi
b1 = 27' Minuti
b2 = 6' Ore

ancora:
b0 = b0 + 1 ' Incremento secondi
se b0 < 60 allora minuti b0 = 0 'reset secondi b1 = b1 + 1 ' addizione

Minuti:
tempo se b1 < 60 b1 = 0 'Azzera i minuti b2 = b2 + 1 ' Aggiunge tempo

Tempo:
Mostra se b2 < 13 b2 = 1 'Tempo di reset (formato 12 ore)

Visualizzazione:
serout 0, n2400, (254, 135) ' posizione del cursore
serout 0, n2400, (#b2, ":", #b1, ":", #b0, " ") ' Visualizza l'ora
pausa 950' attesa 950 ms
Procedi nuovamente con "Riproduci".
""

La logica è semplice. Il comando SEROUT gestisce tutte le comunicazioni. La serie "(254, 1)" funge da codice di escape. Dice al monitor di pulire lo schermo. Il set "(254, 135)" posiziona il cursore. Tutto quello che devi fare è inviare una stringa di testo.

L'orologio è abbastanza preciso. È possibile modificare l'istruzione "PAUSE" modificandola. Può essere completato in pochi secondi ogni giorno. Non è preciso come un orologio atomico. Tuttavia, questo è sufficiente per i dispositivi autonomi.

Questo approccio

Semplici cicli di temporizzazione possono andare alla deriva. Se hai bisogno di precisione, hai bisogno di hardware.

I chip Real Time Clock (RTC) risolvono il problema della deriva. Un cristallo viene utilizzato per mantenere la precisione dell'ora. Attaccalo al timbro. Il timbro legge circa una volta al secondo. Successivamente, visualizza le informazioni.

Non è solo questione di secondi.

La maggior parte dei chip RTC gestiscono anche le informazioni sulla data. Le correzioni degli anni bisestili vengono gestite automaticamente. Non è necessario che il tuo codice calcoli se ci sono 28 o 29 giorni a febbraio. Questo è il ruolo del chip.

Usa l'orologio da tasca B

Combinare RTC e timbri può essere complicato. Le linee dati e orologio richiedono più pin. C'è un modo più semplice.

Utilizzare l'orologio da tasca B.

Questo modulo semplifica la connettività. Utilizzare una connessione seriale. Per la comunicazione è richiesto un solo pin I/O. Ciò libera pin per altri sensori e display.

L'attrezzatura è compatta. Ha le dimensioni di un quarto circa. Internamente, il chip dell'orologio, il cristallo e la logica seriale sono integrati in un unico pacchetto.

Dove l'hai comprato?

Due principali fornitori immagazzinano questa parte. Il codice prodotto di Jameco è 145630. Parallax lo vende con il codice prodotto 27962.

Anche il prezzo è un fattore. L'orologio da tasca B viene venduto per circa $ 30. Questo è ripido per un controller per tostapane hobbista. Non lo incorporeresti in un dispositivo di consumo. Ma per la prototipazione? Abbastanza economico da provare.

Elimina il fastidio di gestire manualmente i protocolli I2C o SPI. Scrivi meno codice. Avrai un orario più preciso.

Realizza un termometro digitale

Sappiamo già come il timbro comunica con il display LCD. Quindi diamogli un modo per percepire il mondo. Più specificamente, sto costruendo un termometro digitale. Al centro del progetto c’è un chip sensore di temperatura specializzato, il DS1620.

Questo non è solo un resistore la cui resistenza cambia con il calore. Il DS1620 è un sistema completo in un unico pacchetto a 8 pin. Contiene un dispositivo di rilevamento della temperatura, un convertitore analogico-digitale (A/D) e un registro a scorrimento per elaborare l'output dei dati. Contiene anche una piccola sezione di EEPROM per memorizzare impostazioni come la modalità termostato.

Comprendere le modalità operative del DS1620

I chip sono flessibili. Funziona come un termostato separato e attiva un relè quando la temperatura supera la soglia. In alternativa può essere collegato a un microcontrollore e utilizzato esclusivamente come termometro di precisione. La EEPROM ricorda la modalità e le impostazioni selezionate.

Anche il collegamento ai BASIC stamp è semplice. Non sono necessari circuiti complessi. Seguire le specifiche dello stack.

  • Pin 8: Alimentazione +5 volt.
  • Pin 4: Terra.
  • Pin 1 (Dati): Linea dati. I pezzi entrano ed escono da qui.
  • Pin 2 (orologio): Linea orologio. Questo sincronizza il trasferimento dei dati.
  • Pin 3 (Reset/Seleziona): Linea di controllo. Comunica con il chip man mano che sali di livello. Basso per deselezionare.

In questo esempio, li colleghiamo a specifici pin I/O sul timbro.

  • Dati (pin 1) sono collegati a Timbro Pin 2.
  • L'orologio (pin 2) è collegato al pin 1 del timbro.
  • Reset (pin 3) è collegato a Timbro pin 0.

Vale la pena pagare per ottenere il pacchetto applicativo Jameco o Parallax. Questo documento elimina le congetture dalla configurazione.

Questo può essere costruito su un'area di prototipazione Stamp Vector o su una breadboard. Dopo aver collegato il DS1620, collegare il display LCD al pin I/O 3. Quindi scarica il seguente codice BASIC.

""Essenziale
Seleziona/reimposta la riga con il simbolo RST = 0 ' 1620
Simbolo CLK = 1' 1620 linea di clock del registro a scorrimento
Linea dati 2' con simbolo DQ = 1620
Simbolo DQ_PIN = pin2 ' Rappresentazione pin di DQ
Simbolo LCD = linea dati LCD da 3'

Inizia:
RST basso "Rimuovi 1620 a meno che non venga interpellato"
I pin dell'orologio del 1620 HIGH CLK sono impostati su HIGH per impostazione predefinita.
mettere in pausa 1000 e attendere che il termometro e il display LCD si accendano

Impostazioni:
HiRST'Seleziona 1620
b0 = $0C ' $0c sono 1620 byte di comando ' significa 'Scrivi configurazione'
Invia a gosubshift_out '1620
b0 = %10 ' %10 è 1620 byte di comando ' Imposta la modalità termometro
Invia a gosubshift_out '1620
Deseleziona "RST basso" 1620
Pausa 50' è un ritardo EEPROM di 50 ms

Avvia la conversione:
b0 = $EE ' $EE è 1620 byte di comando ' Avvia la conversione
HiRST'Seleziona 1620
Invia a gosubshift_out '1620
Deseleziona "RST basso" 1620

"Questo è il ciclo principale": legge e visualizza la temperatura ogni secondo

Ciclo principale:
HiRST'Seleziona 1620
b0 = $AA ' $AA sono 1620 byte di comando utilizzati per leggere la temperatura
Invia a gosubshift_out '1620
gosub SHIFT_IN 'Lettura temperatura da 1620'
"RST basso" deseleziona il DS1620.
gosub display 'Visualizza la temperatura in gradi Celsius
Pausa 1000 'Aspetta un attimo
vai a main_loop

'shift_out subroutine' invia il contenuto del byte b0 a 1620
Esci:
Output DQ ' Imposta il pin DQ su output
per b2 = da 1 a 8
CLK basso
DQ_PIN = bit0 'Invia bit di dati
CLK elevato
b0 = b0/2
Avanti
Indietro

'la subroutine shift_in ottiene 9 bit 1620' di temp
Trasferisciti in:
input DQ 'Imposta il pin DQ sulla modalità input'
w0 = 0 ' Cancella w0
per b5 = da 1 a 9
w0 = w0/2 ' Sposta l'input a destra.
CLK basso
bit8 = DQ_PIN 'Leggi questo bit
CLK elevato
Avanti
Indietro

'Visualizza la temperatura in gradi Celsius
Visualizzazione:
se bit8 = 0 allora pos 'se bit8=1' allora temp è negativa
b0 = b0 &/ b0 ' NAND b0 con se stesso e capovolgilo '
b0 = b0 + 1

Posizione:
LCD seriale, n2400, (254, 1) 'LCD vuoto
serout LCD, n2400, ("Temp = ") ' Visualizza "Temp="' sullo schermo
bit9 = bit0 'Risparmia mezzo grado
b0 = b0 / 2 ' converte in gradi

if bit8 = 1 then neg ' Controlla se temp è un numero negativo

serout LCD, n2400, (#b0) 'Visualizza temperatura positiva
vai a metà

Negatività:
serout LCD, n2400, ("-", #b0) 'Visualizza temperatura negativa

metà:
Se bit 9 = 0, numero pari
serout LCD, n2400, (0,5 C") 'visualizzazione mezzo grado
ho finito

Numero pari:
serout LCD, n2400, (.0 C") 'Visualizza mezzo grado

fatto:
Indietro
""

Esegui questo programma. Il display LCD mostra la temperatura in gradi Celsius con una precisione di 0,5 gradi.

Come funziona il complemento a 2 in DS1620

Il DS1620 non invia numeri semplici. Misurato 0,5 gradi Celsius. Stampa un numero binario in complemento a due a 9 bit.

Perché è importante? Corretta gestione delle temperature negative. L'intervallo va da -55°C a +125°C (da -110°F a +250°F). Dividi questo valore per due per ottenere la misura in gradi Celsius.

Il complemento a due è il modo standard in cui i computer rappresentano gli interi con segno. Il bit più a sinistra è il bit del segno. Se 0, il numero è positivo. Se 1, il numero è negativo.

Consideriamo un esempio a 4 bit. Questi valori vanno da -8 a +7 anziché da 0 a 15.

  • "0111" è 7
  • "0000" è 0
  • "1000" è -8
  • "1111" è -1

Per convertire un numero negativo in un numero positivo e visualizzarlo, capovolgi tutti i bit e aggiungi 1. Questo codice fa proprio questo nella subroutine "visualizza". Controlla "bit8" (bit di segno del risultato a 9 bit). Se negativo, inverti "b0" e aggiungi 1. Quindi spostalo a destra per ottenere potenze intere.

Estrae la logica del codice

Questo programma utilizza tre subroutine per gestire il protocollo di comunicazione.

Definizione del simbolo
Questo codice utilizza "simbolo" per mappare i numeri PIN fisici su nomi leggibili dall'uomo. RST, CLK, DQ corrispondono ai pin stamp 0, 1, 2. Ciò rende il tuo codice portabile. Anche se cambi la definizione del "simbolo", il resto della logica rimane lo stesso.

Disinstalla il programma
shift_out prende i byte di b0 e li invia un bit alla volta.
1. Assegnare il pin dati (DQ ) come uscita.
2. Girare 8 volte.
3. Controlla il bit meno significativo di "b0".
4. Tirare verso il basso il perno dell'orologio, impostare il perno dei dati su quel bit e sollevare il perno dell'orologio.
5. Sposta b0 a destra in modo che il bit successivo si sposti nella posizione meno significativa.

Procedura di cambio turno
"shift_in" legge un valore di temperatura a 9 bit in "w0".
1. Configurare i pin dati come ingressi.
2. Gira 9 volte.
3. Tirare verso il basso il perno dell'orologio.
4. Leggere lo stato del pin dati su `.

Il codice non si limita a leggere i dati. Getta le basi. Forza i pin CLK e RST del DS1620 allo stato previsto. Questo è il primo passo.

La prossima è la configurazione. Il microcontrollore scrive il byte di comando nella memoria EEPROM del DS1620. Fai entrare il chip in "modalità termometro". Ecco il problema. I modelli vengono archiviati nella memoria non volatile. Devi farlo solo una volta. Tecnicamente, puoi rimuovere questa parte del codice dopo la prima esecuzione, risparmiando spazio prezioso sul programma. Ma dobbiamo lasciarlo così? È più sicuro.

Il programma invia quindi il comando $EE. Tieni presente che il prefisso "$" indica un numero esadecimale. Il valore decimale di $EE è 238. Questo avvia il processo di conversione. Il termometro inizia a funzionare.

Poi inizia il ciclo.

Il timbro chiede al DS1620 la temperatura attuale ogni secondo. Il chip risponde con un valore a 9 bit. Questo valore è nella variabile w0. Il trasferimento dei dati avviene un po' alla volta. Il timbro attiva/disattiva la linea CLK sul DS1620 per spostare i bit.

La struttura della variabile è gerarchica. w0 (16 bit) copre b0/b1 (8 bit) e copre da bit0 a bit15 (1 bit). Questo codice divide w0 per due quando il bit appare nel bit 8. Ciò sposta ciascun bit a destra. Questo è un ottimo modo per racchiudere temperature a 9 bit in una variabile.

Quando w0 salva i dati, questi vengono applicati dalla subroutine dello schermo. Controlla se il numero è positivo o negativo. Formatta l'output per lo schermo LCD. I risultati vengono visualizzati in gradi Celsius. Se hai bisogno di Fahrenheit, la conversione è semplice.

dF = dC * 9/5 + 32

E' molto semplice. funziona. Ora hai un termometro molto costoso.

Perché pagare così tanto?

Immagina di lavorare per un'azienda farmaceutica. Consegni medicinali costosi in tutto il paese. Questi medicinali devono essere conservati a determinate temperature. Lo scongelamento o il congelamento lo danneggeranno. Perdita totale.

Puoi utilizzare Stamp per costruire un Termometro con registro dati.

Jameco vende il Modulo RAM Pack (codice articolo 143811). Anche Parallax vende lo stesso prodotto (numero prodotto 27960). Si tratta di un chip RAM da 8 KB a basso consumo con un'interfaccia seriale. Se hai bisogno di più spazio puoi scegliere anche la versione da 32 KB.

Aggiungi questo componente al tuo timbro. Scrivi il codice che salva le letture della temperatura nella RAM ogni minuto. Infila il timbro nella spedizione della droga. Riceverai un timbro quando arriverai a destinazione. Il modulo RAM ora registra la cronologia della temperatura dell'intero viaggio. Saprai esattamente se i farmaci sono mai usciti dalle specifiche.

Questa è solo una delle applicazioni. Una volta compreso come funzionano i microcontrollori, puoi utilizzare Stamp per costruire innumerevoli dispositivi utili.

È possibile trovare ulteriori informazioni sui microcontrollori e argomenti correlati dai collegamenti nelle pagine seguenti:

Le specifiche sono diventate più spesse. Questo non è un manuale che puoi leggere una volta e poi dimenticare. Più spesso, nel senso che c'erano i numeri veri e propri. Questi numeri ti dicono esattamente cosa potrebbe fare la macchina prima di acquistarla. E ci sono ancora più numeri. La prossima è la dichiarazione di non responsabilità sulla durata della batteria. tecnicamente era vero, lo è ma praticamente è inutile.

Controllo della realtà dell'hardware

Ottieni il processore. È veloce. È più veloce dell'ultimo. È più veloce dei vecchi laptop che sembravano il motore di un jet che decolla ogni volta che apri un foglio di calcolo. Ma non è magia. Questo chip non pulisce la stanza. Elabora semplicemente i dati. Velocemente. È molto veloce. Se stai modificando un video. O codifica. Oppure apri 50 schede e ti chiedi perché il tuo computer A si surriscalda?

Lo schermo è più luminoso. Questo è il principale punto di forza. Puoi guardarlo fuori. Senza strizzare gli occhi. Senza desiderare che i tuoi occhi avessero l'HDR integrato. I colori sono accurati. Se ti interessa questo genere di cose. Se sei un designer. O semplicemente stanco di foto che sembrano scattate in una grotta.

Successivamente, il peso. È più leggero. Ma non è leggerissimo. Lo senti ancora nella borsa. Ha una forte presenza. Un promemoria che stai portando con te un computer A. Non è un tablet. Non è un quaderno nel senso cartaceo. Un computer. Con i porti. Porti veri. Non è un dongle. Non adattatori che costano più del dispositivo. Questo è importante. Molto. Perché i dongle si rompono. Gli adattatori si perdono. I porti restano.

Stranezze e aggiornamenti del software

Il sistema operativo è lo stesso. Soprattutto. Ma ci sono anche dei cambiamenti. Quelli piccoli. Cose che noti dopo una settimana? Non immediatamente. Apparirà immediatamente una nuova icona. Nuova combinazione di colori. Quando apri l'app che hai utilizzato 10 minuti fa, si verifica un piccolo ritardo.

Gli aggiornamenti avvengono automaticamente. Questo è buono. E cattivo. Bene perché non devi pensare alle patch di sicurezza. Cattivo perché la tua macchina potrebbe riavviarsi proprio quando pensi di aver finito per la giornata. Succede in momenti scomodi. Proprio quando stai per salvare un documento. O subito prima di una riunione.

Questo pacchetto software è incluso. È sempre legato insieme. Hai un elaboratore di testi. Foglio di calcolo. strumenti di presentazione. lavorano insieme. Non sempre funzionano bene insieme. Ma ci hanno provato. C'è la sincronizzazione cloud. È veloce. Generalmente. A volte si ferma. Successivamente è necessario riavviare l'applicazione. Allora devi pregare.

Trappola dell'ecosistema

Questa è la parte che le persone ignorano finché non è troppo tardi. Il dispositivo non è nel vuoto. Vive in giardino. Giardino recintato. Puoi uscire. Ma perché lo facciamo? Queste app sono state accuratamente selezionate. Il mix è profondo. Il telefono comunica con il portatile. L'orologio dice al tuo telefono cosa fare. È molto conveniente

Ma è anche limitante. Quando cambi marca. Questa comodità è andata perduta. Elimina il cambio di canale. Ho perso gli appunti condivisi. Non riesco a rispondere alle chiamate sul mio computer A. Sembra una cosa da piccoli. non lo è. È un attrito quotidiano. Aggiungi un po' di eccitazione.

Il resto è il prezzo degli accessori. Non è il prezzo. Pagamento. Proprio cavo. caricatore speciale. Questo è un caso perfetto. È costoso. E sono bellissimi. E