Quali sono alcuni semplici progetti che puoi fare per apprendere le basi della programmazione integrata? [chiuso]

StackOverflow https://stackoverflow.com/questions/111254

  •  02-07-2019
  •  | 
  •  

Domanda

Per qualcuno che vuole imparare i rudimenti della programmazione integrata, quali sono alcuni semplici progetti che potrebbero affrontare?

Stiamo parlando di qualcuno che conosce le basi dei circuiti elettronici (resistori, condensatori, circuiti integrati digitali, ecc ...) e può eseguire saldature di base. Un appassionato di elettronica che sta cercando di entrare nella programmazione integrata, o forse un secondo anno o uno studente junior in una laurea EE.

La piattaforma non ha molta importanza e nemmeno il linguaggio (potrebbe essere C o assembler o altro). Il punto è ottenere idee per un semplice progetto che faccia qualcosa .

Se c'è un libro che copre qualcosa del genere, potresti pubblicare un link ad esso?

È stato utile?

Soluzione

Di recente ho acquistato un Arduino , che è facile da installare. È una scheda piccola e abbastanza economica che esegue un Atmega168 con I / O interrotto, alimentazione, USB e altre cose divertenti. Esegue il codice C nativo (come ci si aspetterebbe da un chip Atmega) e può essere utilizzato per guidare i circuiti attraverso il software.

Altri suggerimenti

Il seguente progetto è per CSC460: classe di sistemi operativi in ??tempo reale presso l'Università di Victoria. Questo progetto è progettato per far sì che gli studenti CS non siano a conoscenza della programmazione comoda dei sistemi embedded su microcontroller.

Obiettivo:

Progetta un sistema attuatore di sensori per controllare la temperatura di una stanza. Questo progetto ti insegnerà modulazione della larghezza di impulso e conversione da AD (analogico a digitale).

Parti:

Design:

Questo sistema utilizzerà il sensore di temperatura dell'AT90USB1287 per leggere la temperatura ambiente corrente e regolare la velocità del motore CC (con la pala della ventola collegata). Regolando la velocità della ventola, questo teoricamente raffredda la stanza.

Il sensore di temperatura è già integrato nell'AT90USB1287 e cablato alla porta AD e al micro-controller. È necessario leggere la scheda tecnica per questo microcontrollore e scrivere il codice per configurare e eseguire il polling del sensore di temperatura.

Il motore CC sarà controllato con modulazione della larghezza degli impulsi. PWM può controllare la velocità di un motore CC collegato variando il ciclo di lavoro del segnale PWM. Per ulteriori informazioni su PWM consultare i dati grandi e dettagliati (forse un po 'troppo) foglio per AT90USB1287.

Una volta che il sensore di temperatura e il motore CC funzionano, hai completato questo progetto. Il ponte H L293D e il regolatore 5 V possono essere utilizzati per aumentare la potenza fornita al motore CC (da 3,3 V a bordo contro 5,0 V dal ponte H).

Nella mia esperienza c'è un apprendimento iniziale "gobba", se vuoi, in sistemi embedded che possono essere difficili da superare, ma una volta che lo farai rimarrai deluso se il primo progetto che scegli è molto semplice .

Ci sono alcuni investimenti iniziali negli strumenti di sviluppo (ad es. i chip e il programmatore come minimo). Costruire un progetto molto semplice non ti permetterà di esplorare le aree più utili del chip, quindi la quantità di conoscenza che otterrai sarà sproporzionata rispetto alla quantità di risorse che investi; sia in tempo che in denaro.

Suggerisco di rendere qualcosa di più coinvolgente di un paio di LED lampeggianti. La parte più difficile dello sviluppo per una nuova piattaforma integrata, per me, è sempre ottenere la compilazione iniziale e caricare il primo programma sul chip. Dal momento che questo passaggio è lo stesso, non importa quanto sia complicato o facile il tuo primo progetto, voterei ancora una volta a favore di intraprendere subito un progetto moderatamente complicato. Mi viene in mente qualcosa come un telecomando IR. In ogni caso, aspettati di investire molto tempo se vuoi davvero imparare qualcosa.

Suggerirei anche di NON optare per qualcosa come un BASIC STAMP o addirittura Arduino, dal momento che questi dispositivi non ti insegnerebbero le vere competenze necessarie per eseguire la programmazione integrata. Sono più una piattaforma che eseguirà il tuo codice di alto livello. Stai usando una versione glorificata di tale piattaforma per leggere questo post, il tuo PC; appena un dispositivo incorporato. Tra i lati positivi, ti risparmieranno molti problemi se non hai familiarità con l'elettronica.

Ottieni un chip a 8 bit prodotto da Microchip o ATMEL, entrambi molto popolari e relativamente economici per iniziare, ottieni un programmatore e forse una scheda demo, la scheda demo funziona se non hai familiarità con l'elettronica, per uno di quei chip . Ancora più importante, leggi le schede tecniche di accompagnamento e prova a creare qualcosa di moderatamente utile. Programma in C o assemblatore. ATMEL è molto meglio con i compilatori e il supporto per C. A lungo termine sarai felice di non aver sprecato il tuo tempo ad imparare una piattaforma che nessuno nella sua mente giusta userebbe per un prodotto commerciale e otterrai una migliore comprensione del trattamento con le limitazioni dei sistemi integrati, poiché non esiste una fonte di informazione migliore della scheda tecnica.

C'è un buon libro sull'argomento chiamato " Embedded Linux Primer " (Christopher Hallinan è l'autore). Questo libro ti guida attraverso lo sviluppo di software su una piattaforma Linux integrata. Abbinalo a un sistema di sviluppo relativamente economico e il cielo è il limite.

Prendi una copia della rivista Circuit Cellar (una risorsa davvero buona per software e hardware integrati) e troverai decine di annunci per piccoli sistemi che dovrebbero permetterti di metterti in funzione rapidamente.

Un semplice progetto (simile a Hello World) sarebbe quello di realizzare un cacciatore di LED. Hai bisogno di: da 6 a 10 LED e un semplice interruttore.

Ogni volta che si preme l'interruttore, i LED lampeggiano in modo diverso. Qualche modello:
1 LED che scorre a destra
1 LED che scorre a sinistra
LED alternati
...

Questo ti insegnerà i pin I / O, come usare un timer, forse come usare un Interrupt per lo switch (o potresti usare il polling).

Personalmente, vorrei costruire un semplice registratore di suoni. Facciamo pratica usando il convertitore AD e l'uscita dell'onda PWM. Inoltre insegnerebbe come modulare il codice per consentire il controllo della registrazione e della riproduzione. L'unica limitazione è la quantità di memoria, ma anche un campione da 1 kB dovrebbe essere divertente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top