Sadržaj:

Ručni BASIC računar: 6 koraka (sa slikama)
Ručni BASIC računar: 6 koraka (sa slikama)

Video: Ručni BASIC računar: 6 koraka (sa slikama)

Video: Ručni BASIC računar: 6 koraka (sa slikama)
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, Juli
Anonim
Ručni BASIC računar
Ručni BASIC računar
Ručni BASIC računar
Ručni BASIC računar

Ovaj Instructable opisuje moj proces izgradnje malog ručnog računara sa BASIC -om. Računar je izgrađen oko ATmega 1284P AVR čipa, koji je takođe inspirisao glupo ime računara (HAL 1284).

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

Računar koristi modifikovanu verziju TinyBasic -a, iako je veliki deo softvera zasnovan na projektu dan14. Naravno, možete pratiti ovaj Instructable, ili još bolje, poboljšati ga jer sam napravio nekoliko grešaka.

Za ovaj projekat sam takođe napravio priručnik. On spominje neke greške i specifičnosti za odabrani monitor, ali što je najvažnije, ima listu 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 Crystal
  • 2x 22pf keramički kondenzator
  • 10KΩ otpornik (za resetiranje povucite prema gore)
  • 4-pinsko dugme (za resetovanje)
  • Reistor od 470Ω (za kompozitni video)
  • Otpornik od 1 kΩ (za kompozitnu video sinhronizaciju)
  • 3-pinski kratkospojnik (za video signal)
  • Pasivni zujalica

Za kontrolu tipkovnice:

  • ATmega 328P (poput onih korištenih u Arduino Uno)
  • 16MHz Crystal
  • 2x 22pf keramički kondenzator
  • 12x 10KΩ otpornik (za resetovanje povucite prema gore i dugmad)
  • 51x 4-pinsko dugme (za stvarnu tastaturu)

Za napajanje:

  • L7805 Regulator napona
  • 3 mm LED
  • 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. Rečeno mi je i 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)

Non-PCB:

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

Korak 2: Krug

The Circuit
The Circuit

Krug nije baš lijep i veliki dio IC regije je inspiriran dan14. S obzirom na to, to je prilično jednostavan Arduino na Breadboard-kolu. Tastatura 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 kola. 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 (O, kakva ** rupa!). Ima gumbe i LED indikator napajanja sprijeda, a ostatak straga. Napravio sam svoj PCB sa JCL PCB -om i oni su s njim odradili odličan posao. Datoteke potrebne za ponovno stvaranje PCB-a trebale bi biti u Eagle-datotekama od ranije.

Predlažem 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 pisanja) četiri neiskorištene ploče koje sam više nego voljan prodati.

Ploča ima četiri izbušene rupe koje sam koristio za postavljanje LCD ekrana.

Korak 4: Učitavanje 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 učitavanje koda, ali prije nego što se to učini, morat ćete narezati bootloader na IC -ovima:

ATMega328:

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

Kod za 328 (pod ArduinoSrc/tastaturom) 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. Započeo sam preuzimanjem pokretačkog programa odavde, a zatim sam slijedio vodič za instalaciju. Da bih snimio bootloader, jednostavno sam učinio isto što i sa 328 i dobio pomoć odavde. Za oba IC -a upravo sam koristio Arduino Uno i za snimanje pokretačkog programa i za učitavanje 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:

Ton: Komanda tona je upravo koristila Arduinovu funkciju tona, ali kada je koristila TVout biblioteku, 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 tastatura 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, kôd omogućava i pisanje putem serijskog porta (s računara ili bilo čega drugog).

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

Korak 5: Montaža

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

S učitanim kodom i spremnom PCB -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 sa SMD lemljenjem). Monitor je pričvršćen za četiri izbušene rupe na PCB -u pomoću 3D štampanog držača. Ako se koristi drugi monitor, nadamo se da se četiri bušene rupe mogu upotrijebiti za 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 kontrolna dugmeta za monitor. Držač je pričvršćen plastičnim M3 vijcima i odstojnicima.

Za utikač sam koristio JST PCB konektor, iako bi glatki utikač bio malo glatkiji. Za napajanje ploče prebacivao sam između 12V napajanja ili tri 18650 baterija u seriji. Glatkiji kauboj od mene vjerovatno 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 funkciji. Ovo otežava navigaciju

Ulaz/izlaz datoteke: Postoje mogućnosti ulaza/izlaza datoteke, ali one nisu implementirane. U borbi protiv ovoga, softver HAL1284Com može učitati datoteke na ploču. Moguće je i učitavanje na EEPROM.

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

Prekid: Break (Esc) se ponekad petljao sa čitavim 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 sa AWRITE 254.

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

Preporučuje se: