Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi na Ginamit Ko
- Hakbang 2: Ang Circuit
- Hakbang 3: Ang PCB
- Hakbang 4: Pag-upload ng Code
- Hakbang 5: Assembly
- Hakbang 6: Mga bug at Trabaho sa Hinaharap
Video: Handheld BASIC Computer: 6 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:09
Inilalarawan ng Instructable na ito ang aking proseso ng pagbuo ng isang maliit na computer na handheld na tumatakbo BASIC. Ang computer ay itinayo sa paligid ng ATmega 1284P AVR chip, na nagbigay inspirasyon din sa nakakatawang pangalan para sa computer (HAL 1284).
Ang pagbuo na ito ay HEAVILY inspirasyon ng kamangha-manghang proyekto na matatagpuan dito at sa SuperCON BASIC Badge.
Nagpapatakbo ang computer ng binagong bersyon ng TinyBasic, bagaman ang karamihan sa software ay batay sa proyekto ng dan14. Maaari mong siyempre sundin ang Ituturo, o kahit na mas mahusay, pagbutihin ito dahil nagawa ko ang ilang mga pagkakamali.
Para sa proyektong ito, lumikha rin ako ng isang manwal. Binabanggit nito ang ilang mga bug at detalye para sa napiling monitor ngunit ang pinakamahalaga, mayroon itong listahan ng mga pagpapatakbo ng BASIC.
Matapos mailathala ito, gumawa ako ng isang video na nagpapakita ng proyekto.
Hakbang 1: Mga Bahagi na Ginamit Ko
Para sa pangunahing IC:
- ATmega 1284P
- 16MHz Crystal
- 2x 22pf Ceramic Capacitor
- 10KΩ Resistor (Para sa pag-reset ng pull up)
- 4-pin button (Para sa pag-reset)
- 470Ω Reistor (Para sa pinagsamang video)
- 1kΩ Resistor (Para sa pinag-isang video sync)
- 3-pin jumper (Para sa signal ng video)
- Passive Buzzer
Para sa kontrol ng keybaord:
- ATmega 328P (Tulad ng mga ginamit sa Arduino Uno)
- 16MHz Crystal
- 2x 22pf Ceramic Capacitor
- 12x 10KΩ Resistor (Para sa pag-reset ng pull up at mga pindutan)
- 51x 4-pin na pindutan (Para sa aktwal na keyboard)
Para sa kapangyarihan:
- L7805 Boltahe Regulator
- 3mm LED
- 220Ω Resistor (Para sa LED)
- 2x 0.1µF Electrolytic Capacitor
- 0.22 µF Electrolytic Capacitor (Maaari mong palitan ang 0.22 at isang 0.1 para sa isang 0.33. Sinabihan din ako na ang mga halaga ay hindi talaga mahalaga, ngunit hindi ako magaling sa mga capacitor)
- 2x 2-pin jumper (Para sa pag-input ng kuryente at para sa pangunahing switch)
GPIO (Maaaring magdagdag ng ilang karagdagang batayan):
- 7-pin na Jumper
- 2x 8-pin Jumper
- 2-pin Jumper (Para sa 5V at GND)
- 3-4-pin Jumper (Para sa Serial Communication)
Hindi PCB:
- 4 "LCD Display na may Composite Video (Ang mine ay mayroong input boltahe sa pagitan ng 7-30V)
- 3D naka-print na may-ari para ipakita
- Ang ilang mga uri ng switch
Hakbang 2: Ang Circuit
Ang circuit ay hindi masyadong maganda at ang karamihan sa mga pangunahing rehiyon ng IC ay inspirasyon ng dan14. Sinabi na, ito ay isang medyo tuwid na Arduino sa isang Breadboard-circuit. Ang keyboard ay isang simpleng grid at kinokontrol ng ATmega328. Ang dalawang mga chip ng AVR ay nakikipag-usap sa pamamagitan ng mga UART Serial pin.
Parehong isang imahe at ang aking mga Eagle-file ay nakakabit at sana ay sapat na upang muling likhain ang circuit. Kung hindi, huwag mag-atubiling ipaalam sa akin at ia-update ko ang Makatuturo.
Hakbang 3: Ang PCB
Ang PCB ay 2-layered at nilikha gamit ang Auto Route (Oh, anong isang ** hole!). Mayroon itong mga pindutan at tagapagpahiwatig ng kuryente na humantong sa harap at ang natitira sa likuran. Ginawa ko ang aking PCB sa JCL PCB, at gumawa sila ng isang kamangha-manghang trabaho kasama nito. Ang mga file na kinakailangan upang muling likhain ang PCB ay dapat na nasa Eagle-files mula dati.
Iminumungkahi ko na idisenyo mo muli ang PCB, dahil mayroon akong ilang mga bagay na nais kong gawin nang iba. Kung gusto mo ang aking disenyo, mayroon pa rin akong (sa pagsulat) ng apat na hindi nagamit na mga board na higit kong handang ibenta.
Ang board ay may apat na butas ng drill na ginamit ko para sa pag-mount ng LCD Display.
Hakbang 4: Pag-upload ng Code
Parehong 1284 at 328 syempre kailangan ng code at ang code na ginamit ko ay matatagpuan dito: https://github.com/PlainOldAnders/HAL1284 sa ilalim ng ArduinoSrc / src. Ginamit ko lang ang Arduino IDE para sa pagbabago at pag-upload ng code ngunit bago ito magawa, kakailanganin mong sunugin ang mga bootloader sa mga IC:
ATMega328:
Ang isang ito ay madali, sa diwa na maraming suporta doon sa kung paano magsunog ng isang bootloader at mag-upload ng code sa IC na ito. Karaniwan kong sinusunod ang patnubay na ito, karamihan ay dahil palagi kong nakakalimutan ang mga detalye.
Ang code para sa 328 (sa ilalim ng ArduinoSrc / keypad) ay medyo simple. Ito ay ganap na umaasa sa Adafruit_Keypad-master- library. Kung sakaling may magbago tungkol sa lib, isinama ko ang bersyon na ginamit ko sa aking pahina ng github sa ilalim ng ArduinoSrc / lib.
ATmega1284:
Medyo nahirapan ito sa akin noong una akong nakakuha ng IC. Nagsimula ako sa pamamagitan ng pagkuha ng bootloader mula rito, at sinundan ang gabay sa pag-install. Upang sunugin ang bootloader, ginawa ko lang ang parehong bagay tulad ng sa 328 at nakakuha ng tulong mula dito. Para sa parehong mga IC ginamit ko lang ang isang Arduino Uno para sa parehong pagkasunog ng bootloader at pag-upload ng code (inalis ang IC mula sa Arduino Uno kapag nag-a-upload).
Ang code (sa ilalim ng ArduinoSrc / HAL1284Basic) ay masyadong kumplikado para sa akin ngunit nabago ko ang ilang bahagi ng code:
Nagdagdag ako ng ilang mga utos (mga minarkahan ng [A] sa manual.pdf), at binago ko rin ang iba pang mga utos:
Tono: Ginamit lang ng tone command ang tone-function ni Arduino dati, ngunit kapag ginagamit ang library ng TVout, naging sanhi ito upang hindi gumana nang maayos ang buzzer. Binago ko ito upang magamit ang tone-function ng TVout, ngunit nangangahulugan ito na ang tone pin ay DAPAT na pin 15 (para sa atmega1284)
Serial Communication: Dahil ang keyboard ay DIY, gumagamit ito ng serial na komunikasyon para sa pagbabasa ng mga character. Dahil ang atmega1284 ay ginagamit dito, mayroong dalawang magagamit na mga linya ng komunikasyon sa serial, at kapag pinagana ang "sercom", pinapayagan din ng code ang pagsusulat sa pamamagitan ng serial port (mula sa isang computer o kung ano pa man).
Resolution: Ang monitor na ginamit para sa proyektong ito ay medyo pipi, at isang maliit na resolusyon ang kinakailangan, o kung hindi man ay kumikislap ang larawan. Kung ginamit ang isang mas mahusay na monitor, imumungkahi ko na baguhin mo ang resolusyon sa pag-andar ng pag-setup.
Hakbang 5: Assembly
Gamit ang code na nai-upload at ang PCB at mga bahagi na handa na, oras na para sa pagpupulong. Ang lahat ng mga bahagi na ginamit ko ay sa pamamagitan ng butas, kaya't ang paghihinang ay hindi masyadong mahirap (taliwas sa badass-SMD-soldering-fellas doon). Ang monitor ay nakakabit sa apat na butas ng drill sa PCB na may isang naka-print na may-ari ng 3D. Kung ibang monitor ang ginamit, ang apat na butas ng drill ay maaaring magamit para sa pag-mount nito.
Ang may hawak ng monitor na ginamit dito, ay dinisenyo din upang makapaglagay ng isang toggle switch (konektado sa "switch" jumper sa PCB) at ang tatlong mga pindutan ng kontrol para sa monitor. Ang may hawak ay naka-fasten ng mga plastik na M3 bolts at spacer.
Para sa power plug Gumamit ako ng isang konektor ng JST PCB, bagaman ang isang makinis na jack jack ay naging mas makinis. Upang mapagana ang board, lumipat ako sa pagitan ng isang 12V power supply o tatlong 18650 na baterya sa serye. Ang isang mas makinis na koboy kaysa sa aking sarili ay maaaring magdisenyo ng isang makinis na may hawak ng baterya para sa board.
Hakbang 6: Mga bug at Trabaho sa Hinaharap
Mga arrow Key: Ang Mga arrow-key ay hindi sinasadya na inilagay at hindi gaanong nagaganap. Ginagawa nitong mahirap ang pag-navigate
File I / O: Mayroong mga kakayahan ng File I / O ngunit ang mga ito ay hindi ipinatupad. Upang labanan ito, ang HAL1284Com software ay magagawang mag-upload ng mga file sa board. Posible ring mag-upload sa EEPROM.
PEEK / POKE: Ang PEEK at POKE ay hindi nasubukan, at hindi ako sigurado kung ano ang mga address.
Break: Ang Break (Esc) ay minsan na ginugulo ang buong code, kapag sa walang katapusang mga loop.
Pin 7: Ang PWM pin 7 ay maaaring maging mahirap kapag sinusubukan na DWRITE High o AWRITE 255. Gumagana ito nang maayos sa AWRITE 254.
Idiot: Mainam na mag-upload din sa pamamagitan ng UART1 ngunit posible lamang ang pag-upload sa pamamagitan ng UART0, kaya kailangang gawin ang pag-upload sa pamamagitan ng pagkuha ng pangunahing IC. Ang Screen at Voltage Regulator 5 ay medyo naging mainit kapag tumatakbo ng mahabang panahon.
Inirerekumendang:
MutantC V3 - Modular at Napakahusay na HandHeld PC: 9 Mga Hakbang (na may Mga Larawan)
MutantC V3 - Modular at Napakalakas na HandHeld PC: Isang platform ng handpik na Raspberry-pi na may pisikal na keyboard, header ng Display at Expansion para sa mga pasadyang board (Tulad ng Arduino Shield). Ang MutantC_V3 ay kahalili ng mutantC_V1 at V2. Suriin ang mutantC_V1 at mutantC_V2.https: //mutantc.gitlab.io/https: // gitla
Console ng Game na Handheld ng ESP32: 21 Mga Hakbang (na may Mga Larawan)
ESP32 Handheld Game Console: Ipinapakita ng mga itinuturo na ito kung paano gumamit ng isang ESP32 at ATtiny861 upang bumuo ng isang NES emulator game console
Console ng Handheld Gaming - Arduboy Clone: 6 Mga Hakbang (na may Mga Larawan)
Console ng Handheld Gaming | Arduboy Clone: Ilang buwan na ang nakaraan nakilala ko ang Arduboy na ayon sa opisyal na website ay isang maliit na 8-bit na platform ng laro na ginagawang madali upang matuto, magbahagi at maglaro ng online. Ito ay isang bukas na platform ng mapagkukunan. Ang mga laro para sa Arduboy ay ginawa ng gumagamit
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Handheld 6 Note Music Box / Instrument (Madaling Gawin at Pagbutihin!): 5 Mga Hakbang (na may Mga Larawan)
Handheld 6 Note Music Box / Instrument (Madaling Gawing & Pagbutihin!): Kumusta! May inspirasyon ni Martin Molin, isang miyembro ng isang banda sa Sweden na tinawag na Wintergatan, kamakailan lang ay na-in love ako sa mga music box at lahat tungkol sa kanila. Ang mga taong gumagawa ng mga kanta para sa mga music box ay gumagamit pa rin ng makalumang paraan ng pagsuntok sa hindi