Sadržaj:

Ručno BASIC računalo: 6 koraka (sa slikama)
Ručno BASIC računalo: 6 koraka (sa slikama)

Video: Ručno BASIC računalo: 6 koraka (sa slikama)

Video: Ručno BASIC računalo: 6 koraka (sa slikama)
Video: КОНЕЦ МУЧЕНИЯМ. Трава больше не проблема! 2024, Srpanj
Anonim
Ručno BASIC računalo
Ručno BASIC računalo
Ručno BASIC računalo
Ručno BASIC računalo

Ovaj Instructable opisuje moj proces izgradnje malog ručnog računala sa sustavom BASIC. Računalo je izgrađeno oko ATmega 1284P AVR čipa, koji je također inspirirao blesavi naziv računala (HAL 1284).

Ova je konstrukcija TEŠKO inspirirana nevjerojatnim projektom koji se ovdje nalazi i značkom SuperCON BASIC.

Računalo koristi modificiranu verziju TinyBasic -a, iako se veliki dio softvera temelji na projektu dan14. Naravno, možete pratiti ovaj Instructable, ili još bolje, poboljšati ga jer sam napravio nekoliko pogrešaka.

Za ovaj projekt sam također napravio priručnik. Spominje neke greške i specifičnosti za odabrani monitor, ali što je najvažnije, ima popis BASIC operacija.

Nakon što je ovo objavljeno, napravio sam video koji prikazuje projekt.

Korak 1: Dijelovi koje sam koristio

Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio

Za glavni IC:

  • ATmega 1284P
  • 16MHz kristal
  • 2x 22pf keramički kondenzator
  • 10KΩ otpornik (za resetiranje povucite prema gore)
  • 4-pinski gumb (za resetiranje)
  • Reistor od 470Ω (za kompozitni video)
  • Otpornik od 1 kΩ (za kompozitnu video sinkronizaciju)
  • 3-pinski kratkospojnik (za video signal)
  • Pasivni zujalica

Za kontrolu tipkovnice:

  • ATmega 328P (poput onih koji se koriste u Arduino Uno)
  • 16MHz kristal
  • 2x 22pf keramički kondenzator
  • 12x 10KΩ otpornik (za resetiranje povucite prema gore i tipke)
  • 51x 4-pinski gumb (za stvarnu tipkovnicu)

Za napajanje:

  • L7805 Regulator napona
  • LED dioda od 3 mm
  • 220Ω otpornik (za LED)
  • 2x 0,1 μF elektrolitički kondenzator
  • Elektrolitski kondenzator od 0,22 µF (Mogli biste zamijeniti ovaj 0,22 i jedan 0,1 za jedan 0,33. Također mi je rečeno da vrijednosti nisu bitne, ali nisam dobar s kondenzatorima)
  • 2x 2-pinski kratkospojnik (za ulaz napajanja i za glavni prekidač)

GPIO (Možda dodajte još par osnova):

  • 7-pinski kratkospojnik
  • 2x 8-pinski kratkospojnik
  • 2-pinski kratkospojnik (za 5V i GND)
  • 3-4-pinski kratkospojnik (za serijsku komunikaciju)

Ne-PCB:

  • 4 "LCD zaslon sa kompozitnim video zapisom (moj je imao ulazni napon između 7-30V)
  • 3D ispisani držač za prikaz
  • Neka vrsta prekidača

Korak 2: Krug

Krug
Krug

Krug nije baš lijep i velik dio glavne IC regije inspiriran je dan14. S obzirom na to, riječ je o prilično jednostavnom Arduinu na krugu Breadboard. Tipkovnica je jednostavna mreža i njome upravlja ATmega328. Dva AVR čipa komuniciraju putem UART serijskih pinova.

I slika i moje Eagle datoteke su priložene i nadamo se da će biti dovoljne za ponovno stvaranje kruga. Ako ne, slobodno me obavijestite i ja ću ažurirati Instructable.

Korak 3: PCB

PCB
PCB
PCB
PCB

PCB je dvoslojan i kreiran je pomoću Auto Route (Oh, kakva ** rupa!). Ima gumbe i LED indikator napajanja sprijeda, a ostatak straga. Napravio sam svoj PCB s JCL PCB -om i oni su s njim odradili nevjerojatan posao. Datoteke potrebne za ponovno stvaranje PCB-a trebale bi biti u datotekama Eagle od ranije.

Predlažem vam da redizajnirate PCB, jer imam neke stvari koje bih volio učiniti drugačije. Ako vam se sviđa moj dizajn, još uvijek imam (do trenutka pisanja) četiri neiskorištene ploče koje sam više nego spreman prodati.

Ploča ima četiri izbušene rupe koje sam koristio za ugradnju LCD zaslona.

Korak 4: Prijenos koda

Učitavanje koda
Učitavanje koda
Učitavanje koda
Učitavanje koda
Učitavanje koda
Učitavanje koda

Naravno, i 1284 i 328 trebaju kôd, a kôd koji sam koristio možete pronaći ovdje: https://github.com/PlainOldAnders/HAL1284 pod ArduinoSrc/src. Jednostavno sam koristio Arduino IDE za izmjenu i prijenos koda, ali prije nego što se to učini, morat ćete snimiti bootloader na IC -ovima:

ATMega328:

Ovo je jednostavno, u smislu da postoji velika podrška o tome kako snimiti pokretački program i učitati kôd na ovaj IC. Obično slijedim ovaj vodič, uglavnom zato što stalno zaboravljam pojedinosti.

Kôd za 328 (pod ArduinoSrc/tipkovnicom) je prilično jednostavan. Potpuno se oslanja na biblioteku Adafruit_Keypad-master-library. U slučaju da se nešto promijeni u vezi s libom, uključio sam verziju koju sam koristio na svojoj github stranici pod ArduinoSrc/lib.

ATmega1284:

Ovo mi je bilo malo teško kad sam tek dobio IC. Počeo sam preuzimanjem pokretačkog programa odavde, a zatim slijedio vodič za instalaciju. Da bih snimio bootloader, jednostavno sam učinio isto što i s 328 i dobio pomoć odavde. Za oba IC -a upravo sam koristio Arduino Uno i za snimanje pokretačkog programa i za prijenos koda (uklonjen IC iz Arduino Uno -a pri učitavanju).

Kôd (pod ArduinoSrc/HAL1284Basic) je previše kompliciran za mene, ali uspio sam izmijeniti neke dijelove koda:

Dodao sam nekoliko naredbi (one označene sa [A] u priručniku.pdf), a promijenio sam i druge naredbe:

Zvuk: Tonska naredba upravo je prije koristila Arduinovu tonsku funkciju, no pri korištenju biblioteke TVout to je uzrokovalo da zvučni signal ne radi ispravno. Promijenio sam ga tako da koristi ton-funkciju TVout-a, ali to znači da tonski pin MORA biti pin 15 (za atmega1284)

Serijska komunikacija: Budući da je tipkovnica DIY, ona koristi serijsku komunikaciju za čitanje znakova. Budući da se ovdje koristi atmega1284, postoje dvije dostupne serijske komunikacijske linije, a kada je "sercom" omogućen, kod također omogućuje pisanje putem serijskog porta (s računala ili bilo čega drugog).

Rezolucija: Monitor koji se koristi za ovaj projekt prilično je glup i potrebna je mala razlučivost ili slika treperi. Ako se koristi bolji monitor, predlažem da promijenite razlučivost u funkciji postavljanja.

Korak 5: Montaža

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

S prenesenim kodom i spremnom pločom i dijelovima, vrijeme je za montažu. Svi dijelovi koje sam koristio bili su kroz rupe, tako da lemljenje nije bilo previše teško (za razliku od onih koji su tu u lemljenju-SMD-lemljenje). Monitor je pričvršćen na četiri izbušene rupe na PCB -u pomoću 3D ispisanog držača. Ako se koristi drugi monitor, četiri se bušene rupe mogu koristiti za njegovu montažu.

Nosač monitora koji se ovdje koristi također je dizajniran za smještaj prekidača (spojenog na kratkospojnik "prekidač" na PCB -u) i tri upravljačke tipke za monitor. Držač je pričvršćen plastičnim M3 vijcima i odstojnicima.

Za utikač sam koristio JST PCB konektor, iako bi glatki bačvasti utikač bio malo glatkiji. Za napajanje ploče prebacio sam se između 12V napajanja ili tri 18650 baterija u seriji. Glatkiji kauboj od mene vjerojatno bi mogao dizajnirati glatki držač baterija za ploču.

Korak 6: Greške i budući rad

Tipke sa strelicama: Tipke sa strelicama postavljene su slučajno i ne služe mnogo. To otežava navigaciju

Ulaz/izlaz datoteke: Postoje mogućnosti ulaza/izlaza datoteke, ali one nisu implementirane. Kako bi se borio protiv toga, softver HAL1284Com može prenijeti datoteke na ploču. Također je moguće učitavanje na EEPROM.

PEEK/POKE: PEEK i POKE su neprovjereni i nisam siguran koje su adrese.

Break: Break (Esc) se ponekad petljao s cijelim kodom, kada je u beskonačnoj petlji.

Pin 7: PWM pin 7 može biti težak pri pokušaju DWRITE High ili AWRITE 255. Odlično radi s AWRITE 254.

Idiot: Bilo bi idealno da se može učitati i putem UART1, ali prijenos je moguć samo putem UART0, pa će se prijenos morati obaviti izdvajanjem glavnog IC -a. Regulator zaslona i napona 5 postaje pretopao pri duljem radu.

Preporučeni: