Talaan ng mga Nilalaman:

Handheld BASIC Computer: 6 Hakbang (na may Mga Larawan)
Handheld BASIC Computer: 6 Hakbang (na may Mga Larawan)

Video: Handheld BASIC Computer: 6 Hakbang (na may Mga Larawan)

Video: Handheld BASIC Computer: 6 Hakbang (na may Mga Larawan)
Video: Epp4 Paggawa Ng Dokumento Na May Larawan 1 2024, Nobyembre
Anonim
Kamay sa BASIC Computer
Kamay sa BASIC Computer
Kamay sa BASIC Computer
Kamay sa BASIC Computer

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

Mga Bahaging Ginamit Ko
Mga Bahaging Ginamit Ko
Mga Bahaging Ginamit Ko
Mga Bahaging Ginamit Ko
Mga Bahaging Ginamit Ko
Mga Bahaging 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
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
Ang PCB
Ang PCB
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

Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code
Pag-upload ng Code
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

Assembly
Assembly
Assembly
Assembly
Assembly
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: