Агуулгын хүснэгт:

DIY гэрийн компьютер: 4 алхам
DIY гэрийн компьютер: 4 алхам

Видео: DIY гэрийн компьютер: 4 алхам

Видео: DIY гэрийн компьютер: 4 алхам
Видео: КАК НАСТРОИТЬ L4D2 2024, Арваннэгдүгээр
Anonim
DIY гэрийн компьютер
DIY гэрийн компьютер

Би хэсэг хугацааны дараа Espruino Pico ашиглан гэрийн компьютер хийх зааварчилгааг нийтэлсэн:

Үүнийг хийхийн тулд VGA дэлгэцийг VGA кабелийг таслах замаар холбох шаардлагатай байсан боловч зааварчилгааны хувьд би LCD дэлгэц суурилуулсан Pixl.js самбарыг ашиглаж байна. Энэ нь танд хэдхэн утас байхад л зохих ёсоор ашиглах боломжтой, хүч чадал багатай компьютер байгаа гэсэн үг юм.

Тэгэхээр танд юу хэрэгтэй вэ?

  • Espruino Pixl.js
  • Суурь болох хуванцар эсвэл модон хэсэг
  • Талхны самбар
  • 4x 4x4 товчлуур
  • Түлхүүрт зориулсан олон наалт
  • 6 багц 8x Male-> Male Dupont маягийн Jumper утас (нийт 48 утас)-олон өнгийн туузыг тааруулах нь амьдралыг ихээхэн хөнгөвчилдөг

Алхам 1: Гар хийх

Гар хийх
Гар хийх
Гар хийх
Гар хийх
Гар хийх
Гар хийх
  • 4 түлхүүрийн товчлуурыг суурин дээрээ бие биенийхээ хажууд байрлуул (тэд наалттай байна). Та тэдний ирмэгийг доош нь тайрч авахыг хүсч магадгүй, гэхдээ хэт хол зүсэхээс болгоомжил, эс тэгвээс зарим харилцагчдыг таслах болно.
  • Талхны тавцангаа дунд нь доошлуулаарай - энэ нь бас наалдамхай юм!
  • Холбогч утсыг 8 -ийн 4 урттай болгон хуваа. Өнгө тус бүр дээр ижил байхыг хичээ.
  • Утаснуудаа KeyPad -д залгаад өнгө нь бүгд таарч байгаа эсэхийг шалгаарай. Утсыг нугалаад суурийнхаа ар талд наана. Утсыг хэт өнцгөөр нугалахаас хамгаалахын тулд та наалдамхай хөл нэмж өгөхийг хүсч магадгүй юм.
  • Одоо товчлуурын товчлуур дээрх товчлуур бүрт наалт нэмж, гараа хүссэнээрээ тэмдэглээрэй. Зургийг жишээ болгон ашиглаарай, гэхдээ та кодоо оруулахдаа 'KEYMAP' хувьсагчийг өөрт байгаа болгож өөрчилж болно.

Алхам 2: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас

Одоо та гарыг утсаар холбох хэрэгтэй. 4х4 хэмжээтэй товчлуур бүрийг сүлжээ болгон байрлуулсан бөгөөд бид тэдгээрийг 2х2 хэмжээтэй сүлжээнд холбосон мэт холбож өгдөг бөгөөд ингэснээр том хэмжээтэй 8х8 хэмжээтэй товчлуур хийдэг.

Зураг дээр үзүүлсэн шиг талхны самбар дээр 4 утас бүхий 4 бүлэг болгон утсаар холбоно уу (зурган дээрх утаснуудын өнгийг шалгана уу), зүүнээс баруун тийш:

  • KeyPad 1 Эхний 4 утас -> талхны самбар дээрх 4 -р бүлгийн эхний бүлэг -> D0, D1, D2, D3
  • KeyPad 1 Хоёр дахь 4 утас -> талхны самбар дээрх 4 -р гурав дахь бүлэг -> D8, D9, D10, D11
  • KeyPad 2 Эхний 4 утас -> талхны самбар дээрх 4 -ийн эхний бүлэг -> D0, D1, D2, D3
  • KeyPad 2 Хоёр дахь 4 утас -> талхны самбар дээрх 4 -р бүлэг -> D12, D13, SDA, SCL
  • KeyPad 3 Эхний 4 утас -> талхны самбар дээрх 4 -ийн хоёр дахь бүлэг -> D4, D5, D6, D7
  • KeyPad 3 Хоёр дахь 4 утас -> талхны самбар дээрх 4 -р гурав дахь бүлэг -> D8, D9, D10, D11
  • KeyPad 4 Эхний 4 утас -> талхны самбар дээрх 4 -р хоёр дахь бүлэг -> D4, D5, D6, D7
  • KeyPad 4 Хоёр дахь 4 утас -> талхны самбар дээрх 4 -р 4 -р бүлэг -> D12, D13, SDA, SCL

Зураг дээр бид 8 утастай 6 багцтай. Эхний 2 нь 1 ба 2 товчлууруудаас, хоёр дахь 2 нь Pixl.js рүү, гурав дахь 2 нь 4 ба 3 товчлууруудтай.

Алхам 3: Програм хангамж

Одоо Pixl -ийн програм хангамж шинэчлэгдсэн эсэхийг шалгаад Espruino IDE -тэй холбогдож доорх кодыг байршуулна уу. IDE -г салгаад дуусгачихлаа!

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

// Гарын түлхүүр газрын зураг

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

/* Хэрэв товчлуурын зураг дээрх тэмдэгт нь = = 128 бол

128-ыг хасаад энэ массиваас олон тэмдэгт бүхий түлхүүр кодыг олоорой*/ var KEYEXTRA = [String.fromCharCode (27, 91, 68), // 0x80 зүүн String.fromCharCode (27, 91, 67), // 0x81 баруун мөр.fromCharCode (27, 91, 65), // 0x82 дээш String.fromCharCode (27, 91, 66), // 0x83 доош String.fromCharCode (27, 91, 53, 126), // 0x84 хуудас дээш String.fromCharCode (27, 91, 54, 126), // 0x85 хуудас доош]; // Shift status var hasShift = false; setShift (s) функц {hasShift = s; // хэрэв (hasShift) {g.setColor (1) бол ээлжийн заагчийг дэлгэц дээр зурна уу; g.fillRect (105, 0, 128, 6); g.setColor (0); g.drawString ("SHIFT", 107, 1); g.setColor (1); } өөр {g.setColor (0); g.fillRect (105, 0, 128, 6); g.setColor (1); } g.flip (); }

// Бодит түлхүүрийг тэмдэгтүүдийн дараалал болгон хөрвүүлэх

// Тэгээд Loopback руу илгээнэ үү (консол хаана байна) function handleKeyPress (e) {var kx = e >> 3; var ky = e & 7; if (ky> 3) {// урт эгнээ болж хувирах kx+= 8; ky- = 4; } var key = hasShift? KEYMAPUPPER [ky] [kx]: KEYMAPLOWER [ky] [kx]; if (key == "\ x01") {setShift (! hasShift); } өөр {setShift (худал); if (key && key.length) {if (key.charCodeAt (0)> 127) key = KEYEXTRA [key.charCodeAt (0) -128]; Терминал. Тарилга (түлхүүр); }}}

// товчлуурыг тохируулах

шаарддаг ("KeyPad"). холбох (KEYROW, KEYCOL, handleKeyPress);

Алхам 4: Үүнийг ашиглах

Үүнийг ашиглаж байна!
Үүнийг ашиглаж байна!

Одоо ажиллаж байна:

  • Гар нь нэг удаад зөвхөн нэг даралтыг илрүүлж чаддаг тул Shift нь том үсгийг сэлгэж (баруун дээд талд заагчтай), үсэг бичих нь жижиг үсгээр эргэж ордог. Shift болон өөр түлхүүрийг удаан дарвал ажиллахгүй болно.
  • Бичих нь маш их зовиуртай байдаг тул үгсийг автоматаар бөглөхийн тулд Tab товчлуурыг (зүүн талд) аль болох их ашиглаарай!
  • Дэлгэцийн графикийг g хувьсагчийн аргуудаар авах боломжтой, жишээлбэл, g.fillRect (20, 20, 40, 40) эсвэл g.clear ().
  • Гар дээр маш олон IO ашигладаг боловч та гадаад тоног төхөөрөмжийг холбоход ашиглаж болох A0, A1, A2, A3 зүүтэй хэвээр байна.
  • reset () нь бүх зүйлийг анхны байдалд нь оруулах болно, үүнд гартай ажиллах кодыг оруулна. Үүнээс зайлсхийхийн тулд Web IDE -ийн харилцаа холбооны тохиргоог дахин тохируулаад дахин байршуулсны дараа илгээсэн хадгаламжийг асаана уу.
  • Гайхалтай нь таны компьютер эрчим хүчний хэмнэлттэй байдаг - нэг CR2032 батерейг үргэлж асаалттай байлгахын тулд батерейны 20 хоног ажиллах боломжтой хэвээр байх болно!

Зөвлөмж болгож буй: