Talaan ng mga Nilalaman:
- Hakbang 1: Mga Tampok
- Hakbang 2: Bagay na Kakailanganin mo
- Hakbang 3: Nasusunog ang Bootloader
- Hakbang 4: Pagbuo ng Yunit
- Hakbang 5: SKEMATIK
- Hakbang 6: SOFTWARE RUNNING ONBOARD
- Hakbang 7: Videoclip ng Mini App 'sm' Pagpapatakbo
Video: DemUino - Home Computer / Controller: 7 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Isang Arduino Inspired Computer ni DemeterArt Sulitin ang iyong lumang PS2 keyboard. I-hack ito sa isang pasadyang personal na computer upang makontrol ang mga bagay-bagay! Palagi kong nais na bumuo ng aking sariling computer sa bahay, uri ng istilong retro, walang magarbong ngunit may mga partikular na kakayahan na iniakma sa aking mga kagustuhan. Kaya, nakuha ko ito gamit ang atmega328 MCU at ang Arduino development kit.
Hayaan mong sabihin ko na ang proyektong ito ay tatagal nang mas matagal sa mga kaduda-dudang mga resulta kung hindi dahil sa mga may regalong tagahanga doon na mas makasarili na magtustos ng mga freeware library para magamit ng lahat. Salamat sa lahat:-)
bisitahin ang aking site upang basahin ang buong kuwento at i-download ang lahat ng mga kaugnay na mga file
www.site.google.com/site/demeterart
Hakbang 1: Mga Tampok
- Batay sa ATMEGA328 na may 32KB flash, 2KB SRAM at 1KB EEPROM.
- suporta para sa mga interactive at batch mode
- line editor at list-habang-edit mode
- 8 pasadyang mga character para sa graphics ng gumagamit
- 60 mga hakbang sa programa na may bilang na 00,…, 99
- Ang kondisyunal na 'Kung', 'habang' at 'para sa' mga loop plus 'goto' at mga pahayag ng 'sub' para sa pagsasanga
- Pangunahing mga expression ng aritmetika at matematika kasama ang mga pagsubok sa boolean
- Pinapayagan ng mga variable ng system para sa mga nag-time na kaganapan, average, rms, min at max na halaga mula sa mga analog pin, atbp
- 26 mga variable ng gumagamit upang makipag-ugnay sa mga variable ng system at utos
- 104 bytes ng isang address na maaaring i-address ng gumagamit o 52 maikling integer
- kakayahang basahin / isulat ang data ng programa pati na rin ang code on-the-fly (p variable)
- mini oscilloscope app na may na-customize na mga character para sa mga pseudo graphics
- i-save at i-load ang mga programa at data sa / mula sa EEPROM
- i-load / i-save ang mga programa at variable mula / sa PC
- autoexec sa paglo-load at pagpapatakbo ng isang programa mula sa EEPROM pagkatapos ng bawat pag-reset
- 9 mga pin ng GPIO (kasama ang SPI) na magagamit sa panlabas na konektor ng DB15
- BUZZER para sa mga sound effects
Hakbang 2: Bagay na Kakailanganin mo
Isang lumang ps / 2 keyboard na sapat na makapal upang maipakita ang pcb LCD character display (ang tanyag na parallel format) MAX232 chip para sa RS232 port atmel atmega328PU Arduino development kit na may IDE 1.0.1 LM7805 regulator 5V buzzer bridge rectifier, capacitors, isang reset pindutan ng push, mga konektor atbp
Hakbang 3: Nasusunog ang Bootloader
Kaya, pagkatapos na bumili ng isang 'walang laman' na atmega328PU chip mayroong desisyon na magagawa. Gumagamit ba ako ng isang espesyal na programmer alinman sa panlabas o ISP o sinusunog ko ba ang Arduino bootloader sa hayop at nai-program ang unit na nai-program sa pamamagitan ng UART port? Pinili ko ang huli upang gawing mas madali ang aking buhay! Ang bagong bootloader ay sumasakop lamang sa kalahating kilobyte ng flash memory na nag-iiwan ng kaunti pa sa 31KB ng program ng gumagamit at magagamit na static na data. Sinasaklaw ng Arduino site ang kaso ng pagsunog ng bootloader sa isang bagong maliit na tilad, pagdating sa paggamit ng avrdude upang aktwal na masunog ang target na chip ang proseso ay nabigo sa isang error na nagpapahiwatig ng maling id para sa partikular na MCU. Kaya pagkatapos ng ilang paghahanap ay nahanap ko ang taong ito na tama ang pagkakasunod at sinunod ko ang kanyang pamamaraan. Ang pagkakaiba lamang ay 2 mga file ng pagsasaayos, avrdude.conf at boards.txt na kailangan ng avrdude at arduino IDE 1.0.1 upang magawang posible. Matapos makopya ang 2 mga file sa kanilang mga tamang lokasyon (i-backup muna ang mga luma) ang pagpipiliang 'arduino328' mula sa mga tool-> Magagamit ang board at nagpatuloy sa pagsunog ng mga piyus at bootloader. Ngayon ang maliit na tilad ay handa nang mai-program mula sa loob ng bagong makina!
Hakbang 4: Pagbuo ng Yunit
Ang isang butas na butas na may mga piraso ng tanso ay ginamit bilang isang mabilis na solusyon sa pagpupulong na may mga socket ng DIP para sa mga chips, alam mo, kung sakali! Pagkatapos ang mga butas at hiwa para sa mga konektor, ang pindutan ng pag-reset at ang LCD display ay binuksan sa pamamagitan ng labis na matibay at makapal na plastik ng keyboard. Yeah, naitayo iyon 25 taon na ang nakaraan! Sinundan ang gulo ng mga wire na nagmumula sa pcb patungo sa iba't ibang mga peripheral. Ang isang panimulang pagsusuri ng pagpapatuloy at pagkatapos ang suplay ay konektado na walang mga chip na pinunan lamang upang suriin ang mga socket para sa tamang mga voltages. Pagkatapos ay dumating sa 2 ICs at ang case ng keyboard ay mahigpit na sarado sa pamamagitan ng mga plastic snap nito sa ilalim. Handa na ang yunit na magsunog ng mga sketch sa controller!
Iminumungkahi ko na ang isang gumagamit ng nonpolar 1uF / 16V capacitors para sa MAX232 charge pump. Hanapin ang 100nF decoupling capacitors para sa dalawang chips hangga't maaari sa kani-kanilang mga pin ng VCC at GND. Gumamit ng isang koneksyon sa bituin para sa lakas at lupa na sumangguni sa LM7805 regulator. Ang switch 2 ay maaaring isang jumper depende sa pagpapatupad ngunit mabuting magkaroon kung maiwasan lamang ang mga hindi gustong pag-reset ng MCU mula sa host PC sa ilang mga kaso. Sa anumang rate, dapat na sarado ang switch upang payagan ang Arduino IDE na sunugin ang sketch sa pamamagitan ng pag-reset sa target na MCU (pin DTR ng RS232). Sa aking kaso ang koneksyon ay permanente (laging sarado). Gumamit ng isang serye ng risistor para sa buzzer upang ihiwalay ang maraming mga nF ng capacitance mula sa gate ng pagmamaneho … hindi mo alam.. Hanapin ang XTAL at ang paglo-load ng mga capacitor na 18-22pF na mas malapit hangga't maaari sa kani-kanilang mga pin ng controller.
Dahil sa tulay na nagtuwid ang yunit ay maaaring pinalakas ng parehong mga adaptor ng kuryente ng AC at DC. Sa kaso ng DC, mayroong isang 1.5 V boltahe na drop sa pagitan ng adapter at ang input sa regulator. Sa kaso ng AC ang input ng regulator ay tungkol sa 1.4 beses ang RMS output ng adapter o mas mababa dahil sa pag-load. Kung ang pagkakaiba sa pagitan ng input ng regulator at ang output nito (+ 5V) ay malaki, sabihin na 7 volts, kung gayon ang lakas na natupok ng regulator ay lumalapit sa 0.5 watts at mas mahusay na gumamit ng isang maliit na heatsink kung saan mai-mount ang maliit na tilad (ibinigay may puwang para dito) para sa mahabang oras ng operasyon sa mainit na panahon.
Ang AC input fuse ay maaaring mapili depende sa iyong panlabas na pag-load (sa pamamagitan ng konektor ng DB15). Ang iba pang mga kadahilanan na nakakaimpluwensya sa pagpipilian ng piyus ay ang kasalukuyang naglilimita ng risistor para sa LED backlight ng LCD, ang capacitor ng tulay para sa kasalukuyang singilin at ang kasalukuyang kapasidad ng nagbibigay ng transpormer.
Hakbang 5: SKEMATIK
Hakbang 6: SOFTWARE RUNNING ONBOARD
Ito ang sketch na nagaganap sa lahat … at 32KB ay HINDI sapat! Maaari mo itong gamitin nang hindi nabago, kung saan nais kong pahalagahan ang isang sanggunian sa aking pangalan, o baguhin ito sa nais at kalimutan ang tungkol sa akin;-)
Ito ang detalyadong dokumentasyon tungkol sa makina.
Buod ng Mga Utos at Pagpapahayag
: Isang hindi nalimbag na linya ng komento
ai: ikabit ang makagambala 0 (pin D2)
ar: nabasa na analog
aw: 'analog sulat' bawat arduino o mas maayos pwm
ca: pagkuha ng analog sa isang array
cl: nililimas ang display cno: return * Prgm index ng linya ng linya
di: maghintay para sa isang serye ng mga pulso at sukatin ang tagal at tiyempo
dl: antala
gawin: kasabay ng 'wh'
dr: digital basahin ang anumang pin
dw: digital sumulat ng anumang pin
ed: editor mode / load program mula sa mga linya ng PC / renumber
el: Pag-andar ng pag-access ng EEPROM
pagtatapos: ang END na pahayag ng isang programa
ensb: nagtatapos sa subroutine
es: Pag-andar ng pag-access ng EEPROM
fl: simpleng paglipat ng average na filter
fr: para sa susunod na loop (fr-nx)
pumunta: tumalon sa hakbang ng programa
gosb: ipagpatuloy ang pagpapatupad sa subroutine
gt: naghihintay para sa pag-input ng gumagamit
kung: kundisyon sa pagsubok at tumalon sa hakbang
io: GPIO 1-9 na mga piraso
ld: load / merge program mula sa EEPROM
lp:: loop na kinokontrol ng keyboard sa interactive mode
ls: list mode / magpadala ng programa sa PC ng isang linya nang paisa-isa
ml: kumuha ng oras
mm: ipakita ang libreng memorya
nos: nagko-convert ng numero sa string
nx: kasabay ng 'fr'
pl: plot array cxx
pm: itakda ang mga pin para sa o output
pr: naglilimbag ng isang mensahe o halaga o pasadyang character
rgc: saklaw ang utos ng kopya para sa mga pag-array
rgs: hanay ng hanay ng utos para sa mga arrays
rn: patakbuhin ang programa sa RAM
rs: malambot na pag-reset
rx: makatanggap ng isang character sa pamamagitan ng RS232
si: kasabay na serial input na may orasan at mga data pin
sm: mini oscilloscope app sno: nagko-convert ng string sa numero
kaya: kasabay na serial output na may orasan at mga data pin
sub: nagpapahayag ng subroutine
sv: i-save ang programa sa EEPROM
tn: beep a tone
tx: magpadala ng isang numero sa pamamagitan ng RS232
wh: isang do-habang loop na ginamit kasabay ng 'gawin'
Hakbang 7: Videoclip ng Mini App 'sm' Pagpapatakbo
bisitahin ang aking site upang basahin ang buong kuwento at i-download ang lahat ng mga kaugnay na mga file
www.site.google.com/site/demeterart
Inirerekumendang:
Paano Magpadala ng Malaking Mga File Mula sa Computer sa Computer: 6 Mga Hakbang
Paano Magpadala ng Malalaking Mga File Mula sa Computer sa Computer: Ang mga laki ng file ay patuloy na tumataas sa laki habang sumusulong ang teknolohiya. Kung ikaw ay nasa isang malikhaing bapor, tulad ng disenyo o pagmomodelo, o isang libangan lamang, ang paglipat ng malalaking mga file ay maaaring maging isang abala. Karamihan sa mga serbisyo sa email ay naglilimita sa mga maximum na laki ng attachment sa halos 25
Magsalita ng Computer Computer: 6 Hakbang
Mag-log Computer Speaker: Ang itinuturo na ito ay kung paano ko na-install ang mga lumang computer speaker sa isang log. Sinusubukan kong gamitin ang lahat ng mga na-reclaim na materyales para sa aking mga proyekto at gamitin ang anumang mayroon ako sa paligid ko sa oras ng pagbuo. I-reclaim ang anumang bagay at lahat ay ang aking moto. Mga natural na materyales, ol
Paggamit ng PSP Bilang Computer Joystick at Pagkatapos Pagkontrol ng Iyong Computer Sa PSP: 5 Hakbang (na may Mga Larawan)
Paggamit ng PSP Bilang Computer Joystick at Pagkatapos ay Pagkontrol ng Iyong Computer Sa PSP: Maaari kang gumawa ng maraming mga cool na bagay sa PSP homebrew, at sa itinuturo na ito ay magtuturo ako sa iyo kung paano gamitin ang iyong PSP bilang isang joystick para sa paglalaro ng mga laro, ngunit mayroon ding isang programa na nagpapahintulot sa iyo na gamitin ang iyong joystick bilang iyong mouse. Narito ang mater
Pag-convert ng VGA Monitor Splitter Sa Controller ng Monitor na kinokontrol ng Computer: 4 na Hakbang
Ang pag-convert ng VGA Monitor Splitter Sa Controller ng Monitor na kinokontrol ng Computer: Ipinapaliwanag nito na itinuturo kung paano ang isang murang (20 EURO) VGA monitor splitter na ginagamit upang ikonekta ang isang PC sa dalawang monitor ay maaaring mai-convert sa isang computer control-monitor switch. Ang huling aparato ay kinokontrol sa pamamagitan ng parallel port at pinapayagan na tur
Gumamit ng SSH at XMing upang Maipakita ang Mga Programang X Mula sa isang Linux Computer sa isang Windows Computer: 6 Hakbang
Gumamit ng SSH at XMing upang Maipakita ang Mga Programang X Mula sa isang Linux Computer sa isang Windows Computer: Kung gumagamit ka ng Linux sa trabaho, at Windows sa bahay, o kabaligtaran, maaaring kailanganin mong mag-log in sa computer sa ibang lokasyon mo , at magpatakbo ng mga programa. Kaya, maaari kang mag-install ng isang X Server, at paganahin ang SSH Tunneling sa iyong SSH Client, at isa