Indholdsfortegnelse:

Håndholdt BASIC -computer: 6 trin (med billeder)
Håndholdt BASIC -computer: 6 trin (med billeder)

Video: Håndholdt BASIC -computer: 6 trin (med billeder)

Video: Håndholdt BASIC -computer: 6 trin (med billeder)
Video: ЯПОНЦЫ ВОТ ТАК ОЧИЩАЮТ СОСУДЫ ЗА 2 НЕДЕЛИ! 2024, Juli
Anonim
Håndholdt BASIC computer
Håndholdt BASIC computer
Håndholdt BASIC computer
Håndholdt BASIC computer

Denne instruktionsbog beskriver min proces med at bygge en lille håndholdt computer, der kører BASIC. Computeren er bygget op omkring ATmega 1284P AVR -chippen, som også inspirerede det dumme navn til computeren (HAL 1284).

Denne build er STORT inspireret af det fantastiske projekt, der findes her og SuperCON BASIC -badget.

Computeren kører en modificeret version af TinyBasic, selvom meget af softwaren er baseret på projektet af dan14. Du kan selvfølgelig følge denne instruktive, eller endnu bedre, forbedre den, da jeg lavede et par fejl.

Til dette projekt har jeg også oprettet en manual. Det nævner nogle fejl og specifikationer for den valgte skærm, men vigtigst af alt har det listen over BASIC -operationer.

Efter at dette blev offentliggjort, lavede jeg en video, der viste projektet.

Trin 1: Dele, jeg brugte

Dele jeg brugte
Dele jeg brugte
Dele jeg brugte
Dele jeg brugte
Dele jeg brugte
Dele jeg brugte

For den vigtigste IC:

  • ATmega 1284P
  • 16MHz krystal
  • 2x 22pf keramisk kondensator
  • 10KΩ modstand (til nulstilling pull up)
  • 4-benet knap (til nulstilling)
  • 470Ω Reistor (til kompositvideo)
  • 1kΩ modstand (til sammensat videosynkronisering)
  • 3-benet jumper (til videosignal)
  • Passiv summer

Til keybaord -kontrol:

  • ATmega 328P (Ligesom dem, der bruges i Arduino Uno)
  • 16MHz krystal
  • 2x 22pf keramisk kondensator
  • 12x 10KΩ modstand (Til nulstilling pull up og knapper)
  • 51x 4-benet knap (til det egentlige tastatur)

For strøm:

  • L7805 spændingsregulator
  • 3 mm LED
  • 220Ω modstand (til LED)
  • 2x 0,1µF elektrolytisk kondensator
  • 0,22 µF elektrolytisk kondensator (Du kan erstatte denne 0,22 og en 0,1 med en 0,33. Jeg har også fået at vide, at værdierne ikke rigtig betyder noget, men jeg er ikke god til kondensatorer)
  • 2x 2-polet jumper (til strømindgang og til hovedafbryder)

GPIO (tilføj måske et par grunde mere):

  • 7-benet jumper
  • 2x 8-polet jumper
  • 2-benet jumper (til 5V og GND)
  • 3-4-benet jumper (til seriel kommunikation)

Ikke-PCB:

  • 4 "LCD-skærm med kompositvideo (min havde en indgangsspænding mellem 7-30V)
  • 3D -printet holder til display
  • En slags switch

Trin 2: Kredsløbet

Kredsløbet
Kredsløbet

Kredsløbet er ikke særlig smukt, og meget af IC-hovedområdet er inspireret af dan14. Når det er sagt, er det en ret ligetil Arduino på et Breadboard-kredsløb. Tastaturet er et enkelt gitter og styres af ATmega328. De to AVR -chips kommunikerer via UART Serial pins.

Både et billede og mine Eagle-filer er vedhæftet og vil forhåbentlig være nok til at genskabe kredsløbet. Hvis ikke, er du velkommen til at informere mig, så opdaterer jeg instruktionsbogen.

Trin 3: PCB

PCB
PCB
PCB
PCB

PCB'et er 2-lags og skabt ved hjælp af Auto Route (Åh, sikke et ** hul!). Den har knapper og strømindikator LED foran og resten på bagsiden. Jeg havde min PCB lavet med JCL PCB, og de gjorde et fantastisk stykke arbejde med det. Filerne, der er nødvendige for at genskabe printkortet, skal være i Eagle-filerne fra før.

Jeg vil foreslå, at du redesigner printkortet, da jeg har nogle ting, jeg gerne ville have gjort anderledes. Hvis du kan lide mit design, har jeg stadig (i skrivende stund) fire ubrugte tavler, som jeg er mere end villig til at sælge.

Brættet har fire borehuller, som jeg har brugt til montering af LCD -skærmen.

Trin 4: Upload af koden

Upload af koden
Upload af koden
Upload af koden
Upload af koden
Upload af koden
Upload af koden

Både 1284 og 328 har selvfølgelig brug for kode og den kode, jeg brugte, kan findes her: https://github.com/PlainOldAnders/HAL1284 under ArduinoSrc/src. Jeg brugte simpelthen Arduino IDE til at ændre og uploade koden, men før det kan gøres, skal du brænde bootloadere på IC'erne:

ATMega328:

Denne er let, i den forstand at der er meget støtte derude om, hvordan man brænder en bootloader og uploader kode til denne IC. Jeg følger normalt denne vejledning, mest fordi jeg bliver ved med at glemme detaljerne.

Koden til 328 (under ArduinoSrc/tastatur) er ret simpel. Det er helt afhængigt af Adafruit_Keypad-master-biblioteket. Hvis noget ændrer sig om lib, har jeg inkluderet den version, jeg brugte på min github-side under ArduinoSrc/lib.

ATmega1284:

Dette var lidt svært for mig, da jeg først fik IC. Jeg startede med at hente bootloaderen herfra og fulgte installationsguiden. For at brænde bootloaderen gjorde jeg simpelthen det samme som med 328 og fik hjælp herfra. For begge IC'er brugte jeg bare en Arduino Uno til både at brænde bootloaderen og uploade koden (fjernet IC fra Arduino Uno ved upload).

Koden (under ArduinoSrc/HAL1284Basic) er alt for kompliceret for mig, men jeg var i stand til at ændre nogle dele af koden:

Jeg tilføjede et par kommandoer (dem markeret med [A] i manualen.pdf), og jeg ændrede også andre kommandoer:

Tone: Tone-kommandoen brugte netop Arduinos tone-funktion før, men når du brugte TVout-biblioteket, fik dette summeren til ikke at fungere korrekt. Jeg ændrede den for at bruge TVouts tone-funktion, men det betyder, at tonestiften SKAL være pin 15 (for atmega1284)

Seriel kommunikation: Da tastaturet er DIY, bruger det seriel kommunikation til at læse karaktererne. Da atmega1284 bruges her, er der to tilgængelige serielle kommunikationslinjer, og når "sercom" er aktiveret, giver koden også mulighed for at skrive via den serielle port (fra en computer eller hvad som helst).

Opløsning: Skærmen, der bruges til dette projekt, er ret dum, og der er brug for en lille opløsning, ellers flimrer billedet. Hvis der bruges en bedre skærm, vil jeg foreslå, at du ændrer opløsningen i opsætningsfunktionen.

Trin 5: Montering

montage
montage
montage
montage
montage
montage

Med koden uploadet og printkortet og dele klar, er det nu tid til samling. Alle de dele, jeg brugte, var gennem hullet, så lodningen var ikke for vanskelig (i modsætning til de badass-SMD-lodningskammerater derude). Skærmen blev fastgjort til de fire borehuller i printet med en 3D -printet holder. Hvis der bruges en anden skærm, kan de fire borehuller forhåbentlig bruges til at montere denne.

Skærmholderen, der bruges her, er også designet til at rumme en vippekontakt (forbundet til "switch" jumperen på printet) og de tre betjeningsknapper til skærmen. Holderen er fastgjort med plastik M3 bolte og afstandsstykker.

Til strømstikket brugte jeg et JST PCB -stik, selvom et glat tøndejord ville have været lidt mere glat. For at drive kortet skiftede jeg mellem en 12V strømforsyning eller tre 18650 batterier i serie. En glattere cowboy end jeg selv kunne nok designe en glat batteriholder til brættet.

Trin 6: Fejl og fremtidigt arbejde

Piletaster: Piletasterne blev sat ved et uheld og tjener ikke meget funktion. Dette gør navigation vanskelig

File I/O: Der findes File I/O -muligheder, men disse er ikke implementeret. For at bekæmpe dette kan HAL1284Com -softwaren uploade filer til kortet. Det er også muligt at uploade til EEPROM.

PEEK/POKE: PEEK og POKE er uprøvede, og jeg er ikke sikker på, hvad adresserne er.

Break: Break (Esc) har nogle gange rodet med hele koden, når den er i uendelige sløjfer.

Pin 7: PWM pin 7 kan være vanskelig, når du forsøger at DWRITE High eller AWRITE 255. Det fungerer fint med AWRITE 254.

Idiot: Det ville være ideelt også at kunne uploade via UART1, men upload er kun mulig via UART0, så upload skal ske ved at udtrække den vigtigste IC. Skærm- og spændingsregulatoren 5 bliver lidt for varm, når den kører i lang tid.

Anbefalede: