Turinys:

„DemUino“- namų kompiuteris/valdiklis: 7 žingsniai
„DemUino“- namų kompiuteris/valdiklis: 7 žingsniai

Video: „DemUino“- namų kompiuteris/valdiklis: 7 žingsniai

Video: „DemUino“- namų kompiuteris/valdiklis: 7 žingsniai
Video: DemUino 2024, Lapkritis
Anonim
Image
Image
„Bootloader“deginimas
„Bootloader“deginimas

„Arduino“įkvėptas „DemeterArt“kompiuteris Išnaudokite visas savo senosios PS2 klaviatūros galimybes. Įsilaužkite į pritaikytą asmeninį kompiuterį, kad galėtumėte valdyti dalykus! Aš visada norėjau sukurti savo namų kompiuterį, savotišką retro stiliaus, nieko įmantraus, bet su ypatingomis galimybėmis, pritaikytomis mano pageidavimams. Taigi, aš tai pasiekiau su „atmega328 MCU“ir „Arduino“kūrimo rinkiniu.

Leiskite man pasakyti, kad šis projektas būtų užtrukęs žymiai ilgiau su abejotinais galutiniais rezultatais, jei ne talentingi gerbėjai, kurie savanaudiškai mažiau tiekia nemokamas programas visiems. Ačiū jums visiems:-)

Apsilankykite mano svetainėje, kad perskaitytumėte visą istoriją ir atsisiųstumėte visus susijusius failus

www.sites.google.com/site/demeterart

1 žingsnis: funkcijos

  • Remiantis ATMEGA328 su 32 KB blykste, 2 KB SRAM ir 1 KB EEPROM.
  • interaktyvių ir paketinių režimų palaikymas
  • eilučių redaktorius ir sąrašo redagavimo režimas
  • 8 pasirinktiniai vartotojo grafikos simboliai
  • 60 programos žingsnių, pažymėtų 00,…, 99
  • „Jei“sąlyginis, „while“ir „for“kilpos plius „goto“ir „sub“sakiniai šakojimui
  • Pagrindinės aritmetinės ir matematinės išraiškos bei loginiai testai
  • Sisteminiai kintamieji leidžia įvykius laiku, vidutines, vidutines, vidutines, minimalias ir maksimalias vertes iš analoginių kaiščių ir kt
  • 26 vartotojo kintamieji, skirti sąveikauti su sistemos kintamaisiais ir komandomis
  • 104 baitai vartotojo adresuojamo masyvo arba 52 trumpi sveikieji skaičiai
  • galimybė skaityti/rašyti programos duomenis ir kodą skrendant (kintamasis p)
  • mini osciloskopo programa su pritaikytais simboliais pseudo grafikai
  • išsaugokite ir įkelkite programas ir duomenis į/iš EEPROM
  • įkelti/išsaugoti programas ir kintamuosius iš/į kompiuterį
  • autoexec įkelti ir paleisti programą iš EEPROM po kiekvieno atstatymo
  • 9 GPIO kaiščiai (įeina SPI), esantys išorinėje DB15 jungtyje
  • BUZZER garso efektams

2 žingsnis: Daiktai, kurių jums reikės

Sena PS/2 klaviatūra, pakankamai stora, kad tilptų PCB LCD simbolių ekranas (populiarus lygiagretus formatas) MAX232 lustas, skirtas RS232 prievadui atmel atmega328PU „Arduino“kūrimo rinkinys su IDE 1.0.1 LM7805 reguliatoriaus 5V garsinio signalo lygintuvu, kondensatoriais, atstatymo mygtuku, jungtys ir kt

3 žingsnis: įkrovos įkėlimas

Taigi, nusipirkus „tuščią“atmega328PU lustą, reikia priimti sprendimą. Ar aš naudoju specialų išorinį ar IPT programuotoją, ar sudeginu „Arduino“įkrovos įkroviklį į žvėrį ir padedu įrenginį programuoti per jo UART prievadą? Aš pasirinkau pastarąjį, kad mano gyvenimas būtų lengvesnis! Naujas įkrovos įkroviklis užima tik pusę kilobaitų „flash“atminties, todėl lieka šiek tiek daugiau nei 31 KB vartotojo programos ir statinių duomenų. „Arduino“svetainė apima įkrovos įkėlimo į naują lustą atvejį, kai reikėjo naudoti avrdude, kad iš tikrųjų būtų įrašytas tikslinis lustas, procesas nepavyko su klaida, nurodančia neteisingą konkretaus MCU ID. Taigi po tam tikrų paieškų radau šį vaikiną, kuris teisingai suprato, ir aš sekiau jo procedūrą. Vienintelis skirtumas buvo 2 konfigūracijos failai - avrdude.conf ir boards.txt, reikalingi avrdude ir arduino IDE 1.0.1, kad tai būtų įmanoma. Nukopijavę 2 failus į reikiamas vietas (pirmiausia sukurkite atsarginę kopiją seniems), buvo pasirinkta „arduino328“iš „Tools-> Board“ir „avrdude“toliau sudegino saugiklius ir įkrovos tvarkyklę. Dabar lustas yra paruoštas programuoti iš naujos mašinos!

4 žingsnis: įrenginio kūrimas

Vieneto kūrimas
Vieneto kūrimas
Vieneto kūrimas
Vieneto kūrimas

Perforuota lenta su varinėmis juostelėmis buvo naudojama kaip greitas surinkimo sprendimas su DIP lustais, skirtomis drožlėms, žinote, tik tuo atveju! Tuomet per itin tvirtą ir storą klaviatūros plastiką buvo atidarytos skylės ir įpjovos jungtims, atstatymo mygtukas ir LCD ekranas. Taip, jis buvo pastatytas prieš 25 metus! Toliau sekė laidų netvarka, sklindanti iš PCB į įvairius išorinius įrenginius. Pradinis tęstinumo tikrinimas ir tada maitinimas buvo prijungtas be lustų, kad būtų patikrinta tinkama įtampa. Tada buvo 2 IC ir klaviatūros dėklas buvo tvirtai uždarytas per plastikinius spaustukus apačioje. Įrenginys buvo paruoštas įrašyti eskizus valdiklyje!

Siūlau naudoti MAX232 įkrovimo siurbliams nepolinius 1uF/16V kondensatorius. Suraskite dviejų mikroschemų 100nF atsiejimo kondensatorius kuo arčiau atitinkamų VCC ir GND kaiščių. Naudokite žvaigždės jungtį, kad maitinimas ir žemė būtų nurodyti LM7805 reguliatoriuje. 2 jungiklis gali būti trumpalaikis, priklausomai nuo sutrikimo, tačiau tai gerai turėti, jei tik tam, kad išvengtumėte nepageidaujamo MCU atstatymo iš pagrindinio kompiuterio. Bet kokiu atveju jungiklis turi būti uždarytas, kad „Arduino IDE“galėtų sudeginti eskizą iš naujo nustatydamas tikslinį MCU (RS232 kaištis DTR). Mano atveju ryšys yra nuolatinis (visada uždarytas). Naudokite serijinį rezistorių, kad garsinis signalas izoliuotų kelis nF talpos pajėgumus nuo važiavimo vartų … niekada nežinote.. Suraskite XTAL ir įkrovimo 18-22pF kondensatorius kuo arčiau atitinkamų valdiklio kaiščių.

Dėl lygintuvo tilto įrenginys gali būti maitinamas tiek kintamosios, tiek nuolatinės srovės adapteriais. Nuolatinės srovės atveju tarp adapterio ir reguliatoriaus įėjimo yra 1,5 V įtampos kritimas. Kintamosios srovės atveju reguliatoriaus įvestis yra apie 1,4 karto didesnė už adapterio RMS išėjimą arba mažesnė dėl apkrovos. Jei skirtumas tarp reguliatoriaus įėjimo ir jo išėjimo (+5 V) yra didelis, tarkime, 7 voltai, tada reguliatoriaus sunaudojama galia artėja prie 0,5 vatų ir geriau naudoti mažą radiatorių, ant kurio būtų sumontuotas lustas (jei yra) yra vietos) ilgoms darbo valandoms karštu oru.

Kintamosios srovės įvesties saugiklis gali būti pasirinktas atsižvelgiant į jūsų išorines apkrovas (per DB15 jungtį). Kiti veiksniai, turintys įtakos saugiklių pasirinkimui, yra LCD LED apšvietimo srovės ribojimo rezistorius, įkrovimo srovės tiltinis kondensatorius ir tiekiamojo transformatoriaus srovė.

5 žingsnis: SCHEMINĖ

SCHEMATINIS
SCHEMATINIS

6 veiksmas: PROGRAMINĖS ĮRANGOS VYKIMAS LAIVOJE

Tai eskizas, dėl kurio viskas vyksta … ir 32 KB nepakanka! Galite jį naudoti nepakeistą, tokiu atveju būčiau dėkingas už nuorodą į savo vardą arba pakeisčiau jį savo nuožiūra ir pamirščiau apie mane;-)

Tai yra išsami mašinos dokumentacija.

Komandų ir išraiškų santrauka

“: Nespausdinama komentarų eilutė

ai: pritvirtinkite pertrauką 0 (kaištis D2)

ar: analoginis skaitymas

aw: „analoginis rašymas“per arduino arba tiksliau pwm

ca: analoginis fiksavimas masyve

cl: išvalo ekraną cno: return *Prgm eilutės numerio indeksas

di: palaukite impulsų serijos ir išmatuokite trukmę bei laiką

dl: vėlavimas

daryti: kartu su „wh“

dr: skaitmeninis skaityti bet kokį kaištį

dw: skaitmeninis rašyti bet kokį kaištį

ed: redaktoriaus režimas / įkelti programą iš kompiuterio / pervardyti eilutes

el: EEPROM prieigos funkcija

pabaiga: programos END teiginys

ensb: baigia paprogramę

es: EEPROM prieigos funkcija

fl: paprastas slankiojo vidurkio filtras

fr: kitam ciklui (fr-nx)

eiti: pereikite prie programos žingsnio

gosb: tęsti vykdymą pagal paprogramę

gt: laukia vartotojo įvesties

jei: išbandykite būseną ir pereikite prie žingsnio

io: GPIO 1-9 bitai

ld: įkelti/sulieti programą iš EEPROM

lp:: klaviatūra valdoma kilpa interaktyviu režimu

ls: sąrašo režimas / siųsti programą į kompiuterį eilute vienu metu

ml: gaukite laiko

mm: rodyti laisvą atmintį

nos: konvertuoja skaičių į eilutę

nx: kartu su „fr“

pl: sklypo masyvas cxx

pm: nustatykite įvesties arba išvesties kaiščius

pr: spausdina pranešimą, vertę arba pasirinktinį simbolį

rgc: masyvo diapazono kopijavimo komanda

rgs: diapazono rinkimo komanda masyvams

rn: paleiskite programą RAM

rs: minkštas atstatymas

rx: gaukite simbolį per RS232

si: sinchroninis nuoseklusis įėjimas su laikrodžiu ir duomenų kaiščiais

sm: mini osciloskopo programa sno: konvertuoja eilutę į skaičių

taigi: sinchroninė serijinė išvestis su laikrodžiu ir duomenų kaiščiais

sub: deklaruoja paprogramę

sv: išsaugokite programą EEPROM

tn: pyptelėkite toną

tx: perduokite numerį per RS232

wh: „do-while“kilpa, naudojama kartu su „do“

7 veiksmas: „Mini“programos „sm“veikimo vaizdo įrašas

Apsilankykite mano svetainėje, kad perskaitytumėte visą istoriją ir atsisiųstumėte visus susijusius failus

www.sites.google.com/site/demeterart

Rekomenduojamas: