Innehållsförteckning:
- Steg 1: Funktioner
- Steg 2: Saker du behöver
- Steg 3: Burning the Bootloader
- Steg 4: Bygg enheten
- Steg 5: SCHEMATISK
- Steg 6: PROGRAMVARA KÖR OMBORD
- Steg 7: Videoklipp av Mini App 'sm' Running
Video: DemUino - Hemmadator/styrenhet: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
En Arduino -inspirerad dator från DemeterArt Få ut det mesta av ditt gamla PS2 -tangentbord. Hacka in den i en anpassad persondator för att styra saker! Jag har alltid velat bygga min egen hemdator, i retrostil, inget speciellt men med speciella funktioner anpassade efter mina preferenser. Så jag fick det med atmega328 MCU och Arduino -utvecklingssatsen.
Låt mig konstatera att det här projektet skulle ha tagit betydligt längre tid med tvivelaktiga slutresultat om det inte vore för begåvade fans där ute som mindre egoistiskt tillhandahåller gratisbiblioteken för alla att använda. Tack allihopa:-)
Besök min webbplats för att läsa hela historien och ladda ner alla relevanta filer
www.sites.google.com/site/demeterart
Steg 1: Funktioner
- Baserat på ATMEGA328 med 32KB blixt, 2KB SRAM och 1KB EEPROM.
- stöd för interaktiva och batch -lägen
- radredigerare och list-medan-redigeringsläge
- 8 anpassade tecken för användargrafik
- 60 programsteg numrerade 00,…, 99
- "Om" villkorade, "medan" och "för" slingor plus "gå" och "sub" uttalanden för förgrening
- Grundläggande aritmetiska och matematiska uttryck plus booleska tester
- systemvariabler möjliggör tidsinställda händelser, genomsnitt, rms, min och max värden från analoga stift, etc.
- 26 användarvariabler för att interagera med systemvariabler och kommandon
- 104 byte i en användaradresserbar array eller 52 korta heltal
- förmåga att läsa/skriva programdata samt koda i farten (p-variabel)
- mini -oscilloskop -app med anpassade tecken för pseudografik
- spara och ladda program och data till/från EEPROM
- ladda/spara program och variabler från/till PC
- autoexec för att ladda och köra ett program från EEPROM efter varje återställning
- 9 GPIO -stift (SPI ingår) tillgängliga på extern DB15 -kontakt
- BUZZER för ljudeffekter
Steg 2: Saker du behöver
Ett gammalt ps/2 -tangentbord tillräckligt tjockt för att rymma PCB -LCD -teckenskärmen (det populära parallella formatet) MAX232 -chip för RS232 -port atmel atmega328PU Arduino -utvecklingssats med IDE 1.0.1 LM7805 -regulator 5V summer -brygglikriktare, kondensatorer, en återställningsknapp, kontakter osv
Steg 3: Burning the Bootloader
Så efter att ha köpt ett "tomt" atmega328PU -chip finns det ett beslut att fatta. Använder jag en speciell programmerare antingen extern eller Internetleverantör eller bränner jag Arduino bootloader i vilddjuret och gör enheten programmerbar via dess UART -port? Jag valde det senare för att göra mitt liv enklare! Den nya bootloadern upptar bara en halv kilobyte flashminne och lämnar lite mer än 31 KB användarprogram och statisk data tillgänglig. Arduino -webbplatsen täcker fallet med att bränna startladdaren på ett nytt chip, när det gällde att använda avrdude för att faktiskt bränna målchipet misslyckades processen med ett fel som indikerade fel id för den specifika MCU. Så efter lite sökning hittade jag den här killen som fick rätt och jag följde hans procedur. Den enda skillnaden var 2 konfigurationsfiler, avrdude.conf och boards.txt som avrdude och arduino IDE 1.0.1 behövde för att göra det möjligt. Efter att ha kopierat de 2 filerna till sina rätta platser (säkerhetskopiera de gamla först) var alternativet 'arduino328' från verktygs-> Board tillgängligt och avrdude fortsatte med att bränna säkringarna och startladdaren. Nu är chippet klart att programmeras inifrån den nya maskinen!
Steg 4: Bygg enheten
En perforerad skiva med kopparremsor användes som en snabb monteringslösning med DIP -uttag för chipsen, du vet, för säkerhets skull! Sedan öppnades hålen och skärningarna för kontakterna, återställningsknappen och LCD -displayen genom tangentbordets extremt robusta och tjocka plast. Ja, den byggdes för 25 år sedan! Det följde röran av ledningar som kom från kretskortet mot de olika kringutrustningen. En rudimentär kontinuitetskontroll och sedan var strömförsörjningen ansluten utan att några marker fyllts i bara för att kontrollera uttagen för korrekta spänningar. Sedan kom de 2 IC: erna och tangentbordshöljet stängdes ordentligt via sina plastsnäppar längst ner. Enheten var redo att bränna skisser i styrenheten!
Jag föreslår att man använder opolära 1uF/16V kondensatorer för MAX232 laddningspumpar. Leta reda på 100nF -avkopplingskondensatorerna för de två chipsen så nära som möjligt till respektive VCC- och GND -stift. Använd en stjärnanslutning för ström och mark som refereras till LM7805 -regulatorn. Switch 2 kan vara en bygel beroende på impementation men det är bra att ha, om än bara för att undvika oönskade MCU -återställningar från värddatorn i vissa fall. Hur som helst måste omkopplaren vara stängd för att Arduino IDE ska kunna bränna skissen genom att återställa mål -MCU (stift DTR på RS232). I mitt fall är anslutningen permanent (alltid stängd). Använd ett seriemotstånd för summern för att isolera flera nF-kapacitans från drivporten … du vet aldrig.. Lokalisera XTAL- och laddnings 18-22pF-kondensatorerna så nära som möjligt till respektive stift på regulatorn.
På grund av likriktarbryggan kan enheten drivas av både AC- och DC -nätadaptrar. Vid DC finns det ett 1,5 V spänningsfall mellan adaptern och ingången till regulatorn. Vid AC är ingången till regulatorn cirka 1,4 gånger RMS -utgången från adaptern eller mindre på grund av laddning. Om skillnaden mellan regulatorns ingång och dess utgång (+5V) är stor, säg 7 volt, närmar sig den effekt som regulatorn förbrukar 0,5 watt och det är bättre att använda en liten kylfläns för att montera chipet (förutsatt att det finns plats för det) för långa drifttimmar i varmt väder.
AC -ingångssäkringen kan väljas beroende på dina externa belastningar (via DB15 -kontakten). Andra faktorer som påverkar valet av säkringar är strömbegränsningsmotståndet för LED -bakgrundsbelysningen på LCD -skärmen, bryggkondensatorn för laddningsströmmen och strömkapaciteten hos matningstransformatorn.
Steg 5: SCHEMATISK
Steg 6: PROGRAMVARA KÖR OMBORD
Detta är skissen som får allt att hända … och 32KB räcker INTE! Du kan antingen använda det omodifierat, i så fall skulle jag uppskatta en referens till mitt namn, eller ändra det efter behag och glömma bort mig;-)
Detta är den detaljerade dokumentationen om maskinen.
Sammanfattning av kommandon och uttryck
“: En kommentar som inte går att skriva ut
ai: fäst avbrott 0 (stift D2)
ar: analog läsning
aw: 'analog skrivning' per arduino eller mer korrekt pwm
ca: analog fångst i en array
cl: rensar displayen cno: return *Prgm index för radnummer
di: vänta på en serie pulser och mät varaktighet och timing
dl: fördröjning
göra: i samband med ‘wh’
dr: digital läs vilken pin som helst
dw: digital skriva vilken pin som helst
ed: editor mode / load program from PC / renumber lines
el: EEPROM -åtkomstfunktion
slut: END -uttalandet för ett program
ensb: slutar subrutin
es: EEPROM -åtkomstfunktion
fl: enkelt filter för glidande medelvärde
fr: för-nästa slinga (fr-nx)
gå: hoppa till programsteg
gosb: fortsätt körningen till underrutin
gt: väntar på användarinmatning
if: testa skick och hoppa till steg
io: GPIO 1-9 bitar
ld: ladda/slå samman program från EEPROM
lp:: tangentbordstyrd slinga i interaktivt läge
ls: listläge / skicka program till dator en rad i taget
ml: få tid
mm: visa ledigt minne
nr: konverterar tal till sträng
nx: i samband med ‘fr’
pl: plot array cxx
pm: ställ in stift för in eller ut
pr: skriver ut ett meddelande eller värde eller anpassat tecken
rgc: kommando för områdeskopiering för matriser
rgs: range set -kommando för matriser
rn: kör programmet i RAM
rs: mjuk återställning
rx: ta emot ett tecken via RS232
si: synkron seriell ingång med klocka och datapinnar
sm: mini oscilloskop app sno: konverterar sträng till tal
alltså: synkron serieutgång med klocka och datapinnar
sub: förklarar subroutine
sv: spara programmet i EEPROM
tn: pip en ton
tx: skicka ett nummer via RS232
wh: en do-while-slinga som används tillsammans med "do"
Steg 7: Videoklipp av Mini App 'sm' Running
Besök min webbplats för att läsa hela historien och ladda ner alla relevanta filer
www.sites.google.com/site/demeterart
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)