Cuprins:

Computer portabil BASIC: 6 pași (cu imagini)
Computer portabil BASIC: 6 pași (cu imagini)

Video: Computer portabil BASIC: 6 pași (cu imagini)

Video: Computer portabil BASIC: 6 pași (cu imagini)
Video: 14 Computer Tricks You Wish You Learned Sooner 2024, Noiembrie
Anonim
Computer portabil BASIC
Computer portabil BASIC
Computer portabil BASIC
Computer portabil BASIC

Acest instructable descrie procesul meu de construire a unui computer portabil mic care rulează BASIC. Computerul este construit în jurul cipului ATmega 1284P AVR, care a inspirat și numele prostesc pentru computer (HAL 1284).

Această construcție este HEAVILY inspirată de proiectul uimitor găsit aici și insigna SuperCON BASIC.

Computerul rulează o versiune modificată a TinyBasic, deși o mare parte din software se bazează pe proiect de dan14. Puteți, desigur, să urmați acest instructabil, sau chiar mai bine, să îl îmbunătățiți, deoarece am făcut câteva greșeli.

Pentru acest proiect, am creat și un manual. Menționează câteva erori și specificități pentru monitorul ales, dar cel mai important, are lista operațiunilor BASIC.

După ce a fost publicat acest lucru, am realizat un videoclip care prezintă proiectul.

Pasul 1: Părțile pe care le-am folosit

Piesele pe care le-am folosit
Piesele pe care le-am folosit
Piesele pe care le-am folosit
Piesele pe care le-am folosit
Piesele pe care le-am folosit
Piesele pe care le-am folosit

Pentru IC principal:

  • ATmega 1284P
  • Cristal de 16 MHz
  • 2x condensator ceramic de 22pf
  • Rezistor de 10KΩ (pentru resetare)
  • Buton cu 4 pini (pentru resetare)
  • 470Ω Reistor (pentru video compozit)
  • Rezistor 1kΩ (pentru sincronizare video compozit)
  • Jumper cu 3 pini (pentru semnal video)
  • Buzzer pasiv

Pentru controlul keybaord:

  • ATmega 328P (Ca și cele utilizate în Arduino Uno)
  • Cristal de 16 MHz
  • 2x condensator ceramic de 22pf
  • 12x 10KΩ Rezistor (Pentru resetare trageți în sus și butoane)
  • Buton 51x cu 4 pini (Pentru tastatura reală)

Pentru putere:

  • L7805 Regulator de tensiune
  • LED de 3 mm
  • Rezistor 220Ω (pentru LED)
  • 2x 0,1µF condensator electrolitic
  • Condensator electrolitic 0,22 µF (Puteți înlocui acest 0,22 și unul 0,1 cu unul 0,33. De asemenea, mi s-a spus că valorile nu contează cu adevărat, dar nu sunt grozav cu condensatorii)
  • 2x jumper cu 2 pini (pentru intrarea de alimentare și pentru comutatorul principal)

GPIO (Poate adăugați încă câteva motive):

  • Jumper cu 7 pini
  • 2x jumper cu 8 pini
  • Jumper cu 2 pini (pentru 5V și GND)
  • Jumper cu 3-4 pini (pentru comunicare în serie)

Non-PCB:

  • Afișaj LCD de 4 "cu video compozit (al meu avea o tensiune de intrare între 7-30V)
  • Suport imprimat 3D pentru afișare
  • Un fel de comutator

Pasul 2: Circuitul

Circuitul
Circuitul

Circuitul nu este foarte frumos și o mare parte din regiunea IC principală este inspirată de dan14. Acestea fiind spuse, este un Arduino destul de direct pe un circuit Breadboard. Tastatura este o rețea simplă și este controlată de ATmega328. Cele două cipuri AVR comunică prin intermediul pinilor seriali UART.

Atât o imagine, cât și fișierele mele Eagle sunt atașate și, sperăm, vor fi suficiente pentru a recrea circuitul. Dacă nu, nu ezitați să mă informați și voi actualiza instructabilul.

Pasul 3: PCB

PCB-ul
PCB-ul
PCB-ul
PCB-ul

PCB este pe două straturi și este creat folosind Auto Route (Oh, ce ** gaură!). Are butoane și LED indicator de alimentare în față și restul în spate. Mi-am făcut PCB-ul cu JCL PCB și au făcut o treabă uimitoare cu el. Fișierele necesare pentru a recrea PCB ar trebui să fie în fișierele Eagle dinainte.

Aș sugera să reproiectați PCB-ul, deoarece am câteva lucruri pe care aș vrea să le fac diferit. Dacă îți place designul meu, mai am (la scriere) patru plăci neutilizate pe care sunt mai mult decât dispus să le vând.

Placa are patru găuri pe care le-am folosit pentru montarea ecranului LCD.

Pasul 4: Încărcarea codului

Încărcarea codului
Încărcarea codului
Încărcarea codului
Încărcarea codului
Încărcarea codului
Încărcarea codului

Atât 1284, cât și 328, desigur, au nevoie de cod, iar codul pe care l-am folosit pot fi găsite aici: https://github.com/PlainOldAnders/HAL1284 sub ArduinoSrc / src. Am folosit pur și simplu Arduino IDE pentru modificarea și încărcarea codului, dar înainte de a putea face acest lucru, va trebui să ardeți bootloadere pe IC-uri:

ATMega328:

Acesta este ușor, în sensul că există o mulțime de asistență pentru a arde un bootloader și a încărca codul pe acest IC. Urmez de obicei acest ghid, mai ales pentru că tot uit specificul.

Codul pentru 328 (sub ArduinoSrc / tastatură) este destul de simplu. Se bazează în totalitate pe biblioteca Adafruit_Keypad-master-. În cazul în care se schimbă ceva despre lib, am inclus versiunea pe care am folosit-o pe pagina mea github sub ArduinoSrc / lib.

ATmega1284:

Acest lucru a fost un pic dificil pentru mine când am primit IC-ul pentru prima dată. Am început prin a lua bootloader-ul de aici și am urmat ghidul de instalare. Pentru a arde bootloader-ul, pur și simplu am făcut același lucru ca și cu 328 și am primit ajutor de aici. Pentru ambele IC-uri tocmai am folosit un Arduino Uno atât pentru arderea bootloaderului, cât și pentru încărcarea codului (IC a fost eliminat din Arduino Uno la încărcare).

Codul (sub ArduinoSrc / HAL1284Basic) este mult prea complicat pentru mine, dar am putut modifica unele părți ale codului:

Am adăugat câteva comenzi (cele marcate cu [A] în manual.pdf) și am schimbat și alte comenzi:

Ton: Comanda de ton tocmai a folosit funcția de ton Arduino înainte, dar atunci când se utilizează biblioteca TVout, acest lucru a făcut ca soneria să nu funcționeze corect. L-am schimbat pentru a utiliza funcția de ton a TVout, dar acest lucru înseamnă că pinul de ton trebuie să fie pinul 15 (pentru atmega1284)

Comunicare în serie: Deoarece tastatura este DIY, aceasta utilizează comunicarea în serie pentru citirea personajelor. Deoarece atmega1284 este utilizat aici, există două linii de comunicații seriale disponibile, iar când „sercom” este activat, codul permite și scrierea prin portul serial (de la un computer sau orice altceva).

Rezoluție: Monitorul utilizat pentru acest proiect este destul de prost și este necesară o rezoluție mică, altfel imaginea pâlpâie. Dacă se folosește un monitor mai bun, aș sugera să modificați rezoluția în funcția de configurare.

Pasul 5: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Cu codul încărcat și cu PCB-ul și piesele pregătite, acum este timpul pentru asamblare. Toate piesele pe care le-am folosit au fost găurite, astfel încât lipirea nu a fost prea dificilă (spre deosebire de badass-SMD-lipit-fellas acolo). Monitorul a fost fixat pe cele patru găuri din PCB cu un suport tipărit 3D. Dacă se utilizează un alt monitor, sperăm că cele patru găuri pot fi folosite pentru montarea acestuia.

Suportul monitorului utilizat aici este, de asemenea, conceput pentru a găzdui un comutator de comutare (conectat la jumperul "comutatorului" de pe PCB) și cele trei butoane de control pentru monitor. Suportul este fixat cu șuruburi și distanțieri M3 din plastic.

Pentru mufa de alimentare am folosit un conector PCB JST, deși o mufă cu țeavă ar fi fost ceva mai netedă. Pentru a alimenta placa, am trecut între o sursă de alimentare de 12V sau trei baterii 18650 în serie. Un cowboy mai lin decât mine ar putea, probabil, să proiecteze un suport de baterie pentru tablă.

Pasul 6: Bug-uri și lucrări viitoare

Taste cu săgeți: tastele cu săgeți au fost puse accidental și nu au prea multe funcții. Acest lucru face navigarea dificilă

I / O fișier: există capabilități I / O fișier, dar acestea nu sunt implementate. Pentru a combate acest lucru, software-ul HAL1284Com poate încărca fișiere pe tablă. De asemenea, este posibil să încărcați în EEPROM.

PEEK / POKE: PEEK și POKE nu sunt testate și nu sunt sigur care sunt adresele.

Break: Break (Esc) a fost uneori deranjant cu întregul cod, când se află în bucle infinite.

Pinul 7: Pinul PWM 7 poate fi dificil atunci când încercați să DWRITE High sau AWRITE 255. Funcționează bine cu AWRITE 254.

Idiot: Ar fi ideal să poți încărca și prin UART1, dar încărcarea este posibilă doar prin UART0, deci încărcarea va trebui făcută prin extragerea IC-ului principal. Regulatorul de ecran și tensiune 5 se încălzește puțin când rulează mult timp.

Recomandat: