İyi günler, bugün kopyalama için bir cihaz oluşturma fikrini aldım elektronik Dokunmatik bellek veya ibuttom gibi tuşlar. “Hap” olarak da bilinir. Bu tür tuşlar, zaten oldukça eski olmasına rağmen, temassız Rfid ile değiştirildiler, ancak hala interkomlar veya hırsız alarmları için kullanılıyorlar. Cihazımızın temeli Arduino Uno. Arduino uyumlu başka herhangi bir kart kullanabilirsiniz. Cihazımızı bilgisayar olmadan bağımsız olarak kullanabilmek için 6 ila 12 voltluk bir güç kaynağına ihtiyacınız var. Cihazın durumunu belirtmek için WG12864B grafik ekranını kullanacağız. Ayrıca bir kasaya ihtiyacımız var, bu durumda Sega kartuşunun kutusu mükemmel.
Bu fikri uygulamak için ihtiyacınız olacak:
- Arduino UNO (Veya Arduino uyumlu kart)
- WG12864B grafik ekran
- Direnç 100 Ohm 0.25 W
- Güç kaynağı 6 - 12 V
- Direnç 2.2 KOhm 0.25 W
- Direnç 10 KOhm 0,25 W
- SEGA konsolunun kartuşundan kutu
- elektrik bandı
- bağlantı telleri
- Düğme
- Küçük bir parça paslanmaz çelik
- metal makas
- kırtasiye bıçağı
- havya
- Lehim, reçine
- Çift taraflı bant
Adım 1 Ibuttom anahtarlarının kendileri hakkında biraz.
Netleştirmek için iButton sadece yuvarlak paslanmaz çelik bir kasa içine sıkışmış bir yonga. Kasa çapı 16,3 mm. Paslanmaz çelik kasa darbelere, kire ve neme karşı dayanıklıdır. Muhafaza standardına iButton MicroCan denir. İki standart kalınlıkta mevcuttur: 3,1 mm (F3 sürümü) ve 5,9 mm (F5 sürümü). Mikro devre ana cihazın veri hattından güç alır. Kapağın çapı tüm versiyonlar için aynıdır. Bu nedenle, aynı okuma kabı herkes için uygundur. Anahtarlarımızın blok şeması:
Tuşlar yeniden yazılabilir ve değiştirilemez. Bir kopya oluşturmak için, sırasıyla yeniden yazılabilir olmanız gerekir. 3 etiket sürümü vardır: RW1990, TM08v2 ve TM-08 VZT F. İçlerindeki mikro devrede farklılık gösterirler. En yaygın RW1990. Onlar aliexpress veya bir yangın alarm perakende mağazasından satın alınabilir.
Adım 2 Ekranı.
128 x 64 piksel çözünürlüğe sahip bir sıvı kristal ekran kullanacağız. Çoğu ks0107 / ks0108 yongalarında çalışır, bu nedenle bir uyumluluk sorunu olmamalıdır. Tüm bu ekranlar 4 tipe ayrılabilir. Farklı bağlantı:
WG12864B3 V2.0'ı almak en iyisidir, hem Çin hem de Rus mağazalarında kolayca bulunabilir. Birkaç arka plan aydınlatması olabilir, ancak bu işlevselliği hiçbir şekilde etkilemez.Ayrıca iki bağlantı seçeneği vardır: paralel ve seri. Paralel tip seçerken, 13 serbest Arduino pinine ihtiyacımız var. Sıralı seçin. Burada sadece 3 sonuç yer almaktadır. Ve beslenme hakkında unutma:
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - 100 Ohm direnç üzerinden - + 5V
20 (BLK) - GND
Ekranın parlaklığı, ekranla birlikte tahtada bulunan bir potansiyometre ile düzenlenir. Öyleyse - parlaklığı ayarlama yeteneği yoktur, ancak bu nadiren olur:
Ekran arkadan aydınlatma voltajını azaltmak için 100 ohm'luk bir direnç kullanılır. Telin arka ışığı besleyen bölümüne yerleştiririz:
Adım 3 Barındırma ve okuma fincan.
Böylece bir "dzhigurdy" yok ve her şey normal görünüyor, davayı üretmeye başlayacağız. Arduino Uno ve ekrana uyan herhangi bir plastik kutu mükemmel. En iyi çözüm bir kartuş kutusudur.
Döngü kutusunu kesin ve filmi çıkarın:
Bir büro bıçağı alıp yuvaları kesmeye başlıyoruz. İlk olarak, kutunun üstündeki en büyük olanı 37x69 boyutunda kesin. Ekran için gereklidir.
Kutunun içine çift taraflı yapışkan bant yapıştırın:
Şimdi okunabilir bir bardaktan şaşkınız. Bitmiş olanı satın alabilir ve kullanabilirsiniz. Bu en kolay seçenektir. Bu kupayı kendim nasıl yapacağımı göstereceğim. Paslanmaz çelikten iki dikdörtgen kesiyoruz: 20x20 mm ve 20x8 mm:
Ekranın altına küçük bir yuva yapıyoruz ve oraya daha büyük bir dikdörtgen yerleştiriyoruz:
Ve kenarları bükün:
Ve arka tarafta, negatif temas plakasını düzeltmek için de yapıyoruz:
Artı olarak, bir yuva da yaparız ve ona pozitif bir temas ekleriz:
İçeriden, kişiler şöyle görünür:
Önceden yapıştırılan bantta ekranı tutturuyoruz:
Dışarıda şöyle olmalı:
Kutunun içine, ekranın altına Arduino'yu yerleştiriyoruz:
USB ve güç jakları için yuvalar oluşturmayı unutmayın:
Modları okuma ve yazma arasında değiştirmek için düğmenin çıktısını alın:
Adım 4 Beslenme konusunu çözün.
Cihazımızın çalışması için ona güç vereceğiz. Bunun için bir güç kaynağına ihtiyacımız var. Voltaj 6 volt ile 12 arasında olmalıdır. Sondaki fiş Arduino soketine takılmalıdır:
Bir güç kaynağı olmadan yapabilirsiniz. Aygıtı bir USB bilgisayardan çalıştırabilirsiniz. İsterseniz, 4 AAA boyutunda pil için bir bölme alabilir ve içine yerleştirebilirsiniz. Daha sonra pin çıkışı Arduino kartının Vin'ine bağlanmalıdır.
Adım 5 Hepsini bir araya getirmek.
Okuma kasesi şemaya göre bağlanır:
Kasenin pozitif temasını pim 7'ye bağlayarak 2.2K dirençten VCC'ye çekiyoruz. Düğmeyi GND'ye 10K direnç çekerek pin 6'ya bağlarız.
Adım 6 Yazılım bölümü.
Arduino IDE'yi indirin ve yükleyin
Dokunmatik bellekle çalışmak için One Wire kitaplığı kullanılır. Ayrıca Arduino IDE'ye indirilmesi ve kurulması gerekir:
U8glib kütüphanesini kullanarak ekranı başlatın:
Kütüphaneler olmadan, bir çizim derlemek ve Arduino'ya yüklemek başarısız olur. Aşağıdaki şekillerde hareket ediyoruz: indirilen arşivlerin sıkıştırmasını açın ve bu dosyaları “kütüphaneler” adlı bir klasöre taşıyın. Programlama ortamı kurularak bulunabilir.
Arşivi kroki ile indirin:
Arşivi açın, çizimi Arduino Ide'de açın ve Arduino'da doldurun.
Adım 7 Anahtar kopyalama işlemi.
Cihazımızı açtığınızda, ekranda "Oku" ve evrensel tuş görünür. Bu anahtar çizimde yazılmıştır. Onu internette buldum. Şahsen, ne kadar evrensel olduğunu kontrol etmedim. Bu durumda, cihazımız kullanıma hazırdır:
Kopyalanacak anahtarı uygularız. Bu tuş ekranda görüntülenmelidir. Örneğin, sahip olduğumlardan birini aldım:
Şimdi düğmeye basarsanız, ekrandaki yazıt "Yaz" olarak değişmelidir. Ayrıca kaydedilecek olan tuş da görüntülenir:
Üzerine bir boşluk yazacağımız bir tablet koyduk ve ekrandaki yazının tekrar "Oku" olarak değişmesini bekleyin. Bu olursa - kayıt başarılı oldu. Kontrol etmek için, kapağı tekrar takın, cihaz okumalı ve anahtarı göstermelidir.
Evrensel bir anahtar yazmak istiyorsanız, en başında, yazıt "Yaz" olarak değiştirildiğinde düğmeye basın, bir boşluk ekleyin.
Cihaz ayrıca tuşlar ve seri port üzerinden okuma ve kopyalama işlemleri hakkında bilgi gönderir.Arduino Ide terminalini veya başka bir terminal programını açabilir ve içindeki kopyalama işlemini izleyebilirsiniz.
Çizimde kaydedilmiş olan evrensel anahtar değiştirilebilir. Bunu yapmak için çizimi açın ve satırı düzenleyin:
bayt ReadID [8] = {0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F};
Ama bu o kadar basit değil. Son bayt anahtar sağlama toplamı veya Döngüsel Artıklık Kontrolüdür (CRC). Bu durumda, 2F'dir. Bu miktar olmadan, okuyucular anahtarı kabul etmez. CRC özel bir algoritma ile hesaplanır. Bu algoritmayı kendiniz bulabilir ve hesaplayabilirsiniz, ancak lütfen cihazımızı kullanın. İlk bayt aile kodudur, her zaman 01 olmalıdır. Daha sonra, baytları evrensel anahtar olarak yazmak istediğimiz dizeye yazar. Krokiyi doldurun. Bu anahtarı diske yazıyoruz ve terminal penceresini açarken tekrar okumaya çalışıyoruz. Terminalde, anahtarımızı CRC'nin sonunda göreceğiz. Bu istenen sağlama toplamıdır. Şimdi çizimi tekrar düzenleyin. Aynı satırdaki son bayt yerine, CRC'den sonra okuma sırasında alınan baytı yazın. Yine, çizimi doldurun ve diske yeni bir anahtar yazın. Terminal penceresini açın, anahtarımızı okumaya çalışın. Anahtarın son baytı, CRC'den sonra yazılan baytla eşleşmelidir.