Përmbajtje:

Kompjuter BASIC i dorës: 6 hapa (me fotografi)
Kompjuter BASIC i dorës: 6 hapa (me fotografi)

Video: Kompjuter BASIC i dorës: 6 hapa (me fotografi)

Video: Kompjuter BASIC i dorës: 6 hapa (me fotografi)
Video: ГРЕНДПА и Гренни В РЕАЛЬНОЙ ЖИЗНИ! Почему они перепутали мой дом? GRANDPA GRANNY Chapter Two 2024, Nëntor
Anonim
Kompjuter BASIC dore
Kompjuter BASIC dore
Kompjuter BASIC dore
Kompjuter BASIC dore

Ky udhëzues përshkruan procesin tim të ndërtimit të një kompjuteri të vogël dore që funksionon BASIC. Kompjuteri është ndërtuar rreth çipit ATmega 1284P AVR, i cili gjithashtu frymëzoi emrin budalla për kompjuterin (HAL 1284).

Ky ndërtim është frymëzuar nga HAYVILY nga projekti mahnitës i gjetur këtu dhe simboli BAZIC SuperCON.

Kompjuteri drejton një version të modifikuar të TinyBasic, megjithëse shumica e softuerit bazohet në projektin nga dan14. Sigurisht që mund ta ndiqni këtë Udhëzues, ose edhe më mirë, të përmirësoni atë pasi kam bërë disa gabime.

Për këtë projekt, unë gjithashtu krijova një manual. Ai përmend disa defekte dhe specifika për monitorin e zgjedhur, por më e rëndësishmja, ai ka listën e operacioneve BASIC.

Pasi u botua kjo, bëra një video që shfaq projektin.

Hapi 1: Pjesët që kam përdorur

Pjesët që kam përdorur
Pjesët që kam përdorur
Pjesët që kam përdorur
Pjesët që kam përdorur
Pjesët që kam përdorur
Pjesët që kam përdorur

Për IC kryesore:

  • ATmega 1284P
  • Kristal 16MHz
  • Kondensator qeramik 2x 22pf
  • Rezistencë 10KΩ (Për rivendosje tërhiqeni lart)
  • Butoni me 4 kunja (Për rivendosje)
  • Reistor 470Ω (Për video të përbërë)
  • Rezistencë 1kΩ (Për sinkronizim video të përbërë)
  • Bluzë me 3 kunja (Për sinjal video)
  • Buzzer pasiv

Për kontrollin e tastierës:

  • ATmega 328P (Ashtu si ato të përdorura në Arduino Uno)
  • Kristal 16MHz
  • Kondensator qeramik 2x 22pf
  • Rezistencë 12x 10KΩ (Për rivendosje tërhiqeni lart dhe butonat)
  • Butoni 51x me 4 kunja (Për tastierën aktuale)

Për fuqinë:

  • L7805 Rregullatori i Tensionit
  • LED 3 mm
  • Rezistencë 220Ω (Për LED)
  • 2x 0.1µF Kondensator elektrolitik
  • Kondensator elektrolitik 0.22 µF (Ju mund ta zëvendësoni këtë 0.22 dhe një 0.1 me një 0.33. Më është thënë gjithashtu se vlerat nuk kanë vërtet rëndësi, por nuk jam i shkëlqyeshëm me kondensatorët)
  • Bluzë 2x me 2 kunja (Për hyrjen e energjisë dhe për ndërprerësin kryesor)

GPIO (Ndoshta shtoni edhe disa arsye):

  • Bluzë me 7 kunja
  • Bluzë 2x me 8 kunja
  • Jumper me 2 kunja (Për 5V dhe GND)
  • Jumper 3-4-pin (për komunikim serial)

Jo-PCB:

  • Ekran LCD 4 "me video të përbërë (imi kishte një tension hyrës midis 7-30V)
  • Mbajtës i printuar 3D për shfaqje
  • Një lloj ndërprerës

Hapi 2: Qarku

Qarku
Qarku

Qarku nuk është shumë i bukur dhe shumica e rajonit kryesor IC është frymëzuar nga dan14. Duke u thënë kështu, është një Arduino mjaft i drejtpërdrejtë në një qark të Breadboard. Tastiera është një rrjet i thjeshtë dhe kontrollohet nga ATmega328. Dy patate të skuqura AVR komunikojnë përmes kunjave serialë UART.

Si imazhi ashtu edhe skedarët e mi të Shqiponjës janë bashkangjitur dhe shpresojmë se do të jenë të mjaftueshme për të rikrijuar qarkun. Nëse jo, mos ngurroni të më informoni dhe unë do të azhurnoj Instructable.

Hapi 3: PCB

PCB
PCB
PCB
PCB

PCB-ja është me 2 shtresa dhe është krijuar duke përdorur Auto Route (Oh, çfarë ** vrimë!). Ka butona dhe tregues LED të energjisë në pjesën e përparme dhe pjesën tjetër në anën e pasme. Unë kisha PCB tim bërë me JCL PCB, dhe ata bënë një punë të mahnitshme me të. Skedarët e nevojshëm për të rikrijuar PCB duhet të jenë në skedarët Eagle nga më parë.

Unë do të sugjeroja që të ridizajnoni PCB -në, pasi unë kam disa gjëra që do të doja të kisha bërë ndryshe. Nëse ju pëlqen modeli im, unë kam akoma (që kur shkruaj) katër dërrasa të papërdorura që jam më shumë se i gatshëm t'i shes.

Bordi ka katër vrima stërvitore që kam përdorur për montimin e ekranit LCD.

Hapi 4: Ngarkimi i Kodit

Ngarkimi i Kodit
Ngarkimi i Kodit
Ngarkimi i Kodit
Ngarkimi i Kodit
Ngarkimi i Kodit
Ngarkimi i Kodit

Si 1284 ashtu edhe 328 sigurisht që kanë nevojë për kod dhe kodi që kam përdorur mund t'i gjeni këtu: https://github.com/PlainOldAnders/HAL1284 nën ArduinoSrc/src. Unë thjesht përdori Arduino IDE për modifikimin dhe ngarkimin e kodit, por para se të bëhet kjo, do t'ju duhet të digjni ngarkuesit e ngarkuesve në IC:

ATMega328:

Kjo është e lehtë, në kuptimin që ka shumë mbështetje atje se si të digjni një bootloader dhe të ngarkoni kodin në këtë IC. Unë zakonisht e ndjek këtë udhëzues, kryesisht sepse vazhdoj të harroj specifikat.

Kodi për 328 (nën ArduinoSrc/tastiera) është mjaft i thjeshtë. Ai mbështetet plotësisht në bibliotekën Adafruit_Keypad-master. Në rast se diçka ndryshon në lidhje me lib, kam përfshirë versionin që kam përdorur në faqen time github nën ArduinoSrc/lib.

ATmega1284:

Kjo ishte pak e vështirë për mua kur mora për herë të parë IC. Fillova duke marrë bootloader nga këtu dhe ndoqa udhëzuesin e instalimit. Për të djegur ngarkuesin, thjesht bëra të njëjtën gjë si me 328 dhe mora ndihmë nga këtu. Për të dy IC -të sapo kam përdorur një Arduino Uno për djegien e ngarkuesit dhe ngarkimin e kodit (hiqet IC nga Arduino Uno kur ngarkohet).

Kodi (nën ArduinoSrc/HAL1284Basic) është shumë i komplikuar për mua, por unë kam qenë në gjendje të modifikoj disa pjesë të kodit:

Shtova disa komanda (ato të shënuara me [A] në manual.pdf), dhe gjithashtu ndryshova komanda të tjera:

Ton: Komanda e tonit sapo përdori funksionin e tonit të Arduino-s më parë, por kur përdorni bibliotekën TVout, kjo bëri që zilja të mos funksiononte siç duhet. E ndryshova për të përdorur funksionin e tonit të TVout, por kjo do të thotë që kunja e tonit DUHET të jetë pin 15 (për atmega1284)

Komunikimi Serial: Meqenëse tastiera është DIY, ajo përdor komunikimin serik për leximin e personazheve. Meqenëse atmega1284 përdoret këtu, ekzistojnë dy linja komunikimi serike në dispozicion, dhe kur "sercom" është aktivizuar, kodi gjithashtu lejon shkrimin përmes portës seriale (nga një kompjuter ose çfarëdo).

Rezolucioni: Monitori i përdorur për këtë projekt është mjaft memec dhe nevojitet një rezolucion i vogël, ose përndryshe fotografia dridhet. Nëse përdoret një monitor më i mirë, unë do të sugjeroja që të ndryshoni rezolucionin në funksionin e konfigurimit.

Hapi 5: Asambleja

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Me kodin e ngarkuar dhe PCB dhe pjesët gati, tani është koha për montim. Të gjitha pjesët që kam përdorur ishin përmes vrimës, kështu që saldimi nuk ishte shumë i vështirë (në krahasim me shokët e këqij-SMD-bashkues atje). Monitori u fiksua në katër vrimat e stërvitjes në PCB me një mbajtës të printuar 3D. Nëse përdoret një monitor tjetër, katër vrimat e shpimit mund të përdoren për montimin e tij.

Mbajtësi i monitorit i përdorur këtu, është krijuar gjithashtu për të vendosur një ndërprerës (i lidhur me bluzën "switch" në PCB) dhe tre butonat e kontrollit për monitorin. Mbajtësi është i lidhur me bulona plastike M3 dhe ndarës.

Për spinën e rrymës kam përdorur një lidhës JST PCB, megjithëse një fole fuçi me shkëlqim do të kishte qenë pak më e qetë. Për të fuqizuar bordin, kalova midis një furnizimi me energji 12V ose tre bateri 18650 në seri. Një kauboj më i lëmuar se unë ndoshta mund të krijojë një mbajtës të shkëlqyeshëm të baterisë për tabelën.

Hapi 6: Gabimet dhe puna në të ardhmen

Çelësat e shigjetave: Çelësat me shigjeta u vendosën rastësisht dhe nuk shërbejnë për shumë funksione. Kjo e bën navigimin të vështirë

Skedari I/O: Ekzistojnë aftësi I/O të Skedarit, por këto nuk zbatohen. Për ta luftuar këtë, programi HAL1284Com është në gjendje të ngarkojë skedarë në tabelë. Alsoshtë gjithashtu e mundur të ngarkoni në EEPROM.

PEEK/POKE: PEEK dhe POKE janë të paprovuara dhe nuk jam i sigurt se cilat janë adresat.

Pushim: Pushimi (Esc) ndonjëherë është ngatërruar me të gjithë kodin, kur është në sythe të pafundme.

Pin 7: Kodi PWM 7 mund të jetë i vështirë kur përpiqeni të DWRITE High ose AWRITE 255. Punon mirë me AWRITE 254.

Idiot: Do të ishte ideale që të mund të ngarkonit edhe përmes UART1 por ngarkimi është i mundur vetëm përmes UART0, kështu që ngarkimi do të duhet të bëhet duke nxjerrë IC kryesore. Ekrani dhe Rregullatori i Tensionit 5 nxehet shumë kur funksionon për një kohë të gjatë.

Recommended: