Përmbajtje:

DemUino - Kompjuter/Kontrollues në shtëpi: 7 hapa
DemUino - Kompjuter/Kontrollues në shtëpi: 7 hapa

Video: DemUino - Kompjuter/Kontrollues në shtëpi: 7 hapa

Video: DemUino - Kompjuter/Kontrollues në shtëpi: 7 hapa
Video: Загрузка оперативной памяти на 100% решение проблемы 2024, Nëntor
Anonim
Image
Image
Djegia e bootloader
Djegia e bootloader

Një kompjuter i frymëzuar nga Arduino nga DemeterArt Përfitoni sa më shumë nga tastiera juaj e vjetër PS2. Hack atë në një kompjuter personal të personalizuar për të kontrolluar sende! Unë gjithmonë kam dashur të ndërtoj kompjuterin tim në shtëpi, një lloj retro-stil, asgjë të zbukuruar, por me aftësi të veçanta të përshtatura për preferencat e mia. Pra, e arrita atë me atmega328 MCU dhe çantën e zhvillimit Arduino.

Më lejoni të deklaroj se ky projekt do të zgjaste shumë më tepër me rezultate përfundimtare të dyshimta nëse nuk do të ishin tifozët e talentuar atje të cilët më pak egoistë furnizojnë bibliotekat freeware që të gjithë mund t'i përdorin. Ju faleminderit të gjithëve:-)

vizitoni faqen time për të lexuar të gjithë historinë dhe shkarkuar të gjithë skedarët përkatës

www.sites.google.com/site/demeterart

Hapi 1: Karakteristikat

  • Bazuar në ATMEGA328 me flash 32KB, 2KB SRAM dhe 1KB EEPROM.
  • mbështetje për mënyrat ndërvepruese dhe grumbull
  • redaktuesi i linjës dhe modaliteti i listës gjatë redaktimit
  • 8 karaktere me porosi për grafikat e përdoruesve
  • 60 hapa programi të numëruar 00,…, 99
  • "Nëse" sythe "ndërsa" dhe "për" plus deklaratat "goto" dhe "nën" për degëzim
  • Shprehje bazë aritmetike dhe matematikore plus teste boolean
  • variablat e sistemit lejojnë ngjarje në kohë, mesatare, rms, min dhe vlera maksimale nga kunjat analoge, etj
  • 26 ndryshore të përdoruesit për të bashkëvepruar me ndryshoret dhe komandat e sistemit
  • 104 byte të një grupi të adresueshëm të përdoruesit ose 52 numra të plotë të shkurtër
  • aftësia për të lexuar/shkruar të dhënat e programit, si dhe kodin në fluturim (ndryshore p)
  • aplikacion mini oshiloskop me karaktere të personalizuara për pseudo grafikë
  • ruani dhe ngarkoni programet dhe të dhënat në/nga EEPROM
  • ngarkoni/ruani programet dhe variablat nga/në PC
  • autoexec në ngarkimin dhe drejtimin e një programi nga EEPROM pas çdo rivendosjeje
  • 9 kunja GPIO (përfshirë SPI) të disponueshme në lidhësin e jashtëm DB15
  • BUZZER për efekte zanore

Hapi 2: Gjërat që ju nevojiten

Një tastierë e vjetër ps/2 e trashë mjaftueshëm për të vendosur ekranin e karaktereve LCD pcb (formati paralel i njohur) çipi MAX232 për portin RS232 port atmel atmega328PU Kompleti i zhvillimit Arduino me IDE 1.0.1 LM7805 rregullator 5V ndreqës urë zile, kondensatorë, një buton rivendosjeje, lidhëset etj

Hapi 3: Djegia e bootloader

Pra, pasi të keni blerë një çip "bosh" atmega328PU, duhet të merret një vendim. A përdor një programues special ose të jashtëm ose ISP apo e djeg Arduino bootloader në bishë dhe e bëj njësinë të programueshme përmes portës së saj UART? Zgjodha këtë të fundit për ta bërë jetën time më të lehtë! Ngarkuesi i ri zë vetëm gjysmë kilobajt memorie flash duke lënë në dispozicion pak më shumë se 31KB program të përdoruesit dhe të dhëna statike. Faqja e Arduino mbulon rastin e djegies së ngarkuesit në një çip të ri, kur ishte fjala për përdorimin e avrdude për të djegur në fakt çipin e synuar, procesi dështoi me një gabim që tregon id -në e gabuar për MCU -në e veçantë. Kështu që pas disa kërkimeve gjeta këtë djalë që e kuptoi mirë dhe unë ndoqa procedurën e tij. Dallimi i vetëm ishte 2 skedarë konfigurimi, avrdude.conf dhe boards.txt të nevojshëm nga avrdude dhe arduino IDE 1.0.1 për ta bërë të mundur. Pas kopjimit të 2 skedarëve në vendet e tyre të duhura (rezervoni ato të vjetrat së pari) opsioni ‘arduino328’ nga mjetet-> Bordi ishte i disponueshëm dhe avrdude vazhdoi me djegien e siguresave dhe ngarkuesit të ngarkimit. Tani çipi është gati të programohet nga makina e re!

Hapi 4: Ndërtimi i njësisë

Ndërtimi i Njësisë
Ndërtimi i Njësisë
Ndërtimi i Njësisë
Ndërtimi i Njësisë

Një tabelë e shpuar me shirita bakri u përdor si një zgjidhje e shpejtë e montimit me priza DIP për patate të skuqura, e dini, për çdo rast! Pastaj vrimat dhe prerjet për lidhësit, butoni i rivendosjes dhe ekrani LCD u hapën përmes plastikës jashtëzakonisht të fortë dhe të trashë të tastierës. Po, ajo u ndërtua 25 vjet më parë! Aty pasoi rrëmuja e telave që buronin nga PCB drejt periferikësh të ndryshëm. Një kontroll rudimentar i vazhdimësisë dhe më pas furnizimi u lidh pa patate të skuqura të populluara vetëm për të kontrolluar prizat për tensionet e duhura. Pastaj erdhi në 2 IC dhe kutia e tastierës u mbyll fort përmes kapëseve të saj plastike në pjesën e poshtme. Njësia ishte gati të digjte skica në kontrollues!

Unë sugjeroj që dikush përdor kondensatorë jopolarë 1uF/16V për pompat e ngarkimit MAX232. Gjeni kondensatorët e shkëputjes 100nF për dy patate të skuqura sa më afër që të jetë e mundur me kunjat përkatëse VCC dhe GND. Përdorni një lidhje yll për fuqinë dhe tokën që i referohet rregullatorit LM7805. Ndërprerësi 2 mund të jetë një kërcyes në varësi të dëmtimit, por është mirë që të ketë vetëm për të shmangur rivendosjet e padëshiruara të MCU nga kompjuteri pritës në raste të caktuara. Në çdo rast, çelësi duhet të jetë i mbyllur për të lejuar që Arduino IDE të djegë skicën duke rivendosur MCU -në e synuar (pin DTR e RS232). Në rastin tim lidhja është e përhershme (gjithmonë e mbyllur). Përdorni një rezistencë serike për zilen për të izoluar disa nF të kapacitetit nga porta e vozitjes … nuk e dini kurrë.. Gjeni XTAL dhe kondensatorët ngarkues 18-22pF sa më afër të jetë e mundur me kunjat përkatëse të kontrolluesit.

Për shkak të urës ndreqëse, njësia mund të mundësohet nga adaptorë të rrymës AC dhe DC. Në rastin e DC, ka një rënie të tensionit 1.5 V midis përshtatësit dhe hyrjes në rregullator. Në rast të AC hyrja e rregullatorit është rreth 1.4 herë dalja RMS e përshtatësit ose më pak për shkak të ngarkimit. Nëse ndryshimi midis hyrjes së rregullatorit dhe daljes së tij (+5V) është i madh, të themi 7 volt, atëherë fuqia e konsumuar nga rregullatori i afrohet 0.5 vat dhe është më mirë të përdorni një ngrohës të vogël mbi të cilin të montoni çipin (me kusht ka hapësirë për të) për orë të gjata të funksionimit në mot të nxehtë.

Siguresa e hyrjes AC mund të zgjidhet në varësi të ngarkesave tuaja të jashtme (përmes lidhësit DB15). Faktorë të tjerë që ndikojnë në zgjedhjen e siguresave janë rezistenca aktuale kufizuese për ndriçimin LED të LCD, kondensatori i urës për rrymën e karikimit dhe kapaciteti aktual i transformatorit furnizues.

Hapi 5: SKEMATIK

SKEMATIKE
SKEMATIKE

Hapi 6: PUNIMI I SOFTUERIT NB bord

Kjo është skica që i bën të gjitha të ndodhin… dhe 32KB NUK janë të mjaftueshme! Ju ose mund ta përdorni të pa modifikuar, në këtë rast unë do të vlerësoja një referencë për emrin tim, ose ta ndryshoni atë sipas dëshirës dhe të më harroni;-)

Ky është dokumentacioni i detajuar në lidhje me makinën.

Përmbledhje e komandave dhe shprehjeve

“: Një linjë komentesh të padiskutueshme

ai: bashkëngjitni ndërprerjen 0 (pin D2)

ar: lexim analog

aw: ‘shkruaj analog’ për arduino ose më saktë pwm

ca: kapje analoge në një grup

cl: pastron ekranin cno: return *Prgm indeksi i numrit të linjës

di: prisni një seri pulsesh dhe matni kohëzgjatjen dhe kohën

dl: vonesë

bëj: në lidhje me 'wh'

dr: dixhital lexoni çdo kunj

dw: dixhitale shkruani çdo kunj

ed: modaliteti i redaktuesit / programi i ngarkimit nga PC / linjat e rinumërimit

el: Funksioni i hyrjes EEPROM

fund: deklarata END e një programi

ensb: përfundon nënrutinën

es: Funksioni i hyrjes EEPROM

fl: filtër mesatar i thjeshtë lëvizës

fr: lak për të ardhmen (fr-nx)

shkoni: hidheni në hapin e programit

gosb: vazhdoni ekzekutimin në nënrutinë

gt: pret për futjen e përdoruesit

nëse: provo gjendjen dhe kërce në hap

io: GPIO 1-9 bit

ld: ngarkoni/bashkoni programin nga EEPROM

lp:: lak i kontrolluar nga tastiera në mënyrë interaktive

ls: listoni mënyrën / dërgoni program në PC një linjë në të njëjtën kohë

ml: merrni kohë

mm: shfaq memorie të lirë

nos: shndërron numrin në varg

nx: në lidhje me ‘fr’

pl: array komplot cxx

pm: vendosni kunjat për hyrje ose dalje

pr: printon një mesazh ose vlerë ose karakter të personalizuar

rgc: komanda e kopjimit të rangut për vargjet

rgs: komanda e vendosur e rangut për vargjet

rn: ekzekutoni programin në RAM

rs: rivendosje e butë

rx: merrni një karakter përmes RS232

si: hyrje serike sinkronike me kunjat e orës dhe të dhënave

sm: aplikacioni mini oshiloskopi sno: konverton vargun në numër

kështu: dalja serike sinkronike me kunjat e orës dhe të dhënave

nën: deklaron nëngrup

sv: ruani programin në EEPROM

tn: bip një ton

tx: transmetoni një numër përmes RS232

wh: një lak do-while i përdorur në lidhje me 'bëj'

Hapi 7: Videoklip i Mini App 'sm' Running

vizitoni faqen time për të lexuar të gjithë historinë dhe shkarkuar të gjithë skedarët përkatës

www.sites.google.com/site/demeterart

Recommended: