Obsah:

Ručný počítač BASIC: 6 krokov (s obrázkami)
Ručný počítač BASIC: 6 krokov (s obrázkami)

Video: Ručný počítač BASIC: 6 krokov (s obrázkami)

Video: Ručný počítač BASIC: 6 krokov (s obrázkami)
Video: Jak nejít do školy kvůli testům? SKETCH 2024, November
Anonim
Ručný počítač BASIC
Ručný počítač BASIC
Ručný počítač BASIC
Ručný počítač BASIC

Tento návod popisuje môj postup pri vytváraní malého vreckového počítača so systémom BASIC. Počítač je postavený na čipe ATmega 1284P AVR, ktorý inšpiroval aj hlúpym názvom počítača (HAL 1284).

Táto stavba je HEAVILY inšpirovaná úžasným projektom, ktorý sa tu nachádza, a odznakom SuperCON BASIC.

Na počítači beží upravená verzia TinyBasic, aj keď väčšina softvéru je založená na projekte dan14. Môžete sa samozrejme riadiť týmto návodom alebo ho ešte lepšie zlepšiť, pretože som urobil niekoľko chýb.

K tomuto projektu som vytvoril aj manuál. Uvádza niektoré chyby a špecifiká pre zvolený monitor, ale čo je najdôležitejšie, obsahuje zoznam ZÁKLADNÝCH operácií.

Potom, čo to bolo zverejnené, som urobil video predstavujúce projekt.

Krok 1: Použité diely

Diely, ktoré som použil
Diely, ktoré som použil
Diely, ktoré som použil
Diely, ktoré som použil
Diely, ktoré som použil
Diely, ktoré som použil

Pre hlavné IC:

  • ATmega 1284P
  • 16 MHz kryštál
  • 2x 22pf keramický kondenzátor
  • Rezistor 10KΩ (na resetovanie vytiahnite)
  • 4-kolíkové tlačidlo (na resetovanie)
  • 470Ω odpor (pre kompozitné video)
  • Rezistor 1 kΩ (pre synchronizáciu kompozitného videa)
  • 3-kolíkový prepojovací mostík (pre video signál)
  • Pasívny bzučiak

Pre ovládanie keybaord:

  • ATmega 328P (Rovnako ako tie, ktoré sa používajú v Arduino Uno)
  • 16 MHz kryštál
  • 2x 22pf keramický kondenzátor
  • 12x 10KΩ odpor (na resetovanie vytiahnite a tlačidlá)
  • 51x 4-kolíkové tlačidlo (pre skutočnú klávesnicu)

Na napájanie:

  • Regulátor napätia L7805
  • 3 mm LED
  • Rezistor 220Ω (pre LED)
  • 2x 0,1 µF elektrolytický kondenzátor
  • 0,22 µF elektrolytický kondenzátor (Môžete nahradiť 0,22 a jednu 0,1 za jednu 0,33. Tiež mi bolo povedané, že na hodnotách nezáleží, ale s kondenzátormi nie som dobrý)
  • 2x 2-kolíkový prepojovací mostík (pre napájanie a hlavný vypínač)

GPIO (Možno pridajte niekoľko ďalších dôvodov):

  • 7-kolíkový jumper
  • 2x 8-pinový jumper
  • 2-kolíkový prepojovací mostík (pre 5V a GND)
  • 3-4-kolíkový prepojovací mostík (pre sériovú komunikáciu)

Bez PCB:

  • 4 "LCD displej s kompozitným videom (môj mal vstupné napätie medzi 7-30V)
  • 3D tlačený držiak na displej
  • Nejaký vypínač

Krok 2: Okruh

Okruh
Okruh

Okruh nie je veľmi pekný a veľká časť hlavnej IC oblasti je inšpirovaná dan14. Ako už bolo povedané, je to celkom priame Arduino na obvode Breadboard. Klávesnica je jednoduchá mriežka a ovláda ju ATmega328. Dva AVR čipy komunikujú prostredníctvom sériových pinov UART.

Obraz a moje súbory Eagle sú priložené a dúfajme, že budú stačiť na obnovu okruhu. Ak nie, neváhajte ma o tom informovať a ja aktualizujem pokyny.

Krok 3: DPS

DPS
DPS
DPS
DPS

Doska plošných spojov je dvojvrstvová a je vytvorená pomocou funkcie Auto Route (Ach, aký a ** otvor!). Má tlačidlá a LED indikátor napájania vpredu a zvyšok vzadu. Nechal som si vyrobiť PCB s JCL PCB a odviedli s ním úžasnú prácu. Súbory potrebné na obnovu PCB by mali byť v súboroch Eagle predtým.

Navrhoval by som, aby ste prepracovali DPS, pretože mám niektoré veci, ktoré by som chcel urobiť inak. Ak sa vám páči môj dizajn, stále mám (ako píšem) štyri nepoužité dosky, ktoré som viac ako ochotný predať.

Doska má štyri vyvŕtané otvory, ktoré som použil na montáž LCD displeja.

Krok 4: Odovzdanie kódu

Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu
Odovzdanie kódu

1284 aj 328 samozrejme potrebujú kód a kód, ktorý som použil, nájdete tu: https://github.com/PlainOldAnders/HAL1284 pod ArduinoSrc/src. Na úpravu a odoslanie kódu som jednoducho použil IDE Arduino, ale skôr, ako to urobíte, budete musieť na integrovaných obvodoch napáliť bootloadery:

ATMega328:

Toto je jednoduché v tom zmysle, že existuje veľa podpory, ako napáliť bootloader a nahrať kód do tohto IC. Obvykle sa riadim týmto sprievodcom, väčšinou preto, že stále zabúdam na podrobnosti.

Kód pre 328 (pod ArduinoSrc/klávesnicou) je pomerne jednoduchý. Úplne sa spolieha na knižnicu Adafruit_Keypad-master-library. V prípade, že sa niečo zmení na lib, zahrnul som verziu, ktorú som použil na svojej stránke github pod ArduinoSrc/lib.

ATmega1284:

Keď som prvýkrát dostal IC, bolo to pre mňa trochu ťažké. Začal som tým, že som odtiaľto načítal bootloader a nasledoval sprievodcu inštaláciou. Aby som napálil bootloader, jednoducho som urobil to isté ako s 328 a dostal som pomoc odtiaľto. Pre oba integrované obvody som použil Arduino Uno na vypálenie bootloadera a nahranie kódu (pri odosielaní odstránený IC z Arduino Uno).

Kód (pod ArduinoSrc/HAL1284Basic) je pre mňa príliš komplikovaný, ale niektoré časti kódu som mohol upraviť:

Pridal som niekoľko príkazov (v manuáli.pdf označených [A]) a zmenil som aj ďalšie príkazy:

Tón: Tónový príkaz predtým používal funkciu tónu Arduina, ale pri použití knižnice TVout to spôsobilo, že bzučiak nefunguje správne. Zmenil som to tak, aby používal funkciu tónu TVout, ale to znamená, že pin tónu MUSÍ byť pin 15 (pre atmega1284)

Sériová komunikácia: Keďže klávesnica je DIY, používa na čítanie znakov sériovú komunikáciu. Pretože sa tu používa atmega1284, sú k dispozícii dve sériové komunikačné linky, a keď je aktivovaný „sercom“, kód umožňuje aj zápis cez sériový port (z počítača alebo čohokoľvek).

Rozlíšenie: Monitor použitý na tento projekt je dosť hlúpy a je potrebné malé rozlíšenie, inak obraz bliká. Ak používate lepší monitor, navrhujem, aby ste zmenili rozlíšenie vo funkcii nastavenia.

Krok 5: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Keď je kód nahraný a doska plošných spojov a diely pripravené, je čas na montáž. Všetky diely, ktoré som použil, boli skrz dieru, takže spájkovanie nebolo príliš ťažké (na rozdiel od badass-SMD-spájkovacích-chlapcov tam vonku). Monitor bol pripevnený k štyrom vyvŕtaným otvorom v doske pomocou 3D tlačeného držiaka. Ak sa použije iný monitor, dúfajme, že na jeho montáž možno použiť štyri vyvŕtané otvory.

Tu použitý držiak monitora je tiež navrhnutý tak, aby umiestnil prepínač (prepojený s prepojkou "prepínača" na doske plošných spojov) a tri ovládacie tlačidlá monitora. Držiak je upevnený plastovými skrutkami M3 a rozperami.

Na napájaciu zástrčku som použil konektor JST PCB, aj keď hladký valcový konektor by bol o niečo hladší. Na napájanie dosky som prešiel medzi 12 V napájaním alebo tromi batériami 18650 v sérii. Hladší kovboj ako ja by pravdepodobne dokázal navrhnúť úhľadný držiak batérie pre dosku.

Krok 6: Chyby a budúca práca

Klávesy so šípkami: Klávesy so šípkami boli vložené náhodne a nespĺňajú mnoho funkcií. To sťažuje navigáciu

Súbor I/O: Existujú možnosti súboru I/O, ktoré však nie sú implementované. Aby sa tomu zabránilo, softvér HAL1284Com je schopný nahrávať súbory na dosku. Je tiež možné nahrať do EEPROM.

PEEK/POKE: PEEK a POKE nie sú testované a nie som si istý, aké sú adresy.

Break: Break (Esc) niekedy zapletal celý kód, keď je v nekonečných slučkách.

Pin 7: PWM pin 7 môže byť náročný pri pokuse o DWRITE High alebo AWRITE 255. Funguje to dobre s AWRITE 254.

Idiot: Bolo by ideálne mať možnosť nahrávať aj prostredníctvom UART1, ale nahrávanie je možné iba prostredníctvom UART0, takže nahrávanie bude potrebné vykonať extrakciou hlavného integrovaného obvodu. Regulátor obrazovky a napätia 5 sa pri dlhšom behu príliš zahrieva.

Odporúča: