Sommario:
- Passaggio 1: parti che ho usato
- Passaggio 2: il circuito
- Passaggio 3: il PCB
- Passaggio 4: caricamento del codice
- Passaggio 5: assemblaggio
- Passaggio 6: bug e lavoro futuro
Video: Computer palmare BASIC: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Questo Instructable descrive il mio processo di costruzione di un piccolo computer palmare con BASIC. Il computer è costruito attorno al chip AVR ATmega 1284P, che ha anche ispirato il nome sciocco per il computer (HAL 1284).
Questa build è PESANTEMENTE ispirata al fantastico progetto trovato qui e al badge SuperCON BASIC.
Il computer esegue una versione modificata di TinyBasic, sebbene gran parte del software sia basato sul progetto di dan14. Ovviamente puoi seguire questo Instructable, o ancora meglio, migliorarlo poiché ho commesso alcuni errori.
Per questo progetto ho anche creato un manuale. Menziona alcuni bug e specifiche per il monitor scelto ma, soprattutto, ha l'elenco delle operazioni BASIC.
Dopo che questo è stato pubblicato, ho realizzato un video che mostra il progetto.
Passaggio 1: parti che ho usato
Per l'IC principale:
- ATmega 1284P
- Cristallo da 16 MHz
- Condensatore ceramico 2x 22pf
- Resistenza da 10KΩ (per reset pull up)
- Pulsante a 4 pin (per reset)
- Reistor da 470Ω (per video composito)
- Resistore da 1kΩ (per la sincronizzazione del video composito)
- Ponticello a 3 pin (per segnale video)
- Cicalino passivo
Per il controllo della tastiera:
- ATmega 328P (come quelli usati nell'Arduino Uno)
- Cristallo da 16 MHz
- Condensatore ceramico 2x 22pf
- Resistenza 12x 10KΩ (per reset pull up e pulsanti)
- 51x pulsante a 4 pin (per la tastiera effettiva)
Per potenza:
- Regolatore di tensione L7805
- LED da 3 mm
- Resistenza da 220Ω (per LED)
- Condensatore elettrolitico 2x 0,1µF
- Condensatore elettrolitico da 0,22 µF (potresti sostituire questo 0,22 e uno 0,1 con uno 0,33. Mi è stato anche detto che i valori non contano molto, ma non sono bravo con i condensatori)
- 2x ponticello a 2 pin (per ingresso alimentazione e per interruttore principale)
GPIO (forse aggiungere un altro paio di motivi):
- Ponticello a 7 pin
- 2x ponticelli a 8 pin
- Ponticello a 2 pin (per 5V e GND)
- Ponticello a 3-4 pin (per comunicazione seriale)
Non PCB:
- Display LCD da 4" con video composito (il mio aveva una tensione di ingresso tra 7-30V)
- Supporto per display stampato in 3D
- Una sorta di interruttore
Passaggio 2: il circuito
Il circuito non è molto carino e gran parte della principale regione IC è ispirata a dan14. Detto questo, è un Arduino piuttosto semplice su un circuito Breadboard. La tastiera è una semplice griglia ed è controllata dall'ATmega328. I due chip AVR comunicano tramite i pin seriali UART.
Sia un'immagine che i miei file Eagle sono allegati e, si spera, saranno sufficienti per ricreare il circuito. In caso contrario, non esitare a informarmi e aggiornerò Instructable.
Passaggio 3: il PCB
Il PCB è a 2 strati e creato utilizzando Auto Route (Oh, che stronzo!). Ha pulsanti e LED indicatore di alimentazione nella parte anteriore e il resto sul retro. Ho fatto realizzare il mio PCB con PCB JCL e hanno fatto un ottimo lavoro con esso. I file necessari per ricreare il PCB dovrebbero essere nei file Eagle di prima.
Ti suggerirei di riprogettare il PCB, poiché ho alcune cose che mi piacerebbe fare diversamente. Se ti piace il mio design, ho ancora (al momento della scrittura) quattro schede inutilizzate che sono più che disposto a vendere.
La scheda ha quattro fori che ho usato per montare il display LCD.
Passaggio 4: caricamento del codice
Ovviamente sia il 1284 che il 328 hanno bisogno di codice e il codice che ho usato può essere trovato qui: https://github.com/PlainOldAnders/HAL1284 sotto ArduinoSrc/src. Ho semplicemente usato l'IDE Arduino per modificare e caricare il codice, ma prima di poterlo fare, dovrai masterizzare i bootloader sui circuiti integrati:
ATMega328:
Questo è facile, nel senso che c'è molto supporto là fuori su come masterizzare un bootloader e caricare il codice su questo IC. Di solito seguo questa guida, soprattutto perché continuo a dimenticare le specifiche.
Il codice per il 328 (sotto ArduinoSrc/keypad) è abbastanza semplice. Si basa totalmente sulla libreria Adafruit_Keypad-master. Nel caso in cui qualcosa cambi sulla lib, ho incluso la versione che ho usato nella mia pagina github sotto ArduinoSrc/lib.
ATmega1284:
Questo è stato un po' difficile per me quando ho ricevuto l'IC per la prima volta. Ho iniziato ottenendo il bootloader da qui e ho seguito la guida all'installazione. Per masterizzare il bootloader, ho semplicemente fatto la stessa cosa del 328 e ho ricevuto aiuto da qui. Per entrambi gli IC ho appena usato un Arduino Uno sia per masterizzare il bootloader che per caricare il codice (IC rimosso da Arduino Uno durante il caricamento).
Il codice (sotto ArduinoSrc/HAL1284Basic) è troppo complicato per me ma sono riuscito a modificare alcune parti del codice:
Ho aggiunto un paio di comandi (quelli contrassegnati con [A] nel manual.pdf), e ho anche modificato altri comandi:
Tono: il comando tono utilizzava la funzione tono di Arduino in precedenza, ma quando si utilizzava la libreria TVout, il cicalino non funzionava correttamente. L'ho cambiato per usare la funzione tono di TVout, ma questo significa che il pin del tono DEVE essere il pin 15 (per l'atmega1284)
Comunicazione seriale: poiché la tastiera è fai da te, utilizza la comunicazione seriale per leggere i caratteri. Poiché qui viene utilizzato l'atmega1284, sono disponibili due linee di comunicazione seriale e quando "sercom" è abilitato, il codice consente anche la scrittura tramite la porta seriale (da un computer o altro).
Risoluzione: il monitor utilizzato per questo progetto è piuttosto stupido ed è necessaria una piccola risoluzione, altrimenti l'immagine sfarfalla. Se viene utilizzato un monitor migliore, suggerirei di modificare la risoluzione nella funzione di configurazione.
Passaggio 5: assemblaggio
Con il codice caricato e il PCB e le parti pronte, è giunto il momento dell'assemblaggio. Tutte le parti che ho usato erano attraverso il foro, quindi la saldatura non era troppo difficile (al contrario dei tosti-SMD-saldatori-fellas là fuori). Il monitor è stato fissato ai quattro fori nel PCB con un supporto stampato in 3D. Se viene utilizzato un altro monitor, si spera che i quattro fori possano essere utilizzati per il montaggio di questo.
Il supporto per monitor qui utilizzato è inoltre predisposto per alloggiare un interruttore a levetta (collegato al ponticello "switch" sul PCB) e i tre pulsanti di controllo per il monitor. Il supporto è fissato con bulloni M3 in plastica e distanziali.
Per la presa di alimentazione ho usato un connettore PCB JST, anche se un jack cilindrico liscio sarebbe stato un po' più fluido. Per alimentare la scheda, sono passato da un alimentatore a 12V o tre batterie 18650 in serie. Un cowboy più liscio di me potrebbe probabilmente progettare un portabatteria elegante per la tavola.
Passaggio 6: bug e lavoro futuro
Tasti freccia: i tasti freccia sono stati inseriti accidentalmente e non hanno molte funzioni. Questo rende difficile la navigazione
File I/O: esistono capacità di File I/O ma queste non sono implementate. Per combattere questo problema, il software HAL1284Com è in grado di caricare file sulla scheda. È anche possibile caricare su EEPROM.
PEEK/POKE: PEEK e POKE non sono stati testati e non sono sicuro di quali siano gli indirizzi.
Break: Break (Esc) a volte ha pasticciato con l'intero codice, quando si trovava in loop infiniti.
Pin 7: il pin 7 PWM può essere difficile quando si tenta di DWRITE High o AWRITE 255. Funziona bene con AWRITE 254.
Idiota: sarebbe l'ideale poter caricare anche tramite UART1, ma il caricamento è possibile solo tramite UART0, quindi il caricamento dovrà essere effettuato estraendo l'IC principale. Lo schermo e il regolatore di tensione 5 diventano un po' troppo caldi quando sono in funzione per molto tempo.
Consigliato:
MutantC_v2 - un palmare/UMPC Raspberry Pi facile da costruire: 8 passaggi (con immagini)
MutantC_v2 - un palmare/UMPC Raspberry Pi facile da costruire: una piattaforma palmare Raspberry-pi con tastiera fisica, display ed intestazione di espansione per schede personalizzate (come Arduino Shield). mutantC_V2 è il successore di mutantC_V1. Dai un'occhiata a mutantC_V1 da qui.https://mutantc.gitlab.io/https://gitlab.com/mutant
Controller di scelta rapida palmare (per Photoshop e altro) [Arduino]: 4 passaggi
Controller di scelta rapida palmare (per Photoshop + altro) [Arduino]: l'ultima volta ho creato un piccolo pannello di controllo da utilizzare in Photoshop. Ha funzionato a meraviglia e lo uso ancora! Ma è anche piuttosto limitato, con solo cinque pulsanti e le dimensioni utili e i quadranti dell'opacità. Mi sono ritrovato ancora a cercare molto per la tastiera…Quindi
PCB palmare con Arduino (con un'opzione per passare al wireless!): 3 passaggi
PCB palmare con Arduino (con un'opzione per passare al wireless!): aggiornamento 28.1.2019 Attualmente sto lavorando alla prossima versione di questo palmare. Puoi seguire il progetto sul mio canale YouTube o Twitter.Attenzione! Ho trovato un errore nel layout del PCB. I pulsanti sinistro e su sono collegati a pin solo analogici. Ho sistemato
Gimbal palmare estensibile per GoPro/SJ4000/Xiaomi Yi/iLook: 9 passaggi (con immagini)
Gimbal portatile estensibile per GoPro/SJ4000/Xiaomi Yi/iLook: questo tutorial ti guiderà come hackerare un selfie stick e un gimbal 2D per creare un gimbal portatile estensibile in grado di montare fotocamere come GoPro SJ4000/5000/6000 Xiaomi Yi Walkera iLook. Un Gimbal è un meccanismo di stabilizzazione che rem
Dock fai da te per telefono, palmare e amp; Accessori: 8 passaggi
Dock fai da te per telefono, palmare e amp; Accessori: riutilizzo di oggetti trovati o obsoleti su dock per telefoni, pda e amp; accessori in un piccolo pacchetto desktop pulito. So che questo è un tutorial molto semplice, ma volevo pubblicarlo dopo aver visto un elenco di "soluzioni" brutte, complesse o poco pratiche