Мазмуну:

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

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

Video: DIY үй компьютери: 4 кадам
Video: Үй жағдайында 3/4 сурет шығарамыз. #3/4сурет#фото3/4#принтерденсуретшығару 2024, Ноябрь
Anonim
DIY үй компьютери
DIY үй компьютери

Мен үй компьютерин жасоо үчүн Espruino Pico менен инструкцияны бир аз мурун жарыяладым:

Бул VGA кабелин кесүү менен VGA мониторун туташтырууңузду талап кылды, бирок бул көрсөтмө үчүн мен LCD экраны орнотулган Pixl.js деп аталган тактаны колдонуп жатам. Бул болгону бир нече зымдарды туташтырууңуз керек жана сизде туура колдонула турган кичинекей, кубаты аз компьютер бар дегенди билдирет.

Демек, эмне кылышыбыз керек?

  • An Espruino Pixl.js
  • Пластмассадан же жыгачтан жасалган бөлүк негиз катары иштейт
  • A Breadboard
  • 4x 4x4 баскычтар
  • Ачкычтар үчүн стикерлер көп
  • 6 топтом 8x Male-> Эркек Дюпон стилиндеги Jumper зымдары (бардыгы 48 зым)-дал келген түстүү тилкелер жашоону бир топ жеңилдетет

1 -кадам: Баскычтопту жасоо

Баскычтопту жасоо
Баскычтопту жасоо
Баскычтопту жасоо
Баскычтопту жасоо
Баскычтопту жасоо
Баскычтопту жасоо
  • 4 KeyPadти бири-бириңиздин базаңызга жабыштырыңыз (алар жабышчаак-кайра). Сиз алардын четтерин ылдый кыркып салгыңыз келиши мүмкүн, бирок өтө алыс кыркуудан сак болуңуз, болбосо кээ бир байланыштарды кесип салышыңыз мүмкүн.
  • Нан тактаңызды ортого түшүрүңүз - бул дагы жабышчаак!
  • Өткөргүч зымды 8 узундугуна бөлүңүз - ар биринде түстөрдү бирдей сактоого аракет кылыңыз.
  • Түстөрдүн бардыгына дал келерин текшерип, зымдарды KeyPadтарга чаптаңыз. Зымдарды артка бүктөп, базаңыздын артына скотч менен жабыңыз. Зымдарды өтө көп бурчтан ийилип калуудан сактоо үчүн жабышчаак буттарды кошуп койсоңуз болот.
  • Эми баскычтоптун ар бир баскычына чаптама кошуп, клавиатура каалагандай белгилеңиз. Мисал катары сүрөттү колдонуңуз, бирок кодуңузду жүктөгөнүңүздө 'KEYMAP' өзгөрмөсүн сизде бар нерсеге өзгөртө аласыз.

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү

Эми клавиатураны зым менен жабышыңыз керек. Ар бир 4x4 баскычтобу торчо катары жайгаштырылган жана биз аларды 2х2 сеткадагыдай кылып зымдап жатабыз - чоң 8x8 түймөчөлөр торун жасоо.

Сүрөттө көрсөтүлгөндөй, панелдеги 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ден, экинчиси 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 абалы 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? АЧКЫЧ КАПИПЕР [ky] [kx]: KEYMAPLOWER [ky] [kx]; if (key == "\ x01") {setShift (! hasShift); } else {setShift (false); if (key && key.length) {if (key.charCodeAt (0)> 127) key = KEYEXTRA [key.charCodeAt (0) -128]; Terminal.inject (key); }}}

// баскычтопту орнотуу

талап кылуу ("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 батарейкасы!

Сунушталууда: