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 :/
@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?
@zetisdead: daj równolegle do sygnału diodę krzemową katodą do masy, to ci ovraniczy sygnał do 0.7V. tak na chwilę żeby d zobaczyć, czy to jest problemem
@zetisdead: Układ na płytce stykowej wygląda jak na tym zdjęciu (tam na środku jest multiplekser analogowy, ale z powodu tego problemu uprościłem schemat i go nie uwzględniałem, żeby sprawdzić działanie bez niego). @Felonious_Gru: czy przez "przebijanie sufitu" masz na myśli, że jest zbyt duże napięcie i przez to aktywuje się ten drugi pad?
@Krylan: No to tak, przetworniki piezo to czysta pojemność - impedancja rzędu MOhm. Masz jakieś jfety pod ręką ? Dwa wtórniki by chyba uratował sytację
@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.
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
tak na chwilę żeby d zobaczyć, czy to jest problemem
@Felonious_Gru: czy przez "przebijanie sufitu" masz na myśli, że jest zbyt duże napięcie i przez to aktywuje się ten drugi pad?
@Krylan: taka sytuacja nie jest niemożliwa
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.
możesz też dać po prostu diody zenera na odpowiednie napiecie, albo zrobić to zgodnie ze sztuką, jak sugerował @rewida17 ( ͡° ͜ʖ ͡°)
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ę