Sommario:

DemUino - Computer di casa/Controller: 7 passaggi
DemUino - Computer di casa/Controller: 7 passaggi

Video: DemUino - Computer di casa/Controller: 7 passaggi

Video: DemUino - Computer di casa/Controller: 7 passaggi
Video: ОТЪЕХАЛА МАРУСЯ ► 5 Прохождение Silent Hill 2 ( PS2 ) 2024, Novembre
Anonim
Image
Image
Masterizzare il Bootloader
Masterizzare il Bootloader

Un computer ispirato ad Arduino di DemeterArt Ottieni il massimo dalla tua vecchia tastiera PS2. Hack in un personal computer personalizzato per controllare le cose! Ho sempre voluto costruire il mio computer di casa, in stile retrò, niente di speciale ma con capacità particolari su misura per le mie preferenze. Quindi, ci sono arrivato con l'MCU atmega328 e il kit di sviluppo Arduino.

Permettetemi di affermare che questo progetto avrebbe richiesto molto più tempo con risultati finali dubbi se non fosse stato per i fan dotati là fuori che forniscono egoisticamente meno le librerie freeware per l'uso da parte di tutti. Grazie a tutti:-)

visita il mio sito per leggere l'intera storia e scaricare tutti i file pertinenti

www.sites.google.com/site/demeterart

Passaggio 1: caratteristiche

  • Basato su ATMEGA328 con flash da 32 KB, SRAM da 2 KB e EEPROM da 1 KB.
  • supporto per modalità interattive e batch
  • editor di righe e modalità di modifica dell'elenco durante la modifica
  • 8 caratteri personalizzati per la grafica dell'utente
  • 60 passi di programma numerati 00, …, 99
  • Cicli "If" condizionale, "while" e "for" più istruzioni "goto" e "sub" per la ramificazione
  • Espressioni aritmetiche e matematiche di base più test booleani
  • le variabili di sistema consentono eventi temporizzati, valori medi, efficaci, minimi e massimi dai pin analogici, ecc
  • 26 variabili utente per interagire con variabili di sistema e comandi
  • 104 byte di un array indirizzabile dall'utente o 52 interi brevi
  • capacità di leggere/scrivere i dati del programma e il codice al volo (variabile p)
  • mini app oscilloscopio con caratteri personalizzati per pseudo grafica
  • salvare e caricare programmi e dati su/da EEPROM
  • caricare/salvare programmi e variabili da/verso PC
  • autoexec nel caricamento e nell'esecuzione di un programma da EEPROM dopo ogni ripristino
  • 9 pin GPIO (incluso SPI) disponibili su connettore DB15 esterno
  • BUZZER per effetti sonori

Passaggio 2: cose di cui avrai bisogno

Una vecchia tastiera ps/2 abbastanza spessa da ospitare il display a caratteri LCD del pcb (il popolare formato parallelo) Chip MAX232 per porta RS232 atmel atmega328PU Kit di sviluppo Arduino con regolatore IDE 1.0.1 LM7805 raddrizzatore a ponte cicalino 5V, condensatori, un pulsante di ripristino, connettori ecc

Passaggio 3: masterizzare il bootloader

Quindi, dopo aver acquistato un chip atmega328PU "vuoto" c'è una decisione da prendere. Uso un programmatore speciale esterno o ISP o masterizzo il bootloader Arduino nella bestia e rendo l'unità programmabile tramite la sua porta UART? Ho scelto quest'ultimo per semplificarmi la vita! Il nuovo bootloader occupa solo mezzo kilobyte di memoria flash lasciando a disposizione poco più di 31 KB di programma utente e dati statici. Il sito Arduino copre il caso della masterizzazione del bootloader su un nuovo chip, quando si è trattato di utilizzare avrdude per masterizzare effettivamente il chip di destinazione, il processo non è riuscito con un errore che indicava l'id sbagliato per il particolare MCU. Quindi, dopo alcune ricerche, ho trovato questo ragazzo che ha capito bene e ho seguito la sua procedura. L'unica differenza erano 2 file di configurazione, avrdude.conf e board.txt necessari ad avrdude e arduino IDE 1.0.1 per renderlo possibile. Dopo aver copiato i 2 file nelle loro posizioni corrette (eseguire prima il backup di quelli vecchi) era disponibile l'opzione "arduino328" da strumenti->Board e avrdude ha proceduto alla masterizzazione dei fusibili e del bootloader. Ora il chip è pronto per essere programmato dall'interno della nuova macchina!

Passaggio 4: costruire l'unità

Costruire l'Unità
Costruire l'Unità
Costruire l'Unità
Costruire l'Unità

Una scheda perforata con strisce di rame è stata utilizzata come soluzione di montaggio rapido con prese DIP per i chip, per ogni evenienza! Quindi i fori e i tagli per i connettori, il pulsante di reset e il display LCD sono stati aperti attraverso la plastica estremamente robusta e spessa della tastiera. Sì, è stato costruito 25 anni fa! Seguì il groviglio di fili che emanava dal pcb verso le varie periferiche. Un rudimentale controllo di continuità e poi l'alimentazione è stata collegata senza chip popolati solo per controllare le prese per le tensioni corrette. Poi sono arrivati i 2 circuiti integrati e la custodia della tastiera è stata chiusa saldamente tramite i suoi bottoni automatici in plastica nella parte inferiore. L'unità era pronta per masterizzare gli schizzi nel controller!

Suggerisco di utilizzare condensatori non polari da 1uF/16V per le pompe di carica MAX232. Individua i condensatori di disaccoppiamento da 100nF per i due chip il più vicino possibile ai rispettivi pin VCC e GND. Utilizzare una connessione a stella per l'alimentazione e la massa riferita al regolatore LM7805. Switch 2 potrebbe essere un ponticello a seconda dell'impementazione, ma è bene averlo anche solo per evitare ripristini MCU indesiderati dal PC host in alcuni casi. In ogni caso, l'interruttore deve essere chiuso per consentire all'IDE Arduino di masterizzare lo schizzo ripristinando l'MCU di destinazione (pin DTR di RS232). Nel mio caso la connessione è permanente (sempre chiusa). Utilizzare un resistore in serie per il cicalino per isolare i vari nF di capacità dal gate di pilotaggio … non si sa mai.. Posizionare l'XTAL e i condensatori di caricamento da 18-22 pF il più vicino possibile ai rispettivi pin del controller.

A causa del ponte raddrizzatore, l'unità può essere alimentata da entrambi gli adattatori di alimentazione CA e CC. In caso di DC, c'è una caduta di tensione di 1,5 V tra l'adattatore e l'ingresso al regolatore. In caso di AC l'ingresso del regolatore è circa 1,4 volte l'uscita RMS dell'adattatore o meno a causa del carico. Se la differenza tra l'ingresso del regolatore e la sua uscita (+5V) è grande, diciamo 7 volt, allora la potenza consumata dal regolatore si avvicina a 0,5 watt ed è meglio utilizzare un piccolo dissipatore su cui montare il chip (a condizione c'è spazio per esso) per lunghe ore di funzionamento nella stagione calda.

Il fusibile di ingresso CA può essere selezionato in base ai carichi esterni (tramite il connettore DB15). Altri fattori che influenzano la scelta del fusibile sono il resistore limitatore di corrente per la retroilluminazione a LED del display LCD, il condensatore a ponte per la corrente di carica e la capacità di corrente del trasformatore di alimentazione.

Passaggio 5: SCHEMA

SCHEMA
SCHEMA

Passaggio 6: SOFTWARE IN ESECUZIONE A BORDO

Questo è lo sketch che fa sì che tutto accada… e 32KB NON bastano! Puoi usarlo senza modifiche, nel qual caso apprezzerei un riferimento al mio nome, o cambiarlo a piacimento e dimenticarti di me;-)

Questa è la documentazione dettagliata sulla macchina.

Riepilogo di comandi ed espressioni

“: una riga di commento non stampabile

ai: collega l'interruzione 0 (pin D2)

ar: lettura analogica

aw: 'scrittura analogica' per arduino o più propriamente pwm

ca: cattura analogica in un array

cl: cancella il display cno: return *Prgm indice del numero di riga

di: attende una serie di impulsi e misura la durata e la temporizzazione

dl: ritardo

fare: in combinazione con 'wh'

dr: digital read any pin

dw: digital write any pin

ed: modalità editor / carica programma da PC / rinumera righe

el: funzione di accesso alla EEPROM

end: l'istruzione END di un programma

ensb: termina la subroutine

es: funzione di accesso EEPROM

fl: filtro della media mobile semplice

fr: ciclo per il prossimo (fr-nx)

vai: salta al passaggio del programma

gosb: continua l'esecuzione alla subroutine

gt: attende l'input dell'utente

if: verifica la condizione e passa al passaggio

io: GPIO 1-9 bit

ld: carica/unisci programma da EEPROM

lp:: loop controllato da tastiera in modalità interattiva

ls: modalità lista/invio programma al PC una riga alla volta

ml: ottenere tempo

mm: mostra la memoria libera

nos: converte il numero in stringa

nx: in combinazione con 'fr'

pl: plot array cxx

pm: imposta i pin per ingresso o uscita

pr: stampa un messaggio, un valore o un carattere personalizzato

rgc: comando di copia dell'intervallo per gli array

rgs: comando range set per array

rn: esegui il programma nella RAM

rs: ripristino software

rx: riceve un carattere tramite RS232

si: ingresso seriale sincrono con pin di clock e dati

sm: mini app per oscilloscopio sno: converte la stringa in numero

quindi: uscita seriale sincrona con pin di clock e dati

sub: dichiara la subroutine

sv: salva il programma su EEPROM

tn: beep un tono

tx: trasmette un numero via RS232

wh: un ciclo do-while usato insieme a 'do'

Passaggio 7: videoclip della mini app 'sm' in esecuzione

visita il mio sito per leggere l'intera storia e scaricare tutti i file pertinenti

www.sites.google.com/site/demeterart

Consigliato: