İçindekiler:

Makey Makey'e 3$ Alternatif: 4 Adım (Resimlerle)
Makey Makey'e 3$ Alternatif: 4 Adım (Resimlerle)

Video: Makey Makey'e 3$ Alternatif: 4 Adım (Resimlerle)

Video: Makey Makey'e 3$ Alternatif: 4 Adım (Resimlerle)
Video: Makey Makey - Practical and Fun Computer Control 2024, Kasım
Anonim
Makey Makey'e 3 Dolar Altern-t.webp
Makey Makey'e 3 Dolar Altern-t.webp
Makey Makey'e 3 Dolar Altern-t.webp
Makey Makey'e 3 Dolar Altern-t.webp

Makey Makey, bir USB klavyeyi taklit eden ve daha sonra oyunlar ve eğitim projeleri için bir kontrolör olarak kullanılabilecek herhangi bir iletken şeyden (alüminyum folyo, muz, oyun hamuru, vb.). Makey Makey'in iki dezavantajı vardır: (1) maliyet ve (2) toprak bağlantısı ihtiyacı.

Bu proje, 2 dolarlık STM32F1 kartı ve kapasitif algılama kullanan ucuz bir alternatiftir. Makey Makey'nin 12'sinin aksine yalnızca 10 girişi vardır, ancak bir klavyeyi taklit etmenin yanı sıra bir USB gamepad denetleyicisini (dijital joystick) taklit edebilme avantajına sahiptir.

Parçalar:

  • "siyah hap" STM32F103c8 kartı (Aliexpress'te 1,90 $; daha fazla bilgi burada)
  • breadboard (Aliexpress'te 1 dolardan az) ve atlama telleri; veya sadece bir grup dişi-erkek dupont konektörü (40'lık bir paket için Aliexpress'de 0,70 ABD doları)
  • ataç, timsah ataşları vb.

Aletler:

  • bilgisayar
  • İlk kart programlaması için UART-USB adaptörü (Ucuz bir CH340 ünitesi gibi bir Arduino Uno veya Mega işi yapacak)
  • lehimleme başlıklarını tahtaya lehimlemek için havya (lehimlemeden bir grup test klipsi de kullanabilirsiniz, ancak bazen düşerler)

Yazılım, sensör başına STM32F1 kartında tek bir pim ile kapasitif algılamaya izin veren ADCTouchSensor kitaplığımda bulunan örnek bir çizimdir (martin2250'nin AVR kitaplığına dayanmaktadır).

Uyarı: Kuru havalarda veya statik bir sorun olduğunda (örneğin bir halıda), STM32F1 kartında elektrostatik hasara yol açmamak için açıktaki metal konektörlere dokunmayın. Patates, muz, oyun hamuru vb. malzemelerin direncinin tahtanın korunmasına yardımcı olacağını umuyorum ancak çıplak alüminyum folyo kullanırsanız sorun yaşayabilirsiniz. Öte yandan, yönetim kurulu sadece 1,90 dolar.

Eğitim etkinliği fikirleri:

  • Hangi öğelerin iletken olduğunu ve kontrol yüzeyleri olarak kullanılabileceğini bulmak için deney yapın. (Örn. kurşun kaleme karşı pastel boya; oyun hamuruna karşı mum.)
  • Ev yapımı bir kumanda kullanan Scratch oyunları yazın.
  • Projeye güç sağlayan Arduino kodunu fare tıklaması/hareketine, diğer tuşlara, dörtten fazla joystick yönüne vb. izin verecek şekilde değiştirin.

Adım 1: Geliştirme Kartına Bootloader yükleyin

Geliştirme Kartına Bootloader yükleyin
Geliştirme Kartına Bootloader yükleyin
Geliştirme Kartına Bootloader yükleyin
Geliştirme Kartına Bootloader yükleyin
Geliştirme Kartına Bootloader yükleyin
Geliştirme Kartına Bootloader yükleyin

Black Pill geliştirme sisteminin ortasındaki iki üç pimli başlığı (B0-/center/B0+; B1-/center/B1+) ve uzun başlıkları (aceleniz varsa veya Çocukların kafasını karıştırabilecek gereksiz pinlerden kaçınmak için A0-A10 ve G için pinlere ihtiyacınız var).

3.3v cihazlarla uyumlu bir UART - USB köprüsüne ihtiyacınız var. Aliexpress'ten 0,66 dolara bir ch340 sipariş edebilirsiniz, ancak etrafta oturan bir Arduino Mega nakavt vardı ve çevrimiçi bulduğum harika bir numara vardı. Bir Arduino'da sıfırlama pimini kısa bir kabloyla toprağa kısa devre yaparsanız, UART - USB köprüsü olur - çizim gerekmez. Tek hile, RX ve TX etiketlemesinin tersine çevrilmesidir: Arduino'nun "RX" pimi iletir ve "TX" pimi alır. Arduino 5v'de ve Black Pill 3.3v'de çalışıyor, ancak stm32f103'teki PA9 ve PA10 pinleri 5V toleranslıdır, bu yüzden bu bir problem olmamalı.

Lehimlediğiniz başlıklara B0+'dan merkeze ve B1-'den merkeze bir jumper koyun.

Aşağıdaki bağlantıları yapın:

  • PA9 - UART köprüsü RX (Arduino hilesini kullanıyorsanız "TX")
  • PA10 - UART köprüsü TX (Arduino hilesini kullanıyorsanız "RX")
  • G'den UART'a köprü zemini

Bir breadboard veya erkek-dişi jumper kullanabilirsiniz veya başlıkları lehimlemeden önce yapmak isterseniz test kliplerini kullanabilirsiniz (fotoğraftaki gibi).

Önyükleyici ikili dosyasını indirin. Generic_boot20_pb12.bin'i istiyorsunuz.

Windows'ta ST'nin Flash Yükleyici Göstericisini yükleyin. Linux'ta (ve komut satırı araçlarını tercih ederseniz belki OS X ve hatta Windows'ta), bunun yerine bu python betiğini kullanın, ancak talimatlarım Windows için olacaktır. UART köprünüzü bilgisayarınıza bağlayın.

Black Pill'i USB bağlantı noktası üzerinden çalıştırın (bilgisayarı kullanıyorsanız, tanınmayan bir USB aygıtından şikayet edecektir; bunu dikkate almayın). Flash Loader Göstericisini başlatın. UART köprünüz için COM bağlantı noktasını seçin. Varsa "Korumayı kaldır"ı seçin. 128kb flash sürümü yerine 64kb'yi seçin. Ve bootloader ikili dosyasını yükleyin.

Her şeyin gücünü kesin ve ardından jumper'ı B0+/merkezden B0-/merkeze taşıyın. Artık Arduino IDE ile kullanabileceğiniz bir önyükleyiciniz var.

Adım 2: Arduino IDE'yi Kurun

Arduino IDE'yi Kurun
Arduino IDE'yi Kurun

En son Arduino IDE'nin kurulu olduğunu varsayıyorum.

Araçlarda | panolar | Boards Manager, Arduino Zero desteğini kurun (aramaya Zero yazın, bulunan girişe tıklayın ve ardından Kur). Evet, bir Zero ile çalışmıyorsunuz, ancak bu doğru gcc derleyicisini yükleyecektir.

Ardından, stm32duino çekirdeğini indirin. Windows'ta, zip dosyasını indirmenizi tavsiye ederim, çünkü dosyaları teslim aldığımda (kuşkusuz, svn ile), Windows araçları dizinindeki düzeltilmesi gereken dosyalarla ilgili bazı izin sorunları yaşadım. Şubeyi Arduino/Hardware/Arduino_STM32'ye koyun (böylece Arduino/Hardware/Arduino_STM32/STM32F1 vb. klasörlere sahip olursunuz) Windows'ta sürücüleri\win\install_drivers.bat çalıştırarak yükleyin.

Adım 3: CapacitiveController Sketch'i kurun

CapacitiveController Sketch'i kurun
CapacitiveController Sketch'i kurun
CapacitiveController Sketch'i kurun
CapacitiveController Sketch'i kurun
CapacitiveController Sketch'i kurun
CapacitiveController Sketch'i kurun

Arduino IDE'de Sketch | Kitaplığı Dahil Et | Kütüphaneleri Yönetin. "ADCTouchSensor" ifadesini arayın ve 0.0.6 veya daha yeni sürümünü yükleyin. "USBHID" kelimesini tekrarlayın ve arayın ve USBHID_stm32f1 kitaplığımı yükleyin.

Dosya Seç | Örnek | ADCTouchSensor | Kapasitif Denetleyici.

Araçlar altında aşağıdaki ayarlara sahip olduğunuzdan emin olun:

  • Anakart: Genel STM32F103C8
  • Yükleme yöntemi: STM32duino Önyükleyici

Kartı bilgisayara takın ve sağ ok "yükle" düğmesini tıklayın. Konsolda yükleme mesajı göründüğünde kartı sıfırlamanız (üzerindeki sıfırlama düğmesine basın) gerekebilir.

Adım 4: Bağlantılar ve Düğmeler

Bağlantılar ve Düğmeler
Bağlantılar ve Düğmeler
Bağlantılar ve Düğmeler
Bağlantılar ve Düğmeler
Bağlantılar ve Düğmeler
Bağlantılar ve Düğmeler

Aygıtın fişi takılı değilken, STM32F1 pinlerinden kontrol yüzeylerinize giden kabloları çalıştırın. Timsah ataşları, ataçlarla veya sadece nesnelere atlama telleri yapıştırarak bağlanın. Bir breadboard veya kadından erkeğe atlama telleri kullanabilirsiniz. Bilgisayarda Tetris için klavye modu ve yön tuşlarını kullandık; Tablette Pac Man için bir USB OTG kablosu ve joystick modu kullandık.

CapacitiveController çizimi, açıldığında kapasitif sensörleri kalibre eder. Açarken kontrol yüzeylerine, bunlara giden kablolara veya pimlere dokunmadığınızdan emin olun. Ve herhangi bir kontrol yüzeyini değiştirirseniz, fişi çıkarıp tekrar takarak veya karttaki beyaz sıfırlama düğmesine basarak yeniden kalibre etmeniz gerekir.

Buradaki uygulamaların çoğu ve diğerleri çalışacaktır. Ayrıca kaç tane Makey Makey projesini uyarlayabileceğinizi de görebilirsiniz.

Bazı iyi kontrol yüzeyleri:

  • meyve ve sebzeler
  • oyun hamuru
  • alüminyum folyo (yüksek statik koşullar hariç)
  • kağıt üzerinde çok kurşun kalemle çizilmiş düğmeler/bağlantılar (bağlantı çizgileri çok uzun olmamalıdır - fotoğrafta, en alttaki düğme çalışmıyor)
  • çok daha fazlasını deneyin! (bazı yüzeyler için kaynak kodundaki 25 in if (sensors->read() > 25) satırında ince ayar yapmayı da deneyebilirsiniz)

Klavye modu bağlantıları:

  • A10'un bağlantısını kesilmiş halde bırakın
  • A0: boşluk
  • A1: yukarı
  • A2: sol
  • A3: aşağı
  • A4: sağ
  • A5: w
  • A6: bir
  • A7: s
  • B0: g
  • B1: f

Gamepad/Joystick modu bağlantıları:

  • Joystick modunu ayarlamak için A10'u Toprağa (G) bağlayın
  • A0: düğme 1
  • A1: yukarı
  • A2: sol
  • A3: aşağı
  • A4: sağ
  • A5-A7, B0, B1: düğmeler 2-6

İpucu:

Erkek-dişi jumper kullanıyorsanız, joystick modu A10-toprak bağlantısını iki jumper'ın erkek uçlarını birbirine sıkıştırarak ve böylece dişi-dişi jumper oluşturarak yapabilirsiniz.

Önerilen: