Wpis z mikrobloga

Mam problem z #elektronika, nad którym głowię się już dosyć długo, a to dopiero podstawy.
Robię projekt perkusji elektronicznej i przerzuciłem się z tym na Raspberry Pi Pico (wcześniej używałem Arduino Uno). Mam napisany bardzo prosty program w CircuitPython, widoczny na screenie poniżej – po prostu odczytuję wartości z dwóch pinów analogowych i jeśli ich wartość jest powyżej ustalonego progu, to wtedy wysyłany jest sygnał MIDI. Pady perkusyjne to kawałki deski z przetwornikiem piezoelektrycznym i rezystorem, obłożone skórą. Podłączane są za pomocą mini-jacków do gniazd podpiętych na płytce stykowej (jeden pin z gniazda idzie do pinu analogowego w Raspberry, a drugi do masy).

Problem polega na tym, że uderzając w któryś z padów, czasami uruchamia się drugi (choć go w ogóle nie ruszam). Na pokazanym przykładzie pomarańczowa linia na wykresie to pad, w który uderzałem, a niebieska to ten drugi, u którego również widać wzrosty. Próbowałem znaleźć przyczynę tego problemu, np. umieszczając pady w innych miejscach (na wypadek, gdyby to chodziło o drgania biurka, czy coś), ale problem występuje i w takich warunkach. Jedyne co zauważyłem, to że drugi pad się aktywuje zazwyczaj kiedy uderzę w pierwszy wystarczająco mocno, bo przy lekkich uderzeniach (np. tapnięciach palcami) występuje to znacznie rzadziej.
Naprawdę nie wiem, co z tym zrobić, bo wszystko uprościłem jak tylko się da, a i tak nie działa :/

#raspberrypi #elektronikadiy #pytanie #python
Krylan - Mam problem z #elektronika, nad którym głowię się już dosyć długo, a to dopi...

źródło: comment_1624388433HrRa617B3oOgWzuNg9OKjn.jpg

Pobierz
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Krylan: tradycyjne pytanie: schemat połączeń, zdjęcia? Jak długie są kable? Ekranowane? Jakieś obciążenia na wejściach dodałeś, żeby byle zakłócenia nie wyzwalały układu?
  • Odpowiedz
@Felonious_Gru: Po wstawieniu diod na każde z tych gniazd zadziałało – problem zniknął (na wykresie zaczęły pojawiać się znacznie mniejsze wartości, tak z 5-10k, ale już się nie pojawiały niespodziewane wzrosty na nieużywanym padzie). Ogromne dzięki za tę radę :D
Jeszcze tam mam mały problem, że przy uderzeniach się czasami pojawiają dodatkowe "górki", to przez oderwanie/ruch pałeczki od pada, ale to chyba da radę załatwić kondensatorem.
  • Odpowiedz
@Krylan: to mozesz dać kilka diod w szereg, byle napięcie przewodzenia diod bylo niższe niż napięcie vref ukladu (pewnie 3.3v).

możesz też dać po prostu diody zenera na odpowiednie napiecie, albo zrobić to zgodnie ze sztuką, jak sugerował @rewida17 ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Krylan: Możesz spróbować z funkcją debounce
https://learn.adafruit.com/debouncer-library-python-circuitpython-buttons-sensors/basic-debouncing
Lub
http://zaphod.unpythonic.net/canio-provisional-docs/html/shared-bindings/ulab/filter/index.html
Jeśli chodzi o eliminacje extra sygnałów albo dopisz coś głupiego w stylu jeśli pojawi się ekstra sygnał w czasie takim a takim (10ms?) pomiń go - myślę że jakiś switch/case by dał radę
  • Odpowiedz