Innholdsfortegnelse:

DemUino - hjemmemaskin/kontroller: 7 trinn
DemUino - hjemmemaskin/kontroller: 7 trinn

Video: DemUino - hjemmemaskin/kontroller: 7 trinn

Video: DemUino - hjemmemaskin/kontroller: 7 trinn
Video: Gear VR 2020-Мои 5 лучших! 2024, November
Anonim
Image
Image
Burning the Bootloader
Burning the Bootloader

En Arduino -inspirert datamaskin av DemeterArt Få mest mulig ut av det gamle PS2 -tastaturet. Hack den inn i en tilpasset personlig datamaskin for å kontrollere ting! Jeg har alltid ønsket å bygge min egen hjemmemaskin, en slags retrostil, ikke noe fancy, men med spesielle evner tilpasset mine preferanser. Så jeg fikk det til med atmega328 MCU og Arduino utviklingskit.

La meg konstatere at dette prosjektet ville ha tatt betydelig lengre tid med tvilsomme sluttresultater hvis det ikke var for de begavede fansen der ute som mindre egoistisk leverer freeware -bibliotekene som alle kan bruke. Takk alle sammen:-)

besøk mitt nettsted for å lese hele historien og laste ned alle relevante filer

www.sites.google.com/site/demeterart

Trinn 1: Funksjoner

  • Basert på ATMEGA328 med 32KB blits, 2KB SRAM og 1KB EEPROM.
  • støtte for interaktive og batchmoduser
  • linjeditor og liste-mens-redigeringsmodus
  • 8 egendefinerte tegn for brukergrafikk
  • 60 programtrinn nummerert 00,…, 99
  • "Hvis" betinget, "mens" og "for" sløyfer pluss "gå" og "sub" utsagn for forgrening
  • Grunnleggende aritmetiske og matematiske uttrykk pluss boolske tester
  • systemvariabler tillater tidsbestemte hendelser, gjennomsnitt, rms, min og maks verdier fra analoge pinner, etc.
  • 26 brukervariabler for å samhandle med systemvariabler og kommandoer
  • 104 byte av en brukeradresserbar matrise eller 52 korte heltall
  • evne til å lese/skrive programdata samt kode i farten (p-variabel)
  • mini oscilloskop -app med tilpassede tegn for pseudografikk
  • lagre og last programmer og data til/fra EEPROM
  • laste/lagre programmer og variabler fra/til PC
  • autoexec til å laste og kjøre et program fra EEPROM etter hver tilbakestilling
  • 9 GPIO -pinner (SPI inkludert) tilgjengelig på ekstern DB15 -kontakt
  • BUZZER for lydeffekter

Trinn 2: Ting du trenger

Et gammelt ps/2 -tastatur som er tykt nok til å romme PCB LCD -tegnvisning (det populære parallelle formatet) MAX232 -brikke for RS232 -port atmel atmega328PU Arduino -utviklingssett med IDE 1.0.1 LM7805 regulator 5V summer -bro -likeretter, kondensatorer, en tilbakestillingsknapp, kontakter osv

Trinn 3: Brenning av bootloader

Så, etter å ha kjøpt en 'tom' atmega328PU -brikke, er det en beslutning som må tas. Bruker jeg en spesiell programmerer, enten ekstern eller ISP, eller brenner jeg Arduino bootloader inn i dyret og gjør enheten programmerbar via UART -porten? Jeg valgte det siste for å gjøre livet mitt enklere! Den nye bootloaderen opptar bare en halv kilobyte flashminne og etterlater litt mer enn 31 KB brukerprogram og statiske data tilgjengelig. Arduino -nettstedet dekker tilfellet med brenning av oppstartslaster på en ny brikke, da det gjaldt å bruke avrdude for å faktisk brenne målbrikken, mislyktes prosessen med en feil som angav feil ID for den spesifikke MCU. Så etter litt leting fant jeg denne fyren som gjorde det riktig, og jeg fulgte prosedyren hans. Den eneste forskjellen var 2 konfigurasjonsfiler, avrdude.conf og boards.txt som trengs av avrdude og arduino IDE 1.0.1 for å gjøre det mulig. Etter å ha kopiert de 2 filene til de riktige plasseringene (sikkerhetskopier de gamle først) var alternativet 'arduino328' fra tools-> Board tilgjengelig, og avrdude fortsatte med å brenne sikringene og oppstartslasteren. Nå er brikken klar til å bli programmert fra den nye maskinen!

Trinn 4: Bygg enheten

Bygger enheten
Bygger enheten
Bygger enheten
Bygger enheten

Et perforert brett med kobberstrimler ble brukt som en rask monteringsløsning med DIP -sokkler for brikkene, du vet, bare i tilfelle! Deretter ble hullene og kuttene for kontaktene, tilbakestillingsknappen og LCD -skjermen åpnet gjennom den ekstremt robuste og tykke plasten på tastaturet. Ja, den ble bygget for 25 år siden! Det fulgte rotet av ledninger som kom fra kretskortet mot de forskjellige eksterne enhetene. En rudimentær kontinuitetskontroll og deretter tilførselen ble tilkoblet uten at det var noen chips fylt bare for å sjekke stikkontaktene for riktige spenninger. Så kom de 2 IC -ene og tastaturetuiet var godt lukket via plastknappene i bunnen. Enheten var klar til å brenne skisser i kontrolleren!

Jeg foreslår at man bruker upolare 1uF/16V kondensatorer for MAX232 ladepumper. Finn 100nF -frakoblingskondensatorene for de to brikkene så nært som mulig til de respektive VCC- og GND -pinnene. Bruk en stjernekobling for strøm og jord som refereres til LM7805 -regulatoren. Bryter 2 kan være en jumper avhengig av hindring, men den er god å ha for å unngå uønskede MCU -tilbakestillinger fra verts -PC -en i visse tilfeller. Uansett må bryteren være lukket for at Arduino IDE skal kunne brenne skissen ved å tilbakestille mål -MCU (pin DTR på RS232). I mitt tilfelle er tilkoblingen permanent (alltid stengt). Bruk en seriemotstand for summeren for å isolere flere nFs med kapasitans fra drivporten … du vet aldri.. Finn XTAL- og lasting 18-22pF kondensatorene så nært som mulig til de respektive pinnene på kontrolleren.

På grunn av likeretterbroen kan enheten drives av både vekselstrøm- og likestrømadaptere. Ved DC er det et 1,5 V spenningsfall mellom adapteren og inngangen til regulatoren. I tilfelle AC er inngangen til regulatoren omtrent 1,4 ganger RMS -utgangen til adapteren eller mindre på grunn av belastning. Hvis forskjellen mellom inngangen til regulatoren og dens utgang (+5V) er stor, si 7 volt, så nærmer strømmen som regulatoren bruker 0,5 watt, og det er bedre å bruke en liten kjøleribbe for å montere brikken (forutsatt det er plass til det) for lange driftstimer i varmt vær.

AC -inngangssikringen kan velges avhengig av dine eksterne belastninger (via DB15 -kontakten). Andre faktorer som påvirker sikringsvalget er strømbegrensningsmotstanden for LED -bakgrunnsbelysningen på LCD -skjermen, brokondensatoren for ladestrømmen og strømkapasiteten til forsyningstransformatoren.

Trinn 5: Skjematisk

Skjematisk
Skjematisk

Trinn 6: PROGRAMVARE KJØRER OMBOARD

Dette er skissen som får alt til å skje … og 32KB er IKKE nok! Du kan enten bruke det umodifisert, i så fall vil jeg sette pris på en henvisning til navnet mitt, eller endre det etter ønske og glemme meg;-)

Dette er den detaljerte dokumentasjonen om maskinen.

Sammendrag av kommandoer og uttrykk

“: En kommentar som ikke kan skrives ut

ai: fest avbrudd 0 (pin D2)

ar: analog lesning

aw: ‘analog write’ per arduino eller mer riktig pwm

ca: analog fangst i en matrise

cl: sletter displayet cno: return *Prgm indeks for linjenummer

di: vent på en serie pulser og mål varighet og timing

dl: forsinkelse

gjøre: i forbindelse med ‘wh’

dr: digital les hvilken som helst pin

dw: digital skriv hvilken som helst pin

ed: editor mode / load program from PC / renumber lines

el: EEPROM tilgangsfunksjon

slutt: END -uttalelsen til et program

ensb: avslutter subrutine

es: EEPROM tilgangsfunksjon

fl: enkelt glidende gjennomsnittsfilter

fr: for-neste sløyfe (fr-nx)

gå: gå til programtrinn

gosb: fortsett utførelsen til underrutine

gt: venter på brukerinngang

hvis: test tilstand og gå til trinn

io: GPIO 1-9 bits

ld: last/flett program fra EEPROM

lp:: tastaturstyrt sløyfe i interaktiv modus

ls: listemodus / send program til PC en linje om gangen

ml: få tid

mm: vis ledig minne

nr: konverterer tall til streng

nx: i forbindelse med ‘fr’

pl: plot array cxx

pm: sett pins for inn eller ut

pr: skriver ut en melding eller verdi eller egendefinert tegn

rgc: kommando for områdekopi for matriser

rgs: range set -kommando for matriser

rn: kjør programmet i RAM

rs: myk tilbakestilling

rx: motta et tegn via RS232

si: synkron seriell inngang med klokke og datapinner

sm: mini oscilloskop app sno: konverterer streng til tall

altså: synkron seriell utgang med klokke og datapinner

sub: erklærer subroutine

sv: lagre programmet i EEPROM

tn: pip en tone

tx: overfør et nummer via RS232

wh: en gjør-mens-sløyfe som brukes i forbindelse med "gjør"

Trinn 7: Videoklipp av Mini App 'sm' Running

besøk mitt nettsted for å lese hele historien og laste ned alle relevante filer

www.sites.google.com/site/demeterart

Anbefalt: