İçindekiler:

Kendin Yap Ev Bilgisayarı: 4 Adım
Kendin Yap Ev Bilgisayarı: 4 Adım

Video: Kendin Yap Ev Bilgisayarı: 4 Adım

Video: Kendin Yap Ev Bilgisayarı: 4 Adım
Video: Kendi Bilgisayarını Kendin Yapabilirsin! | Bilgisayar Montajı Rehberi 2024, Kasım
Anonim
Kendin Yap Ev Bilgisayarı
Kendin Yap Ev Bilgisayarı

Ev bilgisayarı yapmak için bir Espruino Pico kullanarak bir süre önce bir Eğitilebilir Kitap yayınladım:

Bu, bir VGA kablosunu keserek bir VGA monitör bağlamanızı gerektiriyordu, ancak bu Eğitilebilir Kitap için, LCD ekranı yerleşik olan Pixl.js adlı bir tahta kullanıyorum. Bu, bağlamanız gereken tek şeyin birkaç kablo olduğu ve düzgün şekilde kullanılabilen küçük, düşük güçlü bir bilgisayarınız olduğu anlamına gelir.

Neye ihtiyacın var?

  • Bir Espruino Pixl.js
  • Taban görevi görecek bir plastik veya tahta parçası
  • Breadboard
  • 4x 4x4 Tuş Takımları
  • Anahtarlar için çok sayıda çıkartma
  • 6 set 8x Erkek->Erkek Dupont tarzı Jumper telleri (toplam 48 tel) - eşleşen çok renkli şeritler hayatı çok daha kolay hale getirir

Adım 1: Klavyeyi Yapmak

Klavyeyi Yapmak
Klavyeyi Yapmak
Klavyeyi Yapmak
Klavyeyi Yapmak
Klavyeyi Yapmak
Klavyeyi Yapmak
  • 4 Tuş Takımınızı tabanınıza yan yana yapıştırın (arkası yapışkandır). Kenarlarını aşağı kırpmak isteyebilirsiniz, ancak çok fazla kırpmamaya dikkat edin, aksi takdirde bazı temas noktalarını kesebilirsiniz.
  • Breadboard'unuzu ortaya yapıştırın - aynı zamanda yapışkandır!
  • Atlama kablosunu 4 uzunluğa 8'e ayırın - her birinde renkleri aynı tutmaya çalışın.
  • Renklerin hepsinin eşleştiğinden emin olarak kabloları Tuş Takımlarına yapıştırın. Kabloları geri katlayın ve tabanınızın arkasına bantlayın. Tellerin çok fazla açıyla bükülmesini önlemek için biraz yapışkan ayak eklemek isteyebilirsiniz.
  • Şimdi Tuş takımındaki her bir düğmeye bir çıkartma ekleyin ve klavyenizi istediğiniz gibi etiketleyin. Resmi örnek olarak kullanın, ancak kodunuzu yüklediğinizde 'KEYMAP' değişkenini sahip olduğunuzla değiştirebilirsiniz.

Adım 2: Kablolama

kablolama
kablolama

Şimdi klavyeyi bağlamanız gerekiyor. Her 4x4 tuş takımı bir ızgara olarak düzenlenmiştir ve onları sanki 2x2'lik bir ızgaradaymış gibi kablolarız - 8x8'lik büyük bir düğme ızgarası oluştururuz.

Resimde gösterildiği gibi, devre tahtası boyunca 4 telden oluşan 4 gruba ayırın (resimlerdeki tellerin renklerini kontrol edin), soldan sağa:

  • Tuş Takımı 1 İlk 4 kablo -> devre tahtasında 4'lü ilk grup -> D0, D1, D2, D3
  • Tuş Takımı 1 İkinci 4 kablo -> devre tahtasında 4'lü üçüncü grup -> D8, D9, D10, D11
  • Tuş Takımı 2 İlk 4 kablo -> devre tahtasında 4'lü ilk grup -> D0, D1, D2, D3
  • Tuş Takımı 2 İkinci 4 kablo -> devre tahtasında 4'lü dördüncü grup -> D12, D13, SDA, SCL
  • Tuş Takımı 3 İlk 4 kablo -> devre tahtasında 4'lü ikinci grup -> D4, D5, D6, D7
  • Tuş Takımı 3 İkinci 4 kablo -> devre tahtasında 4'lü üçüncü grup -> D8, D9, D10, D11
  • Tuş Takımı 4 İlk 4 kablo -> devre tahtasında 4'lü ikinci grup -> D4, D5, D6, D7
  • Tuş Takımı 4 İkinci 4 kablo -> devre tahtasında 4'lü dördüncü grup -> D12, D13, SDA, SCL

Resimde 6 set 8 telimiz var. İlk 2 tuş takımı 1 ve 2'den, ikinci 2 Pixl.js'ye ve üçüncü 2 tuş takımı 4 ve 3'e gidiyor.

Adım 3: Yazılım

Şimdi Pixl'inizin donanım yazılımının güncel olduğundan emin olun, ona Espruino IDE ile bağlanın ve aşağıdaki kodu yükleyin. IDE bağlantısını kesin ve işiniz bitti!

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

// Klavye için Tuş Haritaları

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

/* Tuş haritasındaki bir karakter >=128 ise, 128 çıkarın ve bu dizide çok karakterli anahtar kodları arayın*/ var KEYEXTRA = [String.fromCharCode(27, 91, 68), // 0x80 left String.fromCharCode(27, 91, 67), // 0x81 right String.fromCharCode(27, 91, 65), // 0x82 yukarı String.fromCharCode(27, 91, 66), // 0x83 aşağı String.fromCharCode(27, 91, 53, 126), // 0x84 sayfa yukarı String.fromCharCode (27, 91, 54, 126), // 0x85 sayfa aşağı]; // Shift status var hasShift = false; function setShift(ler) { hasShift = s; // ekrana kaydırma göstergesi çiz if (hasShift) { g.setColor(1); g.fillRect(105, 0, 128, 6); g.setColor(0); g.drawString("SHIFT", 107, 1); g.setColor(1); } başka { g.setColor(0); g.fillRect(105, 0, 128, 6); g.setColor(1); } g.flip(); }

// Gerçek bir anahtarı bir karakter dizisine dönüştürün

// Ve Loopback'e (konsolun olduğu yere) gönder function handleKeyPress(e) { var kx = e>>3; var ky = e&7; if (ky>3) { // uzun satıra çevir kx+=8; ky-=4; } var key = hasShift ? KEYMAPUPPER[ky][kx]: KEYMAPLOWER[ky][kx]; if (key=="\x01") { setShift(!hasShift); } başka { setShift(yanlış); if (key && key.length) { if (key.charCodeAt(0)>127) key = KEYEXTRA[key.charCodeAt(0)-128]; Terminal.inject(anahtar); } } }

// tuş takımını ayarla

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

Adım 4: Kullanmak

Onu Kullanmak!
Onu Kullanmak!

Şimdi çalışıyor:

  • Klavye bir seferde yalnızca bir basışı algılayabilir, bu nedenle Shift büyük harfleri değiştirir (sağ üstte bir gösterge ile) ve bir harf yazmak küçük harfe döner. Shift tuşunu basılı tutarken başka bir tuş çalışmaz.
  • Yazmak oldukça zahmetli olabilir, bu nedenle sözcükleri otomatik olarak doldurmak için mümkün olduğunca Sekme tuşunu (solda) kullanın!
  • Ekran grafikleri g değişkenindeki yöntemlerle elde edilebilir - örneğin, g.fillRect(20, 20, 40, 40) veya g.clear().
  • Klavye için çok fazla IO kullanılır, ancak yine de harici donanımı bağlamak için kullanabileceğiniz A0, A1, A2 ve A3 pinlerine sahipsiniz.
  • reset(), klavye işleme kodunuz da dahil olmak üzere her şeyi sıfırlayacaktır. Bunu önlemek için, Web IDE'nin iletişim seçeneklerinde sıfırlandıktan sonra bile gönderme sırasında kaydetmeyi açın ve yeniden yükleyin.
  • Bilgisayarınız şaşırtıcı derecede güç açısından verimlidir - tek bir CR2032 pil kapalıyken yaklaşık 20 günlük pil ömrü bekleyebilirsiniz - her zaman açık!

Önerilen: