Sommario:
- Passaggio 1: caratteristiche
- Passaggio 2: cose di cui avrai bisogno
- Passaggio 3: masterizzare il bootloader
- Passaggio 4: costruire l'unità
- Passaggio 5: SCHEMA
- Passaggio 6: SOFTWARE IN ESECUZIONE A BORDO
- Passaggio 7: videoclip della mini app 'sm' in esecuzione
Video: DemUino - Computer di casa/Controller: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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à
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
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:
Controller di gioco fai-da-te basato su Arduino - Controller di gioco Arduino PS2 - Giocare a Tekken con il gamepad Arduino fai da te: 7 passaggi
Controller di gioco fai-da-te basato su Arduino | Controller di gioco Arduino PS2 | Giocare a Tekken con il gamepad Arduino fai da te: Ciao ragazzi, giocare è sempre divertente, ma giocare con il tuo controller di gioco personalizzato fai-da-te è più divertente. Quindi creeremo un controller di gioco usando arduino pro micro in queste istruzioni
Controller per fotocamera fatto in casa Tank Robot: 5 passaggi
Tank Robot Homemade Camera Controller: ciao oggi realizzerò un carro armato robotico con una fotocamera è molto semplice prendi la tua mano e approfitta di tutto ciò che ti circonda o lascia per renderlo davvero interessante credimi andare…… … PARTI ORA
Controller di gioco wireless con Arduino e NRF24L01+ (supporto per uno o due controller): 3 passaggi
Controller di gioco wireless con Arduino e NRF24L01+ (supporto per uno o due controller): puoi trovare il progetto completo dal mio sito Web (è in finlandese): https://teukka.webnode.com/l/langaton-ohjain-atmega-lla- ja-nrf24l01-radiomoduulilla/Questo è un breve briefing sul progetto. Volevo solo condividerlo se qualcuno volesse
YABC - Ancora un altro controller Blynk - Controller di temperatura e umidità cloud IoT, ESP8266: 4 passaggi
YABC - Yet Another Blynk Controller - IoT Cloud Temperature and Humidity Controller, ESP8266: Ciao Makers, recentemente ho iniziato a coltivare funghi a casa, funghi ostriche, ma ho già 3x di questi controller a casa per il controllo della temperatura del fermentatore per la mia birra fatta in casa, moglie sta anche facendo questa cosa Kombucha ora, e come termostato per il calore
NES Controller Shuffle (Nintendo Controller MP3, V3.0): 5 passaggi (con immagini)
NES Controller Shuffle (Nintendo Controller MP3, V3.0): ho completamente copiato ryan97128 sul suo design per Nintendo Controller MP3, versione 2.0 e ho sentito che ha avuto l'idea dal saggio Morte_Moya, quindi non posso prendermi il merito per tutto il loro genio. Volevo solo aggiungere la comodità e ricaricare