Inhaltsverzeichnis:

DIY Heimcomputer - Gunook
DIY Heimcomputer - Gunook

Video: DIY Heimcomputer - Gunook

Video: DIY Heimcomputer - Gunook
Video: how to make notebook paper gun , homemade paper rubberband gun which shoots bullets , easy paper toy 2024, November
Anonim
DIY Heimcomputer
DIY Heimcomputer

Ich habe vor einiger Zeit ein Instructable mit einem Espruino Pico veröffentlicht, um einen Heimcomputer zu machen:

Das erforderte, dass Sie einen VGA-Monitor anschließen, indem Sie ein VGA-Kabel zerschneiden, aber für dieses Instructable verwende ich eine Platine namens Pixl.js, in die der LCD-Bildschirm eingebaut ist. Es bedeutet, dass Sie nur ein paar Drähte anschließen müssen und Sie einen richtig brauchbaren winzigen Computer mit geringem Stromverbrauch haben.

Also was brauchst du?

  • Ein Espruino Pixl.js
  • Ein Stück Plastik oder Holz als Unterlage
  • Ein Steckbrett
  • 4x 4x4 Tastaturen
  • Viele Sticker für die Schlüssel
  • 6 Sets mit 8x Male->Male Dupont-Style Jumper Drähte (48 Drähte insgesamt) - passende mehrfarbige Streifen machen das Leben viel einfacher

Schritt 1: Erstellen der Tastatur

Herstellung der Tastatur
Herstellung der Tastatur
Herstellung der Tastatur
Herstellung der Tastatur
Herstellung der Tastatur
Herstellung der Tastatur
  • Kleben Sie Ihre 4 KeyPads nebeneinander auf Ihre Basis (sie sind klebrig). Sie können die Kanten nach unten kürzen, aber achten Sie darauf, nicht zu weit zu schneiden, da Sie sonst einige Kontakte abschneiden.
  • Stecken Sie Ihr Steckbrett in die Mitte - es ist auch klebrig!
  • Teilen Sie das Überbrückungskabel in 4 Längen von 8 auf - versuchen Sie, die Farben auf jedem gleich zu halten.
  • Stecken Sie die Drähte in die KeyPads und stellen Sie sicher, dass die Farben alle übereinstimmen. Falten Sie die Drähte zurück und kleben Sie sie an die Rückseite Ihrer Basis. Vielleicht möchten Sie einige klebrige Füße hinzufügen, um zu verhindern, dass die Drähte zu stark gebogen werden.
  • Fügen Sie nun jeder Taste im Tastenfeld einen Aufkleber hinzu und beschriften Sie sie nach Ihren Wünschen. Verwenden Sie das Bild als Beispiel, aber wenn Sie Ihren Code hochladen, können Sie die Variable 'KEYMAP' so ändern, wie Sie es haben.

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung

Jetzt müssen Sie die Tastatur verkabeln. Jede 4x4-Tastatur ist als Raster angeordnet, und wir verdrahten sie so, als ob sie selbst in einem 2x2-Raster wären - was ein großes 8x8-Raster von Tasten ergibt.

Verdrahten Sie wie im Bild gezeigt in 4 Gruppen von 4 Drähten über das Steckbrett (überprüfen Sie die Farben der Drähte in den Bildern), von links nach rechts:

  • KeyPad 1 Erste 4 Drähte -> erste Gruppe von 4 auf Steckbrett -> D0, D1, D2, D3
  • KeyPad 1 Zweite 4 Drähte -> dritte Gruppe von 4 auf Steckbrett -> D8, D9, D10, D11
  • KeyPad 2 Erste 4 Drähte -> erste Gruppe von 4 auf Steckbrett -> D0, D1, D2, D3
  • KeyPad 2 Zweite 4 Drähte -> vierte Gruppe von 4 auf Steckbrett -> D12, D13, SDA, SCL
  • KeyPad 3 Erste 4 Drähte -> zweite Gruppe von 4 auf Steckbrett -> D4, D5, D6, D7
  • KeyPad 3 Zweite 4 Drähte -> dritte Gruppe von 4 auf Steckbrett -> D8, D9, D10, D11
  • KeyPad 4 Erste 4 Drähte -> zweite Gruppe von 4 auf Steckbrett -> D4, D5, D6, D7
  • KeyPad 4 Zweite 4 Drähte -> vierte Gruppe von 4 auf Steckbrett -> D12, D13, SDA, SCL

Im Bild haben wir 6 Sätze von 8 Drähten. Die ersten 2 sind von den Tastenfeldern 1 und 2, die zweiten 2 gehen zu Pixl.js und die dritten 2 gehen zu den Tastenfeldern 4 und 3.

Schritt 3: Software

Stellen Sie nun sicher, dass die Firmware Ihres Pixl auf dem neuesten Stand ist, verbinden Sie sich mit der Espruino IDE und laden Sie den unten stehenden Code hoch. Trennen Sie die IDE und fertig!

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

// Tastenbelegungen für die Tastatur

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

/* Wenn ein Zeichen in der Tastaturbelegung >=128 ist, subtrahiere 128 und suche in diesem Array nach mehrstelligen Tastencodes*/ var KEYEXTRA = [String.fromCharCode(27, 91, 68), // 0x80 left String.fromCharCode(27, 91, 67), // 0x81 right String.fromCharCode(27, 91, 65), // 0x82 nach oben String.fromCharCode(27, 91, 66), // 0x83 nach unten String.fromCharCode(27, 91, 53, 126), // 0x84 nach oben String.fromCharCode (27, 91, 54, 126), // 0x85 Seite nach unten]; // Status verschieben var hasShift = false; Funktion setShift(s) { hasShift = s; // Shift-Indikator auf dem Bildschirm zeichnen if (hasShift) { g.setColor(1); g.fillRect(105, 0, 128, 6); g.setColor(0); g.drawString("UMSCHALT", 107, 1); g.setColor(1); aufrechtzuerhalten. Sonst { g.setColor (0); g.fillRect(105, 0, 128, 6); g.setColor(1); } g.flip(); }

// Konvertieren eines tatsächlichen Schlüssels in eine Zeichenfolge

// Und an Loopback senden (wo die Konsole ist) function handleKeyPress(e) { var kx = e>>3; var ky = e&7; if (ky>3) {// in lange Reihe verwandeln kx+=8; ky – = 4; } var key = hasShift ? KEYMAPUPPER[ky][kx]: KEYMAPLOWER[ky][kx]; if (key=="\x01") { setShift(!hasShift); aufrechtzuerhalten. Sonst { setShift (false); if (key && key.length) { if (key.charCodeAt(0)>127) key = KEYEXTRA[key.charCodeAt(0)-128]; Terminal.inject (Schlüssel); } } }

// Tastatur einrichten

require("KeyPad").connect(KEYROW, KEYCOL, handleKeyPress);

Schritt 4: Verwenden

Es benutzen!
Es benutzen!

Jetzt geht es:

  • Die Tastatur kann jeweils nur ein Drücken erkennen, daher schaltet die Umschalttaste zwischen Großbuchstaben um (mit einem Indikator oben rechts) und die Eingabe eines Buchstabens wird auf Kleinbuchstaben zurückgesetzt. Halten Sie die Umschalttaste gedrückt und eine andere Taste funktioniert nicht.
  • Das Tippen kann ziemlich mühsam sein, verwenden Sie also so oft wie möglich die Tabulatortaste (links), um Wörter automatisch auszufüllen!
  • Die Grafiken für den Bildschirm stehen über Methoden auf der g-Variablen zur Verfügung - zB g.fillRect(20, 20, 40, 40) oder g.clear().
  • Für die Tastatur wird viel IO verwendet, aber Sie haben immer noch die Pins A0, A1, A2 und A3, die Sie zum Anschluss externer Hardware verwenden können.
  • reset() setzt alles zurück - einschließlich Ihres Codes für die Tastaturbedienung. Um dies zu vermeiden, aktivieren Sie beim Senden speichern auch nach dem Zurücksetzen in den Kommunikationsoptionen der Web-IDE und laden Sie erneut hoch.
  • Ihr Computer ist überraschend energieeffizient - Sie können immer noch eine Akkulaufzeit von ungefähr 20 Tagen erwarten - immer eingeschaltet - ohne eine einzige CR2032-Batterie!

Empfohlen: