Talaan ng mga Nilalaman:

DIY Home Computer: 4 na Hakbang
DIY Home Computer: 4 na Hakbang

Video: DIY Home Computer: 4 na Hakbang

Video: DIY Home Computer: 4 na Hakbang
Video: 10-ть самоделок для мастерской простыми инструментами. 2024, Nobyembre
Anonim
DIY Home Computer
DIY Home Computer

Nag-publish ako ng isang Instructable sandali pabalik gamit ang isang Espruino Pico upang makagawa ng isang computer sa bahay:

Kinakailangan ka ng isa na kumonekta sa isang monitor ng VGA sa pamamagitan ng pagputol ng isang VGA cable, ngunit para sa Instructable na ito gumagamit ako ng isang board na tinatawag na Pixl.js, na may built-in na LCD screen. Nangangahulugan ito na ang kailangan mo lamang ikonekta ay ilang mga wire at nakakuha ka ng maayos na magagamit na maliit, maliit na kapangyarihan na computer.

Kaya ano ang kailangan mo?

  • Isang Espruino Pixl.js
  • Isang piraso ng plastik o kahoy upang kumilos bilang base
  • Isang Breadboard
  • 4x 4x4 KeyPads
  • Maraming mga sticker para sa mga susi
  • 6 na hanay ng 8x Lalaki-> Mga male Dupont-style Jumper wires (48 na wires kabuuan) - pagtutugma ng maraming kulay na mga piraso ay ginagawang mas madali ang buhay

Hakbang 1: Paggawa ng Keyboard

Paggawa ng Keyboard
Paggawa ng Keyboard
Paggawa ng Keyboard
Paggawa ng Keyboard
Paggawa ng Keyboard
Paggawa ng Keyboard
  • Idikit ang iyong 4 KeyPad sa tabi ng bawat isa sa iyong base (malagkit-back). Maaari mong gupitin ang kanilang mga gilid, ngunit mag-ingat na huwag masyadong gupitin o maaari mong putulin ang ilang mga contact.
  • Idikit ang iyong breadboard sa gitna - malagkit din ito!
  • Hatiin ang jumper wire sa 4 na haba ng 8 - subukan at panatilihin ang mga kulay ng pareho sa bawat isa.
  • Idikit ang mga wire sa mga KeyPad, tinitiyak na ang mga kulay ay tumutugma. Tiklupin ang mga wires pabalik at i-tape ang mga ito sa likuran ng iyong base. Maaaring gusto mong magdagdag ng ilang mga malagkit na paa upang mai-save ang mga wire mula sa baluktot sa sobrang anggulo.
  • Magdagdag ngayon ng isang sticker sa bawat pindutan sa Key pad at lagyan ng label ang mga ito ayon sa nais mong keyboard. Gamitin ang imahe bilang isang halimbawa, ngunit kapag na-upload mo ang iyong code maaari mong baguhin ang variable na 'KEYMAP' sa mayroon ka.

Hakbang 2: Mga kable

Kable
Kable

Ngayon kailangan mong i-wire ang keyboard. Ang bawat 4x4 keypad ay nakaayos bilang isang grid, at kami ay nakakabit namin na parang sila ay nasa isang 2x2 grid - na gumagawa ng isang malaking 8x8 grid ng mga pindutan.

Ang wire na tulad ng ipinapakita sa imahe sa 4 na pangkat ng 4 na mga wire sa buong breadboard (suriin ang mga kulay ng mga wire sa mga imahe), na may kaliwa hanggang kanan:

  • KeyPad 1 Unang 4 na mga wire -> unang pangkat ng 4 sa breadboard -> D0, D1, D2, D3
  • KeyPad 1 Pangalawa 4 na mga wire -> pangatlong pangkat ng 4 sa breadboard -> D8, D9, D10, D11
  • KeyPad 2 First 4 wires -> unang pangkat ng 4 sa breadboard -> D0, D1, D2, D3
  • KeyPad 2 Pangalawang 4 na mga wire -> ika-apat na pangkat ng 4 sa breadboard -> D12, D13, SDA, SCL
  • KeyPad 3 Una 4 na mga wire -> pangalawang pangkat ng 4 sa breadboard -> D4, D5, D6, D7
  • KeyPad 3 Pangalawang 4 na mga wire -> pangatlong pangkat ng 4 sa breadboard -> D8, D9, D10, D11
  • KeyPad 4 Unang 4 na mga wire -> pangalawang pangkat ng 4 sa breadboard -> D4, D5, D6, D7
  • KeyPad 4 Pangalawang 4 na mga wire -> ika-apat na pangkat ng 4 sa breadboard -> D12, D13, SDA, SCL

Sa imahe mayroon kaming 6 na hanay ng 8 wires. Ang unang 2 ay mula sa mga keypad 1 at 2, ang pangalawang 2 ay pupunta sa Pixl.js, at ang pangatlo 2 ay sa mga keypad 4 at 3.

Hakbang 3: Software

Tiyaking tiyakin na ang firmware ng iyong Pixl ay napapanahon, kumonekta dito sa Espruino IDE, at i-upload ang code sa ibaba. Idiskonekta ang IDE at tapos ka na!

// Keyboard wiringvar KEYROW = [D7, D6, D5, D4, D3, D2, D1, D0]; var KEYCOL = [A5, A4, D13, D12, D11, D10, D9, D8];

// Key Maps para sa Keyboard

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 ",];

/ * Kung ang isang char sa keymap ay> = 128, ibawas ang 128 at tingnan ang array na ito para sa mga multi-character key code * / var KEYEXTRA = [String.fromCharCode (27, 91, 68), // 0x80 left String.fromCharCode (27, 91, 67), // 0x81 right String.fromCharCode (27, 91, 65), // 0x82 up String.fromCharCode (27, 91, 66), // 0x83 down String.fromCharCode (27, 91, 53, 126), // 0x84 page up String.fromCharCode (27, 91, 54, 126), // 0x85 pahina pababa]; // Shift status var hasShift = false; function setShift (s) {hasShift = s; // draw shift indikator sa screen kung (hasShift) {g.setColor (1); g.fillRect (105, 0, 128, 6); g.setColor (0); g.drawString ("SHIFT", 107, 1); g.setColor (1); } iba pa {g.setColor (0); g.fillRect (105, 0, 128, 6); g.setColor (1); } g.flip (); }

// I-convert ang isang aktwal na key sa isang pagkakasunud-sunod ng mga character

// At ipadala sa Loopback (kung saan ang console) function functionKeyPress (e) {var kx = e >> 3; var ky = e & 7; kung (ky> 3) {// maging mahabang hilera kx + = 8; ky- = 4; } var key = hasShift? KEYMAPUPPER [ky] [kx]: KEYMAPLOWER [ky] [kx]; kung (key == "\ x01") {setShift (! hasShift); } iba pa {setShift (false); kung (key && key.length) {if (key.charCodeAt (0)> 127) key = KEYEXTRA [key.charCodeAt (0) -128]; Terminal.inject (key); }}}

// i-set up ang keypad

nangangailangan ("KeyPad"). ikonekta (KEYROW, KEYCOL, hawakanKeyPress);

Hakbang 4: Gamit Ito

Gamit Ito!
Gamit Ito!

Ngayon ay gumagana ito:

  • Ang keyboard ay makakakita lamang ng isang pagpindot nang paisa-isa, kaya ang Shift ay nagpapalipat-lipat sa mga malalaking titik (na may isang tagapagpahiwatig sa kanang itaas), at ang pagta-type ng isang titik ay babalik sa maliit na titik. Ang pagpigil sa Shift at isa pang susi ay hindi gagana.
  • Ang pagta-type ay maaaring maging masakit, kaya't gamitin ang Tab key (sa kaliwa) hangga't maaari upang awtomatikong punan ang mga salita!
  • Ang mga graphic para sa screen ay magagamit sa pamamagitan ng mga pamamaraan sa variable ng g - hal, g.fillRect (20, 20, 40, 40) o g.clear ().
  • Maraming IO ang ginagamit para sa keyboard, ngunit mayroon ka pa ring mga pin na A0, A1, A2 at A3 na maaari mong gamitin para sa pagkonekta ng panlabas na hardware.
  • i-reset ang () ire-reset ang lahat - kasama ang iyong code para sa paghawak ng keyboard. Upang maiwasan ito, i-on ang save sa send, kahit na matapos ang pag-reset sa mga pagpipilian sa komunikasyon ng Web IDE at i-upload muli.
  • Ang iyong computer ay nakakagulat na mahusay sa lakas - maaari mo pa ring asahan ang isang humigit-kumulang 20 araw na buhay ng baterya - laging nasa - off ng isang solong baterya ng CR2032!

Inirerekumendang: