Elgato yeni Stream Deck Pedalını duyurduğunda, yapımcı dünyası “Hey, bunlardan birini daha ucuza yapabilirim” dedi. Ve o savaş çığlığıyla güvenimize ulaştık Ahududu Pi Pico (bizim durumumuzda Adafruit’in KB2040’ı) ve kendi alternatifimizi oluşturmak için anahtar kutusuna baskın düzenledik.
Elgato’nun Akış Güverte Pedalı, akışlarınız sırasında eylemleri tetiklemek için kullanılan üç pedallı bir denetleyicidir. Bu özelliği, gitar efekt pedallarına yönelik üç ağır iş anahtarı ve Adafruit’in CircuitPython’unu çalıştıran bir Raspberry Pi Pico kullanarak taklit edeceğiz. CircuitPython ile bir USB klavye oluşturabilir ve tuş vuruşlarını, hatta tüm basma dizilerini tek bir düğmeye atayabiliriz.
Pico Pedalımızı oluşturup kodladıktan sonra, bir sonraki akışımıza hazır olarak onu OBS ile nasıl kullanacağımızı öğreneceğiz.
Bu proje için ihtiyacınız olacak
Pico Pedalını Oluşturmak
Bu projenin devresi son derece basittir. Üç GPIO pimi (2,3 ve 4) ve ortak bir Toprak (GND) bağlantısı kullanır. Butonları 2,3 ve 4 pinlerine bağlıyoruz, ardından her butonu Pico üzerinde farklı bir GND pinine bağlıyoruz. Tüm GND pinleri tek bir GND’ye bağlanarak ortak bir referans noktası oluşturur.
Muhafazanın kablolanması ve hazırlanması
Ayrıntılara girmeden önce, işte güvenlikle ilgili bir kaç kelime. Lehimleme öğrenmek için harika bir beceridir, ancak uygun göz koruması taktığınızdan ve iyi havalandırılmış bir alanda lehim yaptığınızdan emin olun. Plastik veya metali delmek, “talaş”, dişler ve delinmiş malzeme parçaları üretecektir. Göz koruması takın ve matkabı başlatmadan önce konumlarınızı iki kez kontrol edin. Muhafazanın sıkıca yerinde tutulduğundan emin olun ve daha büyük delikler açmadan önce daima bir pilot delik açın.
Gitar pedallarında yaygın olarak kullanılan anlık ayak pedallarını kullanmayı tercih ettik. Üzerine damgalanacak şekilde tasarlanmıştır ve bu nedenle en uzun süre hayatta kalma şansı en yüksektir. Kablolama basittir. Kutupları yoktur, basıldığında bağlantı kurarlar. Bu projede anahtarın bir tarafını bir GPIO pinine bağlarlar, Pico’nun dahili dirençlerini kullanarak diğer tarafa Toprak’a (GND) bağlı olarak çekilirler. Butona basarak iki taraf arasındaki bağlantıyı kuruyoruz, GPIO pinini aşağıya çekiyoruz ve bir tuşa basmayı tetikliyoruz.
Lehimlemeye bir alternatif seçtik. Kıvrımlı terminaller, telleri yerinde tutmak için sürtünme kullanan lehimsiz bir yöntemdir. Kıvrımlar teli plastik bir manşonun içinde tutar. Manşonda metal bir terminal var. Kıvrımı bir alet kullanarak sıkıyoruz ve teli yerine kilitliyor. Sıkma terminali daha sonra anahtar kontakları üzerine kayar. Kıvrımlar lehimlemeye göre daha hızlı ve kolaydır, ancak bunlar ek bir maliyettir.
Bu anahtarların uygun bir muhafaza içinde sabitlenmesi gerekir. Tipik olarak plastik bir muhafaza kullanırdık, ancak büyük para ödemezsek dayanıksız plastik alacağız. Ağır hizmet tipi ABS plastik kasalar yaklaşık 10 ABD doları karşılığında bulunabilir, ancak endüstriyel, ağır hizmet tipi ayak pedalı estetiğine uyması için alüminyum bir muhafaza seçtik.
1. Muhafazanın kapağındaki üç noktayı ölçün ve her biri için bir pilot delik açın. Kasanın ölü noktasını başlangıç noktamız olarak seçtik, ardından merkezden her iki yönde 5 cm uzakta ölçtük. Geriye dönüp baktığımızda, diyelim ki 7 cm daha uzağa giderdik ve bir çizgi yerine noktalardan oluşan bir üçgen oluştururduk.
2. Muhafazanın yan tarafına taşıyın ve USB kablosu için başka bir pilot delik açın.
3. Daha büyük bir matkap ucuyla değiştirin ve tüm delikleri büyütün. Bunu birkaç kez yapın devam etmeden önce.
4. Kademeli matkap ucuyla değiştirin ve daha sonra ayak anahtarı düğmelerinin çapına uyacak şekilde üç kapak deliğini büyütün. Bizim durumumuzda 12 MM anahtarlarımız vardı, bu nedenle matkap ucundaki adımı tanımlamak için bir parça bant kullandık.
5. Deliklerden keskin kenarları çıkarmak için bir dosya kullanın.
6. Kalan pilot deliği büyütmek için kademeli matkap ucunu kullanın USB kablonuzun en küçük ucunun boyutuna uyacak şekilde.
7. Keskin kenarları çıkarmak için deliği eğeleyin. Bu, deliğe sürtüneceği ve hasar görebileceği için USB kablosu için önemlidir.
8. Uygun bir USB kablosunu delikten geçirin, Pico’nuza bağlayın ve gerilmeyi azaltmak için büyük bir düğüm ekleyin. Düğüm, USB kablosunun yanlışlıkla çıkarılması riskini azaltacaktır.
9. Düğme tellerini sabitleyin devre şemasına göre vidalı terminale.
Şimdi vidalı terminal aracılığıyla Raspberry Pi Pico’ya bağlı üç düğmeniz olmalıdır. Kod test edilene kadar kapağı kapatmayın.
CircuitPython ve kitaplıkları yükleyin
CircuitPython’u kurmak son derece basittir ve Adafruit’in bunun nasıl yapılacağına dair harika bir kılavuzu vardır. Takip et Adafruit’in talimatları En son sürümü yüklemek için.
Raspberry Pi Pico’muz artık dosya yöneticisinde bir sürücü olarak görünüyor. Sürücüye CIRCUTPY adı verilir ve orada bir dizi dosya ve klasör buluruz. Şu anda, odaklanmamız gerekiyor kitap Kitaplıklarla dolu bir ZIP dosyası indirmemiz ve projelerimiz için doğru dosyaları yüklememiz gerekiyor.
1. En son kitaplık paketini indirin CircuitPython sitesinden.
2. Dosyaları ayıklayın Masaüstünüze.
3. adafruit_hid klasörünü kopyalayın çıkarılan dosyalardan lib klasörüne DEVRE sürücünüzde.
Pico Pedalının Kodlanması
1. code.py dosyasını açın tercih ettiğiniz düzenleyicide CIRCUTPY sürücüsünün kökünde bulunur.
2. Herhangi bir kodu sil dosyanın içinde.
3. GPIO erişimini etkinleştirmek için iki kitaplığı içe aktarın. İlk kart, GPIO pinlerine bağlanmak için temel bir araçtır, ikincisi ise pinlerin durumunu kontrol etmek için bir araç sağlar.
import board
from digitalio import DigitalInOut, Direction, Pull
4. ABD düzeni USB klavyesini ve tuş vuruşlarını taklit etmek için dört kitaplığı içe aktarın.USB HID ((İnsan Arayüzü Aygıtı) kitaplığı Pico’muzun bir klavye olmasını sağlar.Kalan kitaplıklar klavyeyi ABD düzenini kullanacak ve tuş vuruşlarını göndermek için tuş kodunu kullanacak şekilde yapılandırır.
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode
5. Son olarak zaman kitaplığını içe aktarın. Bu kitaplık, koda bir duraklama eklemek için kullanılır. Bu, yanlışlıkla çift tuşa basılma (geri dönme) riskini azaltır.
import time
6. USB HID işlevi görecek bir klavye nesnesi oluşturun.
keyboard = Keyboard(usb_hid.devices)
7. Düzeni ABD olarak ayarlayın.
keyboard_layout = KeyboardLayoutUS(keyboard)
8. Yeni bir nesne oluşturun, bir, pedaldaki ilk düğmeyi temsil etmek için. Bu düğme Pico’nun 2. pinine bağlıdır.
one = DigitalInOut(board.D2)
9. Bir nesneyi kullanarak pini giriş olarak ayarlayın, ve pin 3,3V’de yüksek (açık) olacak şekilde dahili direnci yukarı çekin.
one.direction = Direction.INPUT
one.pull = Pull.UP
10. işlemi tekrarlayın ikinci bir giriş için. Bu sefer değişken olmalı pin 3’e bağlı.
two = DigitalInOut(board.D3)
two.direction = Direction.INPUT
two.pull = Pull.UP
11. Pim 4’e bağlı üçüncü bir giriş için tekrarlayın.
three = DigitalInOut(board.D4)
three.direction = Direction.INPUT
three.pull = Pull.UP
12. Değişken oluştur, geciktir, kodumuzun duraklatılacağı süreyi içermek için. Bir değişken kullanmak, gereksinimlerimize göre süreyi değiştirmeyi kolaylaştırır.
delay = 0.5
13. Döngü oluştur kodumuzu sürekli çalıştırmak için.
while True:
14. Birinci düğmenin durumunu kontrol edecek bir koşullu test oluşturun. Basıldığında, düğme GPIO pini 2’yi (Doğru / YÜKSEK) Toprak’a (GND) bağlayacak ve durumu Yanlış / DÜŞÜK olarak değiştirecektir.
if one.value == False:
15. Bir yazdırma ifadesi ekleyin Düğmeye basmanın kaydedildiğini göstermek için. Bu, atlanabilecek bir hata ayıklama adımıdır, ancak hata ayıklamayı ortadan kaldırdığı için kodun bir baskıyı kaydettiğini kanıtlamayı yararlı buluyoruz.
print("Button 1")
16. Bir dizi tuş basımı gönderin. Bizim durumumuzda CTRL + ALT + A kullandık, ancak bunu istediğiniz herhangi bir tuşa değiştirebilirsiniz ve Adafruit, ihtiyacınız olan tüm anahtarların listesine sahiptir.
keyboard.send(Keycode.CONTROL, Keycode.ALT, Keycode.A)
17. Anahtarları bırakın. Bunu gecikme olmadan yaparak, tuş kombinasyonunu tek bir tuşa basmakla sınırlandırıyoruz.
keyboard.release_all()
18. Birden çok tuşa basma olasılığını azaltmak için bir gecikme ekleyin.
time.sleep(delay)
19. İkinci düğme için işlemi tekrarlayın.
elif two.value == False:
print("Button 2")
keyboard.send(Keycode.CONTROL, Keycode.ALT, Keycode.B)
keyboard.release_all()
time.sleep(delay)
20. işlemi tekrarlayın üçüncü düğme için
elif three.value == False:
print("Button 3")
keyboard.send(Keycode.CONTROL, Keycode.ALT, Keycode.C)
keyboard.release_all()
time.sleep(delay)
21. Döngü tekrarlanmadan önce kısa bir gecikmeyle “Düğmeye basılması bekleniyor” yazdırmak için başka bir koşul ekleyin. Herhangi bir tuşa basılmadığında, else koşulu etkinleştirilir.
else:
print("Waiting for button press")
time.sleep(0.1)
Kodu Raspberry Pi Pico’nuza kaydedin ve CircuitPython kodu yeniden yükleyip çalıştıracaktır. Davayı hemen kapatmayın!
OBS ile Pico Pedal Kullanımı
Open Broadcaster Software (OBS), dikkate değer bir ücretsiz akış aracıdır. OBS ile YouTube, Twitch ve diğer birçok platforma canlı yayın yapabiliyoruz. Daha sonra düzenlemek için videolar da kaydedebiliriz. OBS, farklı kamera açıları, ekran görüntüleri ve diğer video girişleri oluşturmak için Sahneleri kullanır.
Haftalık Raspberry Pi gösterimiz The Pi Cast için birkaç sahne kullanıyoruz. Öne bakan kameramız için bir sahnemiz, bir projeyi göstermek için baş üstü kameralar için bir sahnemiz ve bir görüntü veya veri sayfası akışını göstermek için bir sahnemiz var. Sahneleri değiştirmek için kısayol tuşlarını kullanarak aralarında hareket etmek üzere programlanmış bir tuş takımımız var. Pico Pedalı da aynı şekilde kullanılabilir. Onlar için kısayol tuşları oluşturmak için sahneleri önceden oluşturmuş olmanız gerekir.
1. OBS’yi aç ve Ayarlar’a gidinsağ alt köşede bulunur.
2. Kısayol Tuşları’na tıklayın.
3. Kısayol tuşu eklemek istediğiniz sahneye ilerleyin. Örneğimizde Face’e gidiyoruz.
4. Sahneye geçmek için kara kutuya tıklayın.
5. Pedalınız üzerinde, sahneye atamak istediğiniz düğmeye basın. OBS, bu düğmeye basıldığını gösterecek şekilde güncellenecektir.
6. Uygula ve Tamam’ı tıklayın kısayol tuşunu kaydetmek için.
7. işlemi tekrarlayın ek iki düğme için.
Artık, bir sonraki akışınız için hazır olan OBS’ye eşlenmiş pedalınızın düğmelerine sahipsiniz. Artık klavyeye dokunmadan sahneden sahneye sorunsuzca geçebilirsiniz.
Komple Kod Listeleme
import board
from digitalio import DigitalInOut, Direction, Pull
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode
import time
keyboard = Keyboard(usb_hid.devices)
keyboard_layout = KeyboardLayoutUS(keyboard)
one = DigitalInOut(board.D2)
one.direction = Direction.INPUT
one.pull = Pull.UP
two = DigitalInOut(board.D3)
two.direction = Direction.INPUT
two.pull = Pull.UP
three = DigitalInOut(board.D4)
three.direction = Direction.INPUT
three.pull = Pull.UP
delay = 0.5
while True:
if one.value == False:
print("Button 1")
keyboard.send(Keycode.CONTROL, Keycode.ALT, Keycode.A)
keyboard.release_all()
time.sleep(delay)
elif two.value == False:
print("Button 2")
keyboard.send(Keycode.CONTROL, Keycode.ALT, Keycode.B)
keyboard.release_all()
time.sleep(delay)
elif three.value == False:
print("Button 3")
keyboard.send(Keycode.CONTROL, Keycode.ALT, Keycode.C)
keyboard.release_all()
time.sleep(delay)
else:
print("Waiting for button press")
time.sleep(0.1)