Satura rādītājs:

Rokas BASIC dators: 6 soļi (ar attēliem)
Rokas BASIC dators: 6 soļi (ar attēliem)

Video: Rokas BASIC dators: 6 soļi (ar attēliem)

Video: Rokas BASIC dators: 6 soļi (ar attēliem)
Video: Joka pēc alfabēts / Funny Alphabet 2024, Jūlijs
Anonim
Rokas BASIC dators
Rokas BASIC dators
Rokas BASIC dators
Rokas BASIC dators

Šajā pamācībā aprakstīts mans process, kā izveidot nelielu rokas datoru, kurā darbojas BASIC. Dators ir veidots ap ATmega 1284P AVR mikroshēmu, kas arī iedvesmoja dīvaino datora nosaukumu (HAL 1284).

Šī konstrukcija ir smagi iedvesmota no šeit atrodamā apbrīnojamā projekta un SuperCON BASIC emblēmas.

Datorā darbojas modificēta TinyBasic versija, lai gan liela daļa programmatūras ir balstīta uz dan14 projektu. Jūs, protams, varat ievērot šo pamācību vai vēl labāk to uzlabot, jo es pieļāvu dažas kļūdas.

Šim projektam es izveidoju arī rokasgrāmatu. Tajā ir minētas dažas kļūdas un specifika izvēlētajam monitoram, bet pats galvenais - tajā ir BASIC darbību saraksts.

Pēc tam, kad tas tika publicēts, es izveidoju video, kas demonstrēja projektu.

1. darbība. Izmantotās detaļas

Daļas, kuras es izmantoju
Daļas, kuras es izmantoju
Daļas, kuras es izmantoju
Daļas, kuras es izmantoju
Daļas, kuras es izmantoju
Daļas, kuras es izmantoju

Galvenajam IC:

  • ATmega 1284P
  • 16MHz kristāls
  • 2x 22pf keramikas kondensators
  • 10KΩ rezistors (atiestatīšanai)
  • 4 kontaktu poga (atiestatīšanai)
  • 470Ω rezistors (saliktam video)
  • 1kΩ rezistors (kompozītmateriālu video sinhronizācijai)
  • 3 kontaktu džemperis (video signālam)
  • Pasīvais zvana signāls

Atslēgas taustiņu kontrolei:

  • ATmega 328P (tāpat kā Arduino Uno)
  • 16MHz kristāls
  • 2x 22pf keramikas kondensators
  • 12x 10KΩ rezistors (atiestatīšanai velciet uz augšu un pogas)
  • 51x 4 kontaktu poga (faktiskajai tastatūrai)

Jaudai:

  • Sprieguma regulators L7805
  • 3 mm LED
  • 220Ω rezistors (LED)
  • 2x 0,1 µF elektrolītiskais kondensators
  • 0,22 µF elektrolītiskais kondensators (jūs varētu aizstāt šo 0,22 un vienu 0,1 ar vienu 0,33. Man arī ir teikts, ka vērtībām nav nozīmes, bet es neesmu lielisks ar kondensatoriem)
  • 2x 2-kontaktu džemperis (barošanas ievadei un galvenajam slēdzim)

GPIO (varbūt pievienojiet vēl dažus pamatus):

  • 7 kontaktu džemperis
  • 2x 8 kontaktu džemperis
  • 2 kontaktu džemperis (5V un GND)
  • 3-4 kontaktu džemperis (seriālajai komunikācijai)

Bez PCB:

  • 4 collu LCD displejs ar kompozītvideo (manējā ieejas spriegums bija no 7 līdz 30 V)
  • 3D drukāts turētājs displejam
  • Kaut kāds slēdzis

2. solis: ķēde

Ķēde
Ķēde

Ķēde nav ļoti skaista, un lielu daļu galvenā IC reģiona iedvesmojis dan14. Tas nozīmē, ka tas ir diezgan taisns Arduino uz maizes dēļa ķēdes. Tastatūra ir vienkāršs režģis, un to kontrolē ATmega328. Abas AVR mikroshēmas sazinās, izmantojot UART sērijas tapas.

Gan attēls, gan mani Eagle faili ir pievienoti, un, cerams, ar to pietiks, lai atjaunotu ķēdi. Ja nē, lūdzu, informējiet mani, un es atjaunināšu pamācību.

3. solis: PCB

PCB
PCB
PCB
PCB

PCB ir divslāņu un izveidota, izmantojot automātisko maršrutu (Ak, kāds ** caurums!). Tā priekšpusē ir pogas un strāvas indikatora gaismas diode, bet pārējā - aizmugurē. Man bija izgatavots mans PCB ar JCL PCB, un viņi ar to paveica pārsteidzošu darbu. Failiem, kas vajadzīgi, lai atjaunotu PCB, vajadzētu būt Eagle failos no iepriekš.

Es ieteiktu jums pārveidot PCB, jo man ir dažas lietas, kuras es vēlētos darīt citādi. Ja jums patīk mans dizains, man joprojām (rakstīšanas laikā) ir četri neizmantoti dēļi, kurus esmu vairāk nekā gatavs pārdot.

Plātnei ir četri urbšanas caurumi, kurus esmu izmantojis LCD displeja uzstādīšanai.

4. darbība: koda augšupielāde

Koda augšupielāde
Koda augšupielāde
Koda augšupielāde
Koda augšupielāde
Koda augšupielāde
Koda augšupielāde

Gan 1284, gan 328, protams, ir nepieciešams kods, un manu izmantoto kodu var atrast šeit: https://github.com/PlainOldAnders/HAL1284 zem ArduinoSrc/src. Es vienkārši izmantoju Arduino IDE, lai modificētu un augšupielādētu kodu, bet pirms to var izdarīt, jums būs jāsadedzina sāknēšanas ielādētāji IC:

ATMega328:

Tas ir viegli tādā ziņā, ka tur ir daudz atbalsta, kā ierakstīt sāknēšanas ielādētāju un augšupielādēt kodu šajā IC. Es parasti sekoju šai rokasgrāmatai, galvenokārt tāpēc, ka aizmirstu specifiku.

328 kods (zem ArduinoSrc/tastatūras) ir diezgan vienkāršs. Tas pilnībā balstās uz Adafruit_Keypad-master-bibliotēku. Ja kaut kas mainās saistībā ar lib, esmu ievietojis versiju, ko izmantoju savā github lapā, zem ArduinoSrc/lib.

ATmega1284:

Tas man bija mazliet grūti, kad pirmo reizi ieguvu IC. Sākumā es no šejienes paņēmu sāknēšanas ielādētāju un sekoju instalēšanas ceļvedim. Lai ierakstītu sāknēšanas ielādētāju, es vienkārši darīju to pašu, ko ar 328, un no šejienes saņēmu palīdzību. Abiem IC es tikko izmantoju Arduino Uno gan sāknēšanas ielādēšanai, gan koda augšupielādei (augšupielādes laikā tika noņemts IC no Arduino Uno).

Kods (zem ArduinoSrc/HAL1284Basic) man ir pārāk sarežģīts, bet es varēju mainīt dažas koda daļas:

Es pievienoju pāris komandas (tās, kas rokasgrāmatā ir atzīmētas ar [A]), un mainīju arī citas komandas:

Tonis: Komanda signāls iepriekš izmantoja Arduino toņu funkciju, bet, izmantojot TVout bibliotēku, zvans nedarbojās pareizi. Es to nomainīju, lai izmantotu TVout toņa funkciju, bet tas nozīmē, ka toņa tapai IR jābūt 15. tapai (atmega1284)

Seriālā komunikācija: Tā kā tastatūra ir DIY, tā izmanto sērijas sakarus rakstzīmju lasīšanai. Tā kā šeit tiek izmantots atmega1284, ir pieejamas divas sērijas sakaru līnijas, un, ja ir iespējots "sercom", kods ļauj arī rakstīt, izmantojot seriālo portu (no datora vai jebkura cita).

Izšķirtspēja: šim projektam izmantotais monitors ir diezgan mēms, un ir nepieciešama neliela izšķirtspēja, pretējā gadījumā attēls mirgo. Ja tiek izmantots labāks monitors, es ieteiktu mainīt iestatīšanas funkcijas izšķirtspēju.

5. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Kad kods ir augšupielādēts un PCB un detaļas ir gatavas, ir pienācis laiks montāžai. Visas detaļas, kuras es izmantoju, bija caur caurumu, tāpēc lodēšana nebija pārāk grūta (pretstatā badass-SMD-lodēšanas puišiem). Monitors tika piestiprināts pie četriem urbumiem PCB ar 3D drukātu turētāju. Ja tiek izmantots cits monitors, cerams, ka četrus urbšanas caurumus var izmantot tā uzstādīšanai.

Šeit izmantotais monitora turētājs ir paredzēts arī pārslēgšanas slēdzim (savienots ar PCB džemperi) un trim monitora vadības pogām. Turētājs ir piestiprināts ar plastmasas M3 skrūvēm un starplikām.

Strāvas kontaktdakšai es izmantoju JST PCB savienotāju, lai gan slidens mucas ligzda būtu bijusi nedaudz gludāka. Lai barotu plati, es pārslēdzos starp 12 V barošanas avotu vai trim 18650 baterijām sērijveidā. Gludāks kovbojs par mani, iespējams, varētu izveidot gludu akumulatora turētāju.

6. darbība. Kļūdas un turpmākie darbi

Bulttaustiņi: bulttaustiņi tika ievietoti nejauši un tiem nav lielas funkcijas. Tas apgrūtina navigāciju

Failu I/O: pastāv faila I/O iespējas, taču tās netiek ieviestas. Lai to novērstu, programmatūra HAL1284Com spēj augšupielādēt failus uz tāfeles. Ir iespējams arī augšupielādēt EEPROM.

PEEK/POKE: PEEK un POKE nav pārbaudīti, un es neesmu pārliecināts, kādas ir adreses.

Pārtraukums: pārtraukums (Esc) dažreiz ir sajaucis visu kodu, atrodoties bezgalīgās cilpās.

7. tapa: PWM tapa 7 var būt sarežģīta, mēģinot DWRITE High vai AWRITE 255. Tas darbojas labi ar AWRITE 254.

Idiots: būtu ideāli, ja varētu augšupielādēt arī caur UART1, bet augšupielāde ir iespējama tikai caur UART0, tāpēc augšupielāde būs jāveic, iegūstot galveno IC. Ekrāna un sprieguma regulators 5 ilgstoši darbojoties kļūst mazliet par karstu.

Ieteicams: