INHOUDSOPGAWE:

BASIC rekenaar: 6 stappe (met foto's)
BASIC rekenaar: 6 stappe (met foto's)

Video: BASIC rekenaar: 6 stappe (met foto's)

Video: BASIC rekenaar: 6 stappe (met foto's)
Video: Landschapsfotografie voor beginners (in 6 stappen) | Canon Nederland 2024, Julie
Anonim
BASIC Rekenaar
BASIC Rekenaar
BASIC Rekenaar
BASIC Rekenaar

Hierdie instruksie beskryf my proses van die bou van 'n klein rekenaar wat BASIC werk. Die rekenaar is gebou rondom die ATmega 1284P AVR -chip, wat ook die dom naam vir die rekenaar geïnspireer het (HAL 1284).

Hierdie konstruksie is HEERLIK geïnspireer deur die wonderlike projek wat hier gevind is en die SuperCON BASIC -kenteken.

Die rekenaar gebruik 'n aangepaste weergawe van TinyBasic, hoewel baie van die sagteware gebaseer is op die projek deur dan14. U kan hierdie instruksies, of selfs beter, natuurlik verbeter, aangesien ek 'n paar foute begaan het.

Vir hierdie projek het ek ook 'n handleiding opgestel. Dit noem 'n paar foute en besonderhede vir die gekose monitor, maar die belangrikste is dat dit 'n lys met BASIC -operasies het.

Nadat dit gepubliseer is, het ek 'n video gemaak van die projek.

Stap 1: Onderdele wat ek gebruik het

Onderdele wat ek gebruik het
Onderdele wat ek gebruik het
Onderdele wat ek gebruik het
Onderdele wat ek gebruik het
Onderdele wat ek gebruik het
Onderdele wat ek gebruik het

Vir die belangrikste IC:

  • ATmega 1284P
  • 16 MHz kristal
  • 2x 22pf keramiek kondensator
  • 10KΩ Weerstand (om terug te trek)
  • 4-pins knoppie (vir herstel)
  • 470Ω Reistor (vir saamgestelde video)
  • 1kΩ Weerstand (vir saamgestelde videosinkronisering)
  • 3-pen trui (vir videosignaal)
  • Passiewe gonser

Vir sleutelbordkontrole:

  • ATmega 328P (Soos dié wat in die Arduino Uno gebruik word)
  • 16 MHz kristal
  • 2x 22pf keramiek kondensator
  • 12x 10KΩ Weerstand (om terug te trek en knoppies)
  • 51x 4-pins knoppie (vir die werklike sleutelbord)

Vir krag:

  • L7805 Spanningsreguleerder
  • 3 mm LED
  • 220Ω Weerstand (vir LED)
  • 2x 0.1µF elektrolitiese kondensator
  • 0,22 µF elektrolitiese kondensator (u kan hierdie 0,22 en een 0,1 vir een 0,33 vervang. Daar is ook vir my gesê dat die waardes nie regtig saak maak nie, maar ek is nie goed met kapasitors nie)
  • 2x 2-pins trui (vir kraginvoer en hoofskakelaar)

GPIO (voeg nog 'n paar redes by):

  • 7-pen trui
  • 2x 8-pins trui
  • 2-pins trui (vir 5V en GND)
  • 3-4-pen trui (vir seriële kommunikasie)

Nie-PCB:

  • 4 "LCD-skerm met saamgestelde video (myne het 'n ingangsspanning tussen 7-30V)
  • 3D -gedrukte houer vir vertoning
  • Een of ander skakelaar

Stap 2: Die stroombaan

Die stroombaan
Die stroombaan

Die kring is nie baie mooi nie, en baie van die belangrikste IC-gebied is geïnspireer deur dan14. Dit gesê, dit is 'n redelik reguit Arduino op 'n Breadboard-kring. Die sleutelbord is 'n eenvoudige rooster en word beheer deur die ATmega328. Die twee AVR -skyfies kommunikeer via die UART -seriële penne.

Beide 'n prent en my Eagle-lêers is aangeheg en sal hopelik genoeg wees om die kring te herskep. Indien nie, laat weet my gerus en ek sal die Instructable bywerk.

Stap 3: Die PCB

Die PCB
Die PCB
Die PCB
Die PCB

Die PCB is in twee lae en geskep met behulp van Auto Route (O, wat 'n ** gat!). Dit het knoppies en kragaanwyser -LED aan die voorkant en die res aan die agterkant. Ek het my PCB met JCL PCB laat maak, en hulle het dit uitstekend gedoen. Die lêers wat nodig was om die PCB te herskep, moet van vooraf in die Eagle-lêers wees.

Ek stel voor dat u die PCB herontwerp, aangesien ek 'n paar dinge het wat ek anders sou wou doen. As jy van my ontwerp hou, het ek nog (op die oomblik) vier ongebruikte borde wat ek meer as bereid is om te verkoop.

Die bord het vier boorgate wat ek gebruik het vir die montering van die LCD -skerm.

Stap 4: Laai die kode op

Laai die kode op
Laai die kode op
Laai die kode op
Laai die kode op
Laai die kode op
Laai die kode op

Beide die 1284 en die 328 benodig natuurlik kode en die kode wat ek gebruik het, kan hier gevind word: https://github.com/PlainOldAnders/HAL1284 onder ArduinoSrc/src. Ek het eenvoudig die Arduino IDE gebruik om die kode te verander en op te laai, maar voordat dit gedoen kan word, moet u selflaaiprogramme op die IC's verbrand:

ATMega328:

Hierdie een is maklik, in die sin dat daar baie ondersteuning is oor hoe om 'n selflaaiprogram te verbrand en kode na hierdie IC op te laai. Ek volg gewoonlik hierdie gids, meestal omdat ek die besonderhede bly vergeet.

Die kode vir die 328 (onder ArduinoSrc/sleutelbord) is redelik eenvoudig. Dit is heeltemal afhanklik van die Adafruit_Keypad-master- biblioteek. As daar iets aan die lib verander, het ek die weergawe wat ek op my github-bladsy gebruik het, ingesluit onder ArduinoSrc/lib.

ATmega1284:

Dit was vir my 'n bietjie moeilik toe ek die eerste keer die IC kry. Ek het die bootloader hiervandaan gekry en die installeringsgids gevolg. Om die selflaaiprogram te verbrand, het ek eenvoudig dieselfde gedoen as met die 328 en hiervandaan hulp gekry. Vir beide IC's het ek net 'n Arduino Uno gebruik om die selflaaiprogram te verbrand en die kode op te laai (IC verwyder van Arduino Uno tydens die oplaai).

Die kode (onder ArduinoSrc/HAL1284Basic) is vir my te ingewikkeld, maar ek kon sommige dele van die kode verander:

Ek het 'n paar opdragte bygevoeg (dié gemerk met [A] in die handleiding.pdf), en ek het ook ander opdragte verander:

Toon: die toonopdrag het net voorheen die toonfunksie van Arduino gebruik, maar as u die TVout-biblioteek gebruik, het dit veroorsaak dat die gonser nie behoorlik werk nie. Ek het dit verander om die toonfunksie van TVout te gebruik, maar dit beteken dat die toonpen PIN 15 moet wees (vir die atmega1284)

Seriële kommunikasie: Aangesien die sleutelbord selfgemaak is, gebruik dit seriële kommunikasie om die karakters te lees. Aangesien die atmega1284 hier gebruik word, is daar twee seriële kommunikasielyne beskikbaar, en as 'sercom' aangeskakel is, kan die kode ook via die seriële poort (vanaf 'n rekenaar of wat ook al) geskryf word.

Resolusie: die monitor wat vir hierdie projek gebruik word, is redelik dom, en 'n klein resolusie is nodig, anders flikker die prentjie. As 'n beter monitor gebruik word, stel ek voor dat u die resolusie in die opstelfunksie verander.

Stap 5: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Met die oplaai van die kode en die PCB en onderdele gereed, is dit nou tyd vir montering. Al die dele wat ek gebruik het, was deur 'n gat, sodat die soldeer nie te moeilik was nie (in teenstelling met die badass-SMD-soldeer-ouens daar buite). Die monitor is met 'n 3D -gedrukte houer aan die vier boorgate in die PCB vasgemaak. As 'n ander monitor gebruik word, kan die vier boorgate hopelik gebruik word om dit te monteer.

Die monitorhouer wat hier gebruik word, is ook ontwerp om 'n skakelaar (gekoppel aan die "skakelaar" -trui op die printplaat) en die drie knoppies vir die monitor te huisves. Die houer word vasgemaak met plastiek M3 -boute en afstandhouers.

Vir die kragprop het ek 'n JST PCB -aansluiting gebruik, alhoewel 'n gladde vataansluiting 'n bietjie gladder sou gewees het. Om die bord te dryf, het ek oorgeskakel tussen 'n 12V -kragtoevoer of drie 18650 batterye in serie. 'N Gladder cowboy as ek kan 'n gladde batteryhouer vir die bord ontwerp.

Stap 6: Goggas en toekomstige werk

Pyltjie sleutels: Die pyltjie sleutels is per ongeluk geplaas en dien nie veel funksie nie. Dit maak navigasie moeilik

Lêer -I/O: Daar is lêer -I/O -vermoëns, maar dit word nie geïmplementeer nie. Om dit te bekamp, kan die HAL1284Com -sagteware lêers na die bord oplaai. Dit is ook moontlik om na die EEPROM op te laai.

PEEK/POKE: PEEK en POKE is ongetoets, en ek is nie seker wat die adresse is nie.

Breek: Pauze (Esc) het soms met die hele kode gemors, in oneindige lusse.

Speld 7: Die PWM -pen 7 kan moeilik wees as u probeer om DWRITE High of AWRITE 255 te probeer skryf. Dit werk goed met AWRITE 254.

Idioot: dit sou ook ideaal wees om via UART1 te laai, maar dit is slegs moontlik om dit op te laai via UART0, dus moet u dit oplaai deur die belangrikste IC te onttrek. Die skerm- en spanningsreguleerder 5 word 'n bietjie te warm as dit lank werk.

Aanbeveel: