Mundarija:
- 1 -qadam: Klaviatura yaratish
- 2 -qadam: simlarni ulash
- 3 -qadam: dasturiy ta'minot
- 4 -qadam: undan foydalaning
Video: DIY uy kompyuteri: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Men uy kompyuterini yaratish uchun Espruino Pico yordamida bir muncha vaqt oldin ko'rsatma nashr qildim:
Buning uchun siz VGA monitorini VGA kabelini uzib ulashingiz kerak edi, lekin bu ko'rsatma uchun men LCD displeyli Pixl.js taxtasidan foydalanaman. Bu shuni anglatadiki, siz faqat bir nechta simni ulashingiz kerak va sizda to'g'ri ishlaydigan kichik quvvatli kompyuter bor.
Xo'sh, sizga nima kerak?
- Espruino Pixl.js
- Baza sifatida harakat qilish uchun plastmassa yoki yog'och bo'lagi
- Non paneli
- 4x4x4 klaviatura
- Kalitlar uchun juda ko'p stikerlar
- 6 ta 8x Erkak-> Erkak Dupont uslubidagi jumper simlari (jami 48 ta sim)-rang-barang chiziqlarga mos kelishi hayotni ancha osonlashtiradi.
1 -qadam: Klaviatura yaratish
- 4 ta klaviatura panelini bir-birining yoniga joylashtiring (ular yopishqoq). Siz ularning qirralarini pastga qirqib tashlashni xohlashingiz mumkin, lekin juda uzoqdan kesishdan ehtiyot bo'ling, aks holda ba'zi kontaktlarni uzib qo'yishingiz mumkin.
- Non taxtangizni o'rtasiga qo'ying - bu ham yopishqoq!
- O'tish simini 8 uzunlikdagi 4 uzunlikka bo'ling - har birining rangini bir xil saqlashga harakat qiling.
- Ranglarning bir -biriga mos kelishiga ishonch hosil qilib, simlarni KeyPad -ga joylashtiring. Simlarni orqaga katlayın va ularni taglikning orqa tomoniga yopishtiring. Simlarni haddan tashqari burchak ostida egilishidan qutqarish uchun siz yopishqoq oyoqlarni qo'shishingiz mumkin.
- Endi klaviatura panelidagi har bir tugmachaga stiker qo'shing va klaviaturani xohlaganingizcha belgilang. Misol sifatida tasvirni ishlating, lekin kodingizni yuklaganingizda "KEYMAP" o'zgaruvchisini o'zingiznikiga o'zgartirishingiz mumkin.
2 -qadam: simlarni ulash
Endi siz klaviaturani ulashingiz kerak. Har bir 4x4 klaviatura panjara sifatida joylashtirilgan va biz ularni xuddi 2x2 katakchadagidek o'tkazamiz - 8x8 o'lchamli tugmachalardan iborat katta panjara.
Rasmda ko'rsatilgandek, non paneli bo'ylab 4 ta simdan iborat 4 guruhga bo'ling (tasvirlardagi simlarning ranglarini tekshiring), chapdan o'ngga:
- KeyPad 1 Birinchi 4 ta sim -> non panelidagi birinchi 4 guruh -> D0, D1, D2, D3
- KeyPad 1 Ikkinchi 4 simlar -> to'rtinchi guruhning to'rtinchi guruhi -> D8, D9, D10, D11
- KeyPad 2 Birinchi 4 ta sim -> non panelidagi birinchi 4 guruh -> D0, D1, D2, D3
- KeyPad 2 Second 4 simlari -> 4 -guruhli to'rtta guruh -> D12, D13, SDA, SCL
- KeyPad 3 Birinchi 4 ta sim -> non panelidagi 4dan iborat ikkinchi guruh -> D4, D5, D6, D7
- KeyPad 3 Ikkinchi 4 simlar -> to'rtinchi guruhning to'rtinchi guruhi -> D8, D9, D10, D11
- KeyPad 4 Birinchi 4 ta sim -> non panelidagi 4dan iborat ikkinchi guruh -> D4, D5, D6, D7
- KeyPad 4 Second 4 simlari -> 4 -guruhli to'rtinchi guruh -> D12, D13, SDA, SCL
Rasmda bizda 8 ta simlarning 6 ta to'plami bor. Birinchi 2 - klaviatura 1 va 2 -dan, ikkinchisi - Pixl.js -ga, uchinchisi - 4 va 3 -klaviatura.
3 -qadam: dasturiy ta'minot
Endi Pixl dasturiy ta'minoti yangilanganligiga ishonch hosil qiling, unga Espruino IDE bilan ulaning va quyidagi kodni yuklang. IDE -ni uzing va ishingiz tugadi!
// Klaviatura simlari KEYROW = [D7, D6, D5, D4, D3, D2, D1, D0]; var KEYCOL = [A5, A4, D13, D12, D11, D10, D9, D8];
// Klaviatura uchun kalit xaritalar
var KEYMAPLOWER = ["" 1234567890-= / x08 "," / tqwertyuiop n "," / 0asdfghjkl; '#\ x84 / x82 / x85 "," / x01 / zxcvbnm,./ / x80 / x83 / x81 ",]; var KEYMAPUPPER = ["¬! \" £ $%^&*() _+\ x08 "," / tQWERTYUIOP {} n "," / 0ASDFGHJKL:@~ / x84 / x82 / x85 "," / x01 | ZXCVBNM? / x80 / x83 / x81 ",];
/* Agar kalit xaritadagi belgi> = 128 bo'lsa, 128 ni olib tashlang va bu qatordan ko'p belgili kalit kodlarini qidiring*/ var KEYEXTRA = [String.fromCharCode (27, 91, 68), // 0x80 chap String.fromCharCode (27, 91, 67), // 0x81 o'ng qator.fromCharCode (27, 91, 65), // 0x82 yuqoriga String.fromCharCode (27, 91, 66), // 0x83 pastga String. (27, 91, 54, 126), // 0x85 bet pastga]; // Shift holati var hasShift = false; setShift (lar) funktsiyasi {hasShift = s; // ekranda shift indikatorini chizish, agar (hasShift) {g.setColor (1); g.fillRect (105, 0, 128, 6); g.setColor (0); g.drawString ("SHIFT", 107, 1); g.setColor (1); } boshqa {g.setColor (0); g.fillRect (105, 0, 128, 6); g.setColor (1); } g.flip (); }
// Haqiqiy kalitni belgilar ketma -ketligiga aylantiring
// Va Loopback (konsol qaerda) funktsiyasini yuborish handleKeyPress (e) {var kx = e >> 3; var ky = e & 7; agar (ky> 3) {// uzun qatorga aylansa kx+= 8; ky- = 4; } var key = hasShift? KEYMAPUPPER [ky] [kx]: KEYMAPLOWER [ky] [kx]; if (key == "\ x01") {setShift (! hasShift); } boshqa {setShift (noto'g'ri); if (key && key.length) {if (key.charCodeAt (0)> 127) key = KEYEXTRA [key.charCodeAt (0) -128]; Terminal.in'ektsiya (kalit); }}}
// klaviaturani o'rnating
talab ("KeyPad"). ulanish (KEYROW, KEYCOL, handleKeyPress);
4 -qadam: undan foydalaning
Endi u ishlaydi:
- Klaviatura bir vaqtning o'zida faqat bitta bosishni aniqlay oladi, shuning uchun Shift katta harflarni o'zgartiradi (ko'rsatkich yuqori o'ngda) va harfni yozish kichik harflarga qaytadi. Shift va boshqa tugmachani bosib ushlab turish ishlamaydi.
- Yozish juda og'riqli bo'lishi mumkin, shuning uchun so'zlarni avtomatik to'ldirish uchun iloji boricha Tab tugmachasini (chapda) ishlating!
- Ekranning grafikasi g o'zgaruvchisidagi usullar yordamida mavjud - masalan, g.fillRect (20, 20, 40, 40) yoki g.clear ().
- Klaviatura uchun juda ko'p IO ishlatiladi, lekin sizda tashqi qurilmalarni ulash uchun foydalanishingiz mumkin bo'lgan A0, A1, A2 va A3 pinlari mavjud.
- reset () hamma narsani, shu jumladan klaviatura bilan ishlash kodini tiklaydi. Bunga yo'l qo'ymaslik uchun, Web IDE -ning aloqa opsiyalari qayta o'rnatilgandan keyin ham, yuklashni saqlashni yoqing.
- Sizning kompyuteringiz hayratlanarli darajada energiya tejamkor - siz hali ham taxminan 20 kunlik batareyaning ishlash muddatini kutishingiz mumkin - har doim bitta CR2032 batareyasi o'chadi!
Tavsiya:
Ochiq havo kompyuteri qutisi: 6 qadam
Ochiq havo kompyuteri qutisi: Bu loyiha uchun asboblar Hammarhand burg'ulash vintli disklari bo'lib, ular lenta tasmasini o'lchaydi
Raspberry Pi PC-PSU ish stoli kompyuteri qattiq diskli, ventilyatorli, PSU va o'chirgichli: 6 qadam
Raspberry Pi PC-PSU ish stoli kompyuteri, qattiq diskli, ventilyatorli, PSU va o'chirgichli kalit: 2020 yil sentyabr: Kompyuterni qayta ishlash uchun mo'ljallangan korpus ichida ikkinchi Raspberry Pi qurilgan edi. Buning uchun fanat ishlatiladi - shuning uchun kompyuter -PSU korpusi ichidagi komponentlarning joylashuvi boshqacha. O'zgartirilgan (64x48 pikselli), reklama
Eski noutbukdan "Vintage Look Media" kompyuteri: 30 qadam (rasmlar bilan)
Eski noutbukdan vintage ko'rinishga ega shaxsiy kompyuter: Bu maxsus ko'rsatma/videoda men qulay mini -masofali klaviatura bilan boshqariladigan, o'rnatilgan dinamikli, kichkina media -kompyuterni tayyorlayman. Kompyuter eski noutbuk bilan jihozlangan, bu haqida kichik hikoya. Bir yil oldin men Mettni ko'rdim
Ilg'or modelli raketa parvoz kompyuteri!: 4 qadam (rasmlar bilan)
Ilg'or modelli raketa kompyuteri!: Menga eng yangi raketam uchun o'zini yuqori qanotsiz boshqaradigan yuqori darajali modelli kompyuter kerak edi! Men o'zim qurdim! Men buni qurishga qaror qildim, chunki men TVC (surish vektorini boshqarish) raketalarini qurdim. Bu shuni anglatadiki, bu
Buni shunday qiling! Star Trek TNG mini muhandislik kompyuteri: 11 qadam (rasmlar bilan)
Buni shunday qiling! Star Trek TNG Mini muhandislik kompyuteri: Umumiy ko'rinish Men Star Trek: keyingi avlodni tomosha qilib o'sganman. Men har doim "Star Trek" nomli qurilmani qurishni xohlardim, shuning uchun men nihoyat Star Trek displey terminalini yaratish uchun eski loyihalarimdan birini qayta ishladim. Terminal quyidagi ma'lumotlarni taqdim etadi