Kazalo:

Ročni računalnik BASIC: 6 korakov (s slikami)
Ročni računalnik BASIC: 6 korakov (s slikami)

Video: Ročni računalnik BASIC: 6 korakov (s slikami)

Video: Ročni računalnik BASIC: 6 korakov (s slikami)
Video: Как сделать стяжку с шумоизоляцией в квартире. #18 2024, Julij
Anonim
Ročni računalnik BASIC
Ročni računalnik BASIC
Ročni računalnik BASIC
Ročni računalnik BASIC

Ta Instructable opisuje moj postopek izdelave majhnega ročnega računalnika z OS BASIC. Računalnik je zgrajen okoli čipa ATmega 1284P AVR, ki je navdihnil tudi neumno ime računalnika (HAL 1284).

Ta zgradba je močno navdihnjena s čudovitim projektom, ki ga najdete tukaj, in značko SuperCON BASIC.

Računalnik poganja spremenjeno različico programa TinyBasic, čeprav večina programske opreme temelji na projektu dan14. Seveda lahko sledite tem navodilom ali še bolje, da ga izboljšate, saj sem naredil nekaj napak.

Za ta projekt sem ustvaril tudi priročnik. Omenja nekatere hrošče in posebnosti za izbrani monitor, najpomembneje pa je seznam OSNOVNIH operacij.

Po objavi sem posnel video, ki prikazuje projekt.

1. korak: Deli, ki sem jih uporabil

Deli, ki sem jih uporabljal
Deli, ki sem jih uporabljal
Deli, ki sem jih uporabljal
Deli, ki sem jih uporabljal
Deli, ki sem jih uporabljal
Deli, ki sem jih uporabljal

Za glavno IC:

  • ATmega 1284P
  • 16MHz kristal
  • 2x 22pf keramični kondenzator
  • 10KΩ upor (za ponastavitev povlecite navzgor)
  • 4-pinski gumb (za ponastavitev)
  • 470Ω upor (za kompozitni video)
  • 1 kΩ upor (za kompozitno video sinhronizacijo)
  • 3-polni mostiček (za video signal)
  • Pasivni zvočni signal

Za nadzor tipkovnice:

  • ATmega 328P (tako kot tisti, ki se uporabljajo v Arduino Uno)
  • 16MHz kristal
  • 2x 22pf keramični kondenzator
  • 12x 10KΩ upor (za ponastavitev povlecite navzgor in gumbi)
  • 51x 4-pinski gumb (za dejansko tipkovnico)

Za moč:

  • L7805 Regulator napetosti
  • 3 mm LED
  • 220Ω upor (za LED)
  • 2x 0,1 μF elektrolitski kondenzator
  • 0,22 µF elektrolitski kondenzator (ta 0,22 in 0,1 lahko zamenjate z enim 0,33. Prav tako so mi povedali, da vrednosti v resnici niso pomembne, vendar s kondenzatorji nisem dober)
  • 2x 2-polni mostiček (za vhodno moč in za glavno stikalo)

GPIO (Morda dodajte še nekaj razlogov):

  • 7-polni mostiček
  • 2x 8-polni mostiček
  • 2-polni mostiček (za 5V in GND)
  • 3-4-pinski mostiček (za serijsko komunikacijo)

Ne-PCB:

  • 4 "LCD zaslon s kompozitnim videom (moj je imel vhodno napetost med 7-30V)
  • 3D natisnjeno držalo za zaslon
  • Nekakšno stikalo

2. korak: vezje

Vezje
Vezje

Vezje ni zelo lepo in velik del glavne regije IC je navdihnjen z dan14. Kot rečeno, gre za precej naravnost Arduino na vezju za plošče. Tipkovnica je preprosta mreža in jo upravlja ATmega328. Dva čipa AVR komunicirata prek serijskih zatičev UART.

Tako slika kot moje datoteke Eagle sta priloženi in upajmo, da bosta dovolj za ponovno ustvarjanje vezja. Če ne, me obvestite in posodobil bom Instructable.

3. korak: PCB

PCB
PCB
PCB
PCB

PCB je dvoslojen in ustvarjen z uporabo Auto Route (Oh, kakšna ** luknja!). Spredaj ima gumbe in LED indikator napajanja, preostanek pa zadaj. Svoje tiskano vezje sem dal narediti z JCL PCB in z njim so opravili neverjetno delo. Datoteke, potrebne za ponovno ustvarjanje tiskanega vezja, bi morale biti v datotekah Eagle od prej.

Predlagam, da preoblikujete tiskano vezje, saj bi nekaj stvari želel narediti drugače. Če vam je všeč moj dizajn, imam (do pisanja) še štiri neuporabljene plošče, ki sem jih več kot pripravljen prodati.

Plošča ima štiri izvrtane luknje, ki sem jih uporabil za namestitev LCD zaslona.

4. korak: nalaganje kode

Nalaganje kode
Nalaganje kode
Nalaganje kode
Nalaganje kode
Nalaganje kode
Nalaganje kode

Tako 1284 kot 328 seveda potrebujeta kodo in kodo, ki sem jo uporabil, najdete tukaj: https://github.com/PlainOldAnders/HAL1284 pod ArduinoSrc/src. Preprosto sem uporabil Arduino IDE za spreminjanje in nalaganje kode, preden pa to storite, boste morali zapisati zagonske nalagalnike na IC -jih:

ATMega328:

Ta je enostaven, v smislu, da obstaja veliko podpore, kako zapisati zagonski nalagalnik in naložiti kodo na ta IC. Običajno sledim temu priročniku, predvsem zato, ker pozabljam na podrobnosti.

Koda za 328 (pod ArduinoSrc/tipkovnico) je dokaj preprosta. Popolnoma se opira na knjižnico Adafruit_Keypad-master-. Če se kaj spremeni glede liba, sem pod ArduinoSrc/lib vključil različico, ki sem jo uporabil na svoji strani github.

ATmega1284:

To je bilo zame malo težko, ko sem prvič dobil IC. Začel sem tako, da sem od tu dobil zagonski nalagalnik, in sledil navodilom za namestitev. Za zagon nalagalnika sem preprosto naredil isto kot pri 328 in od tu dobil pomoč. Za oba IC -ja sem pravkar uporabil Arduino Uno za zapisovanje zagonskega nalagalnika in nalaganje kode (IC je bil pri nalaganju odstranjen iz Arduino Uno).

Koda (pod ArduinoSrc/HAL1284Basic) je zame preveč zapletena, vendar sem lahko spremenil nekatere dele kode:

Dodal sem nekaj ukazov (tistih, ki so v priročniku.pdf označeni z [A]), spremenil pa sem tudi druge ukaze:

Ton: Tonski ukaz je že prej uporabljal Arduinovo tonsko funkcijo, vendar je pri uporabi knjižnice TVout to povzročilo, da zvonec ne deluje pravilno. Spremenil sem ga tako, da uporablja TV-tonsko funkcijo, vendar to pomeni, da mora biti tonski zatič pin 15 (za atmega1284)

Zaporedna komunikacija: Ker je tipkovnica DIY, uporablja serijsko komunikacijo za branje znakov. Ker se tukaj uporablja atmega1284, sta na voljo dve serijski komunikacijski liniji, in ko je omogočen "sercom", koda omogoča tudi pisanje prek serijskih vrat (iz računalnika ali česar koli drugega).

Ločljivost: Monitor, ki se uporablja za ta projekt, je precej neumen in potrebna je majhna ločljivost ali pa slika utripa. Če uporabljate boljši monitor, predlagam, da spremenite ločljivost v nastavitveni funkciji.

5. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Ko je koda naložena, tiskana vezja in deli pa pripravljeni, je zdaj čas za montažo. Vsi deli, ki sem jih uporabil, so bili skozi luknje, zato spajkanje ni bilo pretežko (v nasprotju s slabimi-SMD-spajkalci). Monitor je bil pritrjen na štiri vrtane luknje na tiskanem vezju z držalom za 3D tiskanje. Če uporabljate drug monitor, lahko za namestitev namestite štiri vrtane luknje.

Nosilec monitorja, ki se uporablja tukaj, je zasnovan tudi za preklopno stikalo (priključeno na mostiček "stikalo" na tiskanem vezju) in tri krmilne gumbe za monitor. Nosilec je pritrjen s plastičnimi vijaki M3 in distančniki.

Za vtič sem uporabil priključek PCB JST, čeprav bi bil gladek cevni vtič nekoliko bolj gladek. Za napajanje plošče sem preklopil med 12V napajalnikom ali tremi baterijami 18650 zaporedoma. Gladkejši kavboj od mene bi verjetno lahko oblikoval gladek nosilec baterije za ploščo.

6. korak: Napake in prihodnje delo

Puščične tipke: Puščične tipke so bile nameščene po naključju in ne opravljajo veliko funkcij. Zaradi tega je navigacija otežena

Datotečni V/I: Obstajajo zmožnosti datotečnega V/I, vendar se ne izvajajo. Za boj proti temu lahko programska oprema HAL1284Com naloži datoteke na ploščo. Možno je tudi nalaganje v EEPROM.

PEEK/POKE: PEEK in POKE sta nepreverjena in nisem prepričan, kateri naslovi so.

Prelom: Prelom (Esc) se je včasih motil s celotno kodo, ko je v neskončnih zankah.

Pin 7: PWM pin 7 je lahko težaven pri poskusih DWRITE High ali AWRITE 255. Dobro deluje z AWRITE 254.

Idiot: Idealno bi bilo, če bi lahko naložili tudi prek UART1, vendar je nalaganje mogoče le prek UART0, zato bo treba nalaganje opraviti tako, da izvlečete glavni IC. Regulator zaslona in napetosti 5 se pri daljšem delovanju nekoliko segreje.

Priporočena: