Мазмұны:

DIY үй компьютері: 4 қадам
DIY үй компьютері: 4 қадам

Бейне: DIY үй компьютері: 4 қадам

Бейне: DIY үй компьютері: 4 қадам
Бейне: Үй жағдайында 3/4 сурет шығарамыз. #3/4сурет#фото3/4#принтерденсуретшығару 2024, Шілде
Anonim
DIY үй компьютері
DIY үй компьютері

Мен үй компьютерін жасау үшін Espruino Pico көмегімен нұсқаулықты шығардым:

Бұл сізге VGA кабелін кесу арқылы VGA мониторын қосуды талап етті, бірақ мен бұл нұсқаулықта СКД экраны бар Pixl.js тақтасын қолданамын. Бұл дегеніміз, сізге бірнеше сымдар қосылуы керек және сізде дұрыс қолданылатын шағын қуатты компьютер бар.

Сонымен сізге не керек?

  • Espruino Pixl.js
  • Негіз ретінде әрекет ететін пластиктен немесе ағаштан жасалған бөлік
  • Нан тақтасы
  • 4x 4x4 пернетақта
  • Кілттерге арналған көптеген стикерлер
  • 6 дана 8x Male-> Dale Dupont стиліндегі Jumper сымдарының жиынтығы (барлығы 48 сым)-сәйкес келетін түрлі-түсті жолақтар өмірді айтарлықтай жеңілдетеді

1 -қадам: Пернетақтаны жасау

Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
  • 4 пернетақтаны негізге бір-біріне қойыңыз (олар жабысқақ). Сіз олардың жиектерін қысқартқыңыз келуі мүмкін, бірақ тым алшақтатпаңыз, немесе кейбір контактілерді үзіп алуыңыз мүмкін.
  • Нан тақтаңызды ортасына қойыңыз - ол да жабысқақ!
  • Өткізгішті 8 ұзындықтағы 4 ұзындыққа бөліңіз - олардың әрқайсысында түстерді бірдей ұстауға тырысыңыз.
  • Түстердің сәйкес келетініне көз жеткізу үшін сымдарды пернетақтаға бекітіңіз. Сымдарды артқа бүктеп, оларды негіздің артына бекітіңіз. Сымдарды тым бұрыштан майыстырмау үшін жабысқақ аяқтар қосқыңыз келуі мүмкін.
  • Енді пернетақтаның әр түймешігіне стикер қосып, пернетақтаны қалағаныңызша белгілеңіз. Мысал ретінде суретті пайдаланыңыз, бірақ сіз кодыңызды жүктеген кезде 'KEYMAP' айнымалысын сізде бар нәрсеге өзгерте аласыз.

2 -қадам: Сымдарды жалғау

Сымдар
Сымдар

Енді сіз пернетақтаны сыммен байланыстыруыңыз керек. Әр 4x4 пернетақта тор ретінде орналасады, біз оларды 2х2 торға қосқандай етіп қосамыз - бұл үлкен 8х8 түймешіктер торын жасайды.

Кескінде көрсетілгендей, сымды нан тақтасындағы 4 сымнан тұратын 4 топқа бөліңіз (суреттердегі сымдардың түстерін тексеріңіз), солдан оңға қарай:

  • KeyPad 1 Бірінші 4 сым -> нан тақтасындағы 4 -ші бірінші топ -> D0, D1, D2, D3
  • Пернетақта 1 Екінші 4 сымдар -> нан тақтасындағы 4 -тің үшінші тобы -> D8, D9, D10, D11
  • KeyPad 2 Алғашқы 4 сым -> нан тақтасындағы 4 -ші бірінші топ -> D0, D1, D2, D3
  • KeyPad 2 Second 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 Second 4 сымдары -> төртінші төртінші топтағы тақтада -> D12, D13, SDA, SCL

Суретте бізде 8 сымның 6 жиынтығы бар. Алғашқы 2 - 1 және 2 пернетақталарынан, екіншісі - Pixl.js -ке, үшінші 2 - 4 және 3 пернетақтаға арналған.

3 -қадам: Бағдарламалық қамтамасыз ету

Енді Pixl микробағдарламасының жаңартылғанына көз жеткізіңіз, оған Espruino IDE арқылы қосылыңыз және төмендегі кодты жүктеңіз. IDE ажыратыңыз және сіз аяқтадыңыз!

// Пернетақта сымдары 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 күйі 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 (консоль орналасқан) функциясына 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 байланыс опцияларын қалпына келтіріп, қайта жүктегеннен кейін де жіберуді сақтауды қосыңыз.
  • Сіздің компьютеріңіз қуатты үнемдейтіні таңқаларлық - сіз әлі де 20 күндік батареяның қызмет ету мерзімін күте аласыз - әрқашан қосулы - бір CR2032 батареясы!

Ұсынылған: