INHOUDSOPGAWE:

DIY Tuisrekenaar: 4 stappe
DIY Tuisrekenaar: 4 stappe

Video: DIY Tuisrekenaar: 4 stappe

Video: DIY Tuisrekenaar: 4 stappe
Video: Таких голубцов вы не ели никогда!!! Обязательно приготовьте!!! Пошаговый рецепт 2024, Julie
Anonim
DIY tuisrekenaar
DIY tuisrekenaar

Ek het 'n rukkie terug 'n Instructable gepubliseer met 'n Espruino Pico om 'n tuisrekenaar te maak:

Die een het vereis dat u 'n VGA-monitor aansluit deur 'n VGA-kabel af te sny, maar vir hierdie instruksies gebruik ek 'n bord genaamd Pixl.js, met 'n ingeboude LCD-skerm. Dit beteken dat u slegs 'n paar drade hoef te koppel, en u het 'n behoorlik bruikbare klein rekenaar met 'n lae krag.

So, wat het jy nodig?

  • 'N Espruino Pixl.js
  • 'N Stuk plastiek of hout om as basis te dien
  • 'N Broodbord
  • 4x 4x4 sleutelblokke
  • Baie plakkers vir die sleutels
  • 6 stelle 8x manlike-> manlike Dupont-trui (in totaal 48 drade)-bypassende veelkleurige stroke maak die lewe baie makliker

Stap 1: Maak die sleutelbord

Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
  • Plak u 4 sleutelblokkies langs mekaar op u basis (hulle is styf agter). Miskien wil u hul rande afsny, maar wees versigtig om nie te ver te snoei nie, anders kan u die kontakte afsny.
  • Plak jou broodbord in die middel - dit is ook taai agterkant!
  • Verdeel die jumperdraad in 4 lengtes van 8 - probeer om die kleure op elkeen dieselfde te hou.
  • Steek die drade in die KeyPads, en maak seker dat die kleure almal ooreenstem. Vou die drade terug en plak dit aan die agterkant van die basis vas. Miskien wil u 'n paar kleefvoete byvoeg om te voorkom dat die drade te veel skuins buig.
  • Voeg nou 'n plakker by elke knoppie in die sleutelbord en merk dit soos u wil hê dat u die sleutelbord wil hê. Gebruik die prent as 'n voorbeeld, maar as u u kode oplaai, kan u die 'KEYMAP' -veranderlike verander na wat u het.

Stap 2: Bedrading

Bedrading
Bedrading

Nou moet u die sleutelbord bedraad. Elke 4x4 -klavier is gerangskik as 'n rooster, en ons bedrieg dit asof hulle self in 'n 2x2 -rooster is - 'n groot 8x8 -knoppie -rooster.

Draai soos in die prent in 4 groepe van 4 drade oor die broodbord (kyk na die kleure van die drade in die beelde), met links na regs:

  • KeyPad 1 Eerste 4 drade -> eerste groep van 4 op broodbord -> D0, D1, D2, D3
  • KeyPad 1 Tweede 4 drade -> derde groep van 4 op broodbord -> D8, D9, D10, D11
  • KeyPad 2 Eerste 4 drade -> eerste groep van 4 op broodbord -> D0, D1, D2, D3
  • KeyPad 2 Tweede 4 drade -> vierde groep van 4 op broodbord -> D12, D13, SDA, SCL
  • KeyPad 3 Eerste 4 drade -> tweede groep van 4 op broodbord -> D4, D5, D6, D7
  • KeyPad 3 Tweede 4 drade -> derde groep van 4 op broodbord -> D8, D9, D10, D11
  • KeyPad 4 Eerste 4 drade -> tweede groep van 4 op broodbord -> D4, D5, D6, D7
  • KeyPad 4 Tweede 4 drade -> vierde groep van 4 op broodbord -> D12, D13, SDA, SCL

In die prentjie het ons 6 stelle van 8 drade. Die eerste 2 is van die bedieningsblokke 1 en 2, die tweede 2 gaan na die Pixl.js, en die derde 2 na die bedieningsblokke 4 en 3.

Stap 3: sagteware

Maak nou seker dat u Pixl se firmware op datum is, koppel daaraan met die Espruino IDE en laai die onderstaande kode op. Ontkoppel die IDE en u is klaar!

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

// Sleutelkaarte vir sleutelbord

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

/* As 'n teken in die sleutelkaart> = 128 is, trek 128 af en soek in hierdie skikking na sleutelkodes met meer karakters*/ 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 bladsy af]; // Shift status var hasShift = false; funksie setShift (s) {hasShift = s; // teken skofaanwyser op die skerm as (hasShift) {g.setColor (1); g.fillRect (105, 0, 128, 6); g.setColor (0); g.drawString ("SHIFT", 107, 1); g.setColor (1); } anders {g.setColor (0); g.fillRect (105, 0, 128, 6); g.setColor (1); } g.flip (); }

// Skakel 'n werklike sleutel om in 'n reeks karakters

// En stuur na Loopback (waar die konsole is) funksie handleKeyPress (e) {var kx = e >> 3; var ky = e & 7; as (ky> 3) {// verander in lang ry kx+= 8; ky- = 4; } var key = hasShift? KEYMAPUPPER [ky] [kx]: KEYMAPLOWER [ky] [kx]; if (sleutel == "\ x01") {setShift (! hasShift); } anders {setShift (vals); if (key && key.length) {if (key.charCodeAt (0)> 127) key = KEYEXTRA [key.charCodeAt (0) -128]; Terminal.inject (sleutel); }}}

// stel die klavier in

vereis ("KeyPad"). verbind (KEYROW, KEYCOL, handleKeyPress);

Stap 4: Gebruik dit

Gebruik dit!
Gebruik dit!

Nou werk dit:

  • Die sleutelbord kan slegs een druk op 'n slag opspoor, so Shift skakel hoofletters (met 'n aanwyser regs bo) en die tik van 'n letter word in klein letters oorgeskakel. Om Shift en 'n ander sleutel ingedruk te hou, werk nie.
  • Om te tik kan baie pynlik wees, dus gebruik die Tab-sleutel (aan die linkerkant) soveel as moontlik om woorde outomaties in te vul!
  • Die grafika vir die skerm is beskikbaar via metodes op die g -veranderlike - bv. G.fillRect (20, 20, 40, 40) of g.clear ().
  • Daar word baie IO vir die sleutelbord gebruik, maar u het nog steeds penne A0, A1, A2 en A3 wat u kan gebruik om eksterne hardeware aan te sluit.
  • reset () herstel alles - insluitend u kode vir die hantering van die sleutelbord. Om dit te vermy, skakel Save on Send aan, selfs nadat die kommunikasie -opsies van die Web IDE herstel is en weer opgelaai word.
  • U rekenaar is verbasend energiedoeltreffend - u kan steeds 'n batteryleeftyd van ongeveer 20 dae verwag - altyd 'n enkele CR2032 -battery aan!

Aanbeveel: