Arduino Polska Forum
Refleksomierz - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: "Projekt Arduino Polska" (https://forum.arduinopolska.pl/dzial-projekt-arduino-polska)
+--- Dział: Zarys "Projektu Arduino Polska" (https://forum.arduinopolska.pl/dzial-zarys-projektu-arduino-polska)
+--- Wątek: Refleksomierz (/watek-refleksomierz--1312)

Strony: 1 2


Refleksomierz - apool1998 - 12-02-2017

Witam,chodzi oto że,( posłużę się linkiem z youtube)      https://www.youtube.com/watch?v=PSdKWQx6iwg       I chciałbym zbudować coś na kształt tego aby tak działo jak na załączonym filmie i chciałbym to zrobić w taki sposób że, złączyć 9 przycisków równolegle które umiejscowię na różnych wysokościach a za przyciskami podłącze diody.Które będą " losowane" i po naciśnięciu tam gdzie zapali się dioda od razu losuje następną i wyłącza poprzednią i tak w kółko.Czy możliwe jest wykonanie takiego cuda? Z góry dziękuje za jakąkolwiek pomoc.Pozdrawiam


RE: Refleksomierz - Smaczek - 13-02-2017

Witam,
Możliwe jest "zbudowanie" takiego urządzenia tylko z małą poprawką. Jeżeli połączysz równolegle przyciski to naciśnięcie dowolnego z nich będzie powodować zgaszenie wylosowanej diody. Czyli otrzymasz refleksomierz dla leniwych.
Pozdrawiam.


RE: Refleksomierz - piotr2393 - 13-02-2017

Witam.
Oczywiście, że jest możliwe stworzenie takiego urządzenia, jaką płytkę chcesz wykorzystać do tego projektu? Czy zamierzasz wykorzystać wyłącznie 9 przycisków czy więcej/mniej? Przewidujesz rozwiązanie z naliczaniem błędnych "trafień"?
Pozdrawiam


RE: Refleksomierz - apool1998 - 13-02-2017

(13-02-2017, 18:13)piotr2393 napisał(a): Witam.
Oczywiście, że jest możliwe stworzenie takiego urządzenia, jaką płytkę chcesz wykorzystać do tego projektu? Czy zamierzasz wykorzystać wyłącznie 9 przycisków czy więcej/mniej? Przewidujesz rozwiązanie z naliczaniem błędnych "trafień"?
Pozdrawiam

Witam, mam zamiar wykorzystać najprostsze arduino UNO i ATMege328. Co do przycisków skoro moje założenia były błędne, żeby połączyć 9 przycisków równolegle i działać tylko 1 sygnałem wejściowym. W sumie wystarczające było by 6 przycisków.


RE: Refleksomierz - apool1998 - 13-02-2017

(13-02-2017, 17:17)Smaczek napisał(a): Witam,
Możliwe jest "zbudowanie" takiego urządzenia tylko z małą poprawką. Jeżeli połączysz równolegle przyciski to naciśnięcie dowolnego z nich będzie powodować zgaszenie wylosowanej diody. Czyli otrzymasz refleksomierz dla leniwych.
Pozdrawiam.

Więc co proponujesz, właśnie podłączyłem i wgrałem to co wysłałeś pod innym postem z sygnałem losowym. Jest tylko jeden mankament że czasami są jakieś błędy i trzeba ponownie nacisnąć przycisk, a to mija się z celem.Może masz pomysł jak usprawnić to aby działało lepiej. Pozdrawiam cieplutko i dziękuję za pomoc.


RE: Refleksomierz - piotr2393 - 14-02-2017

Ja robiłem taki projekt wykorzystujący 4 przyciski, nie liczył on czasu gry, a czas reakcji na bodziec wzrokowy. Przed rozpoczęciem gry ustalana była długość gry, a w trakcie na wyświetlacz wyrzucany był otatni czas reakcji. Po zakończeniu sekwencji gry wyświetlane były w pętli wyniki: najkrótszy czas reakcji, najdłuższy czas reakcji, średni z całej gry oraz liczba błędnych trafień. Wykorzystałem do tego Arduino Leonardo i każdy przycisk odpowiadał innemu pinowi cyfrowemu.


RE: Refleksomierz - Smaczek - 14-02-2017

Witam,
A brałeś pod uwagę to, że może zostać wylosowana ta sama dioda i wtedy wydaje się, że przycisk nie działa? Przecież do kodu można dołożyć chwilowe zgaszenie diody w momencie wciśnięcia przycisku. To odnośnie sygnału losowego.
Proponuje Tobie zrobić przyciski na jednym pinie analogowym. Dziewięć rezystorów połączonych w szereg pomiędzy 5 V i masę. Od łączenia poszczególnych rezystorów podciągasz włącznik do wspomnianego wejścia analogowego i na nim odczytujesz napięcie (dla każdego przycisku będzie inne). Sprawdzasz czy wciśnięty przycisk (napięcie) odpowiada numerowi zapalonej diody i już.
Pozdrawiam.


RE: Refleksomierz - piotr2393 - 14-02-2017

Smaczek przedstawił bardzo sprytne rozwiązanie wykorzystujące zaledwie jeden pin analogowy dla obsługi wszystkich przycisków.
Jeśli chodzi o kwestie "mankamentu" również można ją rozwiązać. Zapalenie kolejnej diody powinno nastąpić dopiero po puszczeniu przycisku poprzedniej diody. Rozważ przypadek pesymistyczny że losuje Ci się ciągle jedna dioda, trzymając wciśnięty odpowiedni przycisk, wynik inkrementuje się z szybkością obrotu jednej pętli programu, co jest absurdem. Ja w swoim projekcie zastosowałem właśnie takie podejście, które zapala kolejną diodę jeśli żaden z przycisków nie jest aktualnie wciśnięty, jednak idea działania mojego projektu była nieco inna niż zakładana idea Twojego.


RE: Refleksomierz - krn78 - 21-02-2017

piotr2393, problemy przedstawione przez Ciebie dadzą się łatwo wyeliminować. Problem losowania tej samej diody można wyeliminować w warunku (podając listę wszystkich oprócz aktualnej), natomiast zapalenie kolejnej diody po puszczeniu aktualnej można zrobić, umieszczając w pierwszej linii kodu wewnątrz warunku pustą pętlę while z warunkiem identycznym, jak if:
Kod:
if (digitalRead(13, LOW)) {
while(digitalRead(13, LOW)){}
//tutaj instrukcje, co stanie się po wciśnięciu przycisku
}
Wtedy kod wykona się po puszczeniu przycisku.

Problem brakujących pinów cyfrowych można usunąć stosując choćby PCF8574, choć pomysł z dzielnikiem (drabinką rezystorów) też mi się podoba, choć bałbym się chyba o stabilność odczytu i możliwość pomyłki ('nie do końca' wciśnięty przycisk to większa rezystancja, co mogłoby spowodować zliczenie innego przycisku). Wtedy też maszyna mogłaby się przerodzić w coś w rodzaju 'maszyny dla leniwych'.


RE: Refleksomierz - JasQ - 23-02-2017

Cytat:choć pomysł z dzielnikiem (drabinką rezystorów)

To akurat najgorszy z pomysłów , po jakimś czasie same przyciski zaczną mieć swoją rezystancję i nie opanujesz tego . Znam to z własnego doświadczenia a miałem tylko 4 przyciski . Zrób matrycę jak w klawiaturkach 4x4 i masz 16 przycisków na 8 pinach a diody jak koledzy piszą na PCF .