Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Gra typu "Mózg Elektronowy", ale trochę przekombinowana.

14 Cze 2019 13:37 249 7
  • Poziom 9  
    Czołem!

    Buduje obecnie skrytkę geocache ( taka gra terenowa z użyciem GPS), której finałowy etap ma zawierać prostą grę/quiz, po rozwiązaniu którego gracz uzyska kombinację do zamka szyfrowego blokującego drzwiczki pojemnika.
    Quiz ma działać na zasadach zbliżonych do popularnej kiedyś gry "Mózg Elektronowy" ( czyli mamy plansze z 2 zestawami pól stykowych. Jeden zestaw to pytania, drugi odpowiedzi. Połączenie kabelkiem odpowiedniej pary pytanie - odpowiedź powoduje zapalenie lampki sygnalizującej odpowiedź poprawną).
    Problem w tym, że moja wersja gry musi zamiast prostej sygnalizacji prawda/fałsz zwracać konkretne dane liczbowe ( a dokładniej, 3 dwucyfrowe liczby, wyświetlane na wbudowanym w skrytkę 14-segmentowym, dwucyfrowym wyświetlaczu LED)
    Dodatkowo aby utrudnić "złamanie" zagadki, każda liczba wyświetlana ma być poprawnie dopiero po jednoczesnym połączeniu na polach stykowych 2 albo 3 par styków pyt/odp, oraz wyświetlacz ma "coś" wyświetlać również w przypadku udzielenia odpowiedzi nieprawidłowych.


    Pierwsza koncepcja jak przyszła mi do głowy to polutowanie kabelkami połączeń pomiędzy polami stykowymi a nóżkami odpowiadającymi za zapalanie poszczególnych segmentów w wyświetlaczu, i wlutowanie w każdy kabelek diody zapewniającej wyłącznie jednokierunkowy przepływ prądu. Ale przy założeniu że wyświetlacz ma coś pokazywać niezależnie od poprawności odpowiedzi, to tam się zrobi potworna pajęczyna przewodów.
    Nie ukrywam że na elektronice się nie znam zbyt dobrze, ( potrafię coś zlutować mając schemat, ale projektowanie układów mnie nieco przerasta)

    Przeszukując forum znalazłem taki temat: https://www.elektroda.pl/rtvforum/viewtopic.php?p=5204628#5204628 a dokładniej zainteresowała mnie odpowiedź z posta nr 7 w powyższym wątku.
    Czy używając wspomnianych tam multiplexera i demultipleksera dało by się uzyskać taki układ jak opisałem w założeniach projektu? Co i jak do tego schematu dodać ( o ile to w ogóle możliwe i nie okaże się że temat da się zrealizować wyłącznie na jakichś mikrokontrolerach, na których swoją drogą się nie znam zupełnie) , żeby zamiast sygnalizacji prawda/fałsz uzyskać sterowanie wyświetlaczem wielosegmentowym?
    [EDYCJA]:
    Po namyśle przyszedł mi do głowy pomysł że równie dobrze gra może mieć 3 wyświetlacze, każdy dla jednej z liczb w kombinacji zamka, i w takim układzie sterowanie wyświetlaczami we wspomnianym wyżej układzie dałoby się dodać zastępując diodę zieloną przekaźnikiem załączającymi dany wyświetlacz po wprowadzeniu 3 poprawnych odpowiedzi i albo całkiem pozbywając się sygnalizacji "Fałszu" albo wstawiając w jej miejsce czegoś w rodzaju generatora "losowych śmieci" na wyświetlaczu.
    Tyle że cały układ musiałby być w stanie testować poprawność 3 odpowiedzi jednocześnie, i zasterować na wyjściu trzy niezależne przekaźniki. Ma ta koncepcja jakiś sens?

    Pozdrawiam i z góry dziękuję za odpowiedzi!
    M. Grajny
  • Relpol przekaźniki

  • Poziom 16  
    gothrukk napisał:
    Czołem!


    Quiz ma działać na zasadach zbliżonych do popularnej kiedyś gry "Mózg Elektronowy" ( czyli mamy plansze z 2 zestawami pól stykowych. Jeden zestaw to pytania, drugi odpowiedzi. Połączenie kabelkiem odpowiedniej pary pytanie - odpowiedź powoduje zapalenie lampki sygnalizującej odpowiedź poprawną).
    Problem w tym, że moja wersja gry musi zamiast prostej sygnalizacji prawda/fałsz zwracać konkretne dane liczbowe ( a dokładniej, 3 dwucyfrowe liczby, wyświetlane na wbudowanym w skrytkę 14-segmentowym, dwucyfrowym wyświetlaczu LED)
    ...
    Pozdrawiam i z góry dziękuję za odpowiedzi!
    M. Grajny


    Ja się tak na elektronice nie znam, ale we wskazanym przez Ciebie wątku użytkownik @Paweł Es. sugeruje, że zamiast tych skomplikowanych połączeń można zastosować rozwiązanie z pamięcią EPROM
    Tutaj jest ta odpowiedź.
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=5209771#5209771

    Zastosowanie np EEPROM aby zastąpic tą kombinatorykę z kablami, dało by lepsze efekty.
    Wszystko opiera się na algebrze i logice booylowskiej.(Prawda, Fałsz)
    Zobacz sobie ten materiał video, który posiada polskie napisy.


    Link


    Na kanale Ben Eater jest więcej ciekawych materiałów.
    Tu jest programator EEPROM oparty o Arduino. Trochę programowania i elektroniki.


    Link
  • Relpol przekaźniki
  • Poziom 9  
    sylvi91 napisał:


    Zastosowanie np EEPROM aby zastąpić tą kombinatorykę z kablami, dało by lepsze efekty.


    Hmm. Obejrzałem ten film, i wychodzi na to, że to jest to rozwiązanie którego szukałem.
    Wprawdzie żebym ogarnął oprogramowanie tego trzeba będzie wprowadzić kilka uproszczeń w założeniach gry i np zastąpić wyświetlacze 14 segmentowe, 7 segmentowymi, ale koniec końców powinienem uzyskać pożądany efekt.
    Dzięki !
  • Specjalista elektronik
    Może dobrze byłoby zacząć od określenia, jak to ma wyglądać. Przychodzi PG (Poszukiwacz Geoskrzynek), znajduje skrzynkę z grą, i co robi? Gra ma zasilanie podłączone na stałe, czy akumulator, który trzeba co jakiś czas naładować, a PG ma ją włączyć (wyłączy się sama, jeśli przez np. minutę PG nie poda odpowiedzi), czy może PG ma przyjść z własnym zasilaniem - bateria płaska, bateria 9V, a może powerbank - w opisie geoskrzynki powinna być informacja, czego PG będzie potrzebował.

    Następnie PG ma podać odpowiedź na pytanie quizu - zapewne gra powinna mu wylosować pytanie, a PG ma w jakiś sposób podać numer odpowiedzi. Dla oszczędności ilości styków można zrobić tak, że przy odpowiedzi jest numer, a pulpit gry ma przyciski, albo "wajchy" do ustawiania numeru - np. oddzielne przyciski +10 i +1, oraz Zatwierdź - PG ma naciskać +10 i +1, aż na wyświetlaczu pojawi się numer poprawnej odpowiedzi, i wtedy wcisnąć Zatwierdź. Jeśli wpisał poprawnie, przechodzi do następnego pytania quizu (bo np. ma odpowiedzieć poprawnie 3 razy); pytanie, co ma robić gra po błędnej odpowiedzi - czy sygnalizować, że była błędna?

    Losowanie pytania można zrobić przyciskiem Losuj - w czasie, gdy jest wciśnięty, układ by szybko zmieniał sobie numer pytania, zatrzymywał to po puszczeniu Losuj i wtedy pokazywał na wyświetlaczu.

    A na ile złożony wyjdzie układ, który to zrobi bez uC, to trzeba policzyć - przede wszystkim, w ilu różnych stanach może ten układ się znajdować, bo gdzieś trzeba pamiętać numer stanu. Numer stanu + sygnały wchodzące określałyby adres dla EEPROM-u, pod którym byłaby zapisana akcja do wykonania (w tym, jaki ma być następny stan). Myślę, że powinno dać się zrobić tak, że numer pytania i numer odpowiedzi byłyby dla tego układu sygnałami, nie elementami numeru stanu; natomiast w numerze stanu wypada zakodować, na ile pytań quizu PG już poprawnie odpowiedział (pewnie 2 bity).

    Niewątpliwie trzeba określić, ile może być różnych pytań quizu, z ilu odpowiedzi PG ma wybrać poprawną (ilość odpowiedzi na karcie może przewyższać ilość pytań).

    Prawdopodobnie dużo prościej będzie to zrobić przy użyciu Arduino, niż robiąc układ z maszyną stanów z użyciem EEPROM-u - np. losowanie pytania, czy pamiętanie pytania i wprowadzanej odpowiedzi może robić program; bez uC, każda z tych rzeczy to parę układów scalonych - w sumie będzie ich z kilkanaście.
  • Poziom 9  
    _jta_ napisał:
    Może dobrze byłoby zacząć od określenia, jak to ma wyglądać. (...) w opisie geoskrzynki powinna być informacja, czego PG będzie potrzebował.


    _jta_ napisał:
    - zapewne gra powinna mu wylosować pytanie, a PG ma w jakiś sposób podać numer odpowiedzi. Dla oszczędności ilości styków można zrobić tak, że przy odpowiedzi jest numer, a pulpit gry ma przyciski


    To akurat nie jest problem, zresztą wolałbym aż tak całego układu nie komplikować. W opisie skrytki będą dokładnie instrukcje obsługi pojemnika-quizu. System "losujący" i wyświetlający pytania nie jest potrzebny, bo pytań łącznie będzie 9, w grupach po 3 i wszystkie będą zawarte w opisie skrytki. Na panelu gracz ma tylko połączyć piktogram symbolizujący dane pytanie ( Rozpoznanie który symbol odpowiada któremu pytaniu to część samej zagadki) z odpowiednim numerkiem stanowiącym na to pytanie odpowiedź.

    Co do pytania o zasilanie: Są dwie opcje, ( w zależności co mi się uda uzgodnić z zarządcą terenu na którym będzie skrytka. Uprzedzając pytanie, pomysł na założenie skrytki w tym miejscu wyszedł właśnie od instytucji która pod tym adresem działa)
    Albo zasilanie sieciowe podciągnięte z pobliskiej skrzynki elektrycznej, albo powerbank z panelem solarnym.
    Włączenie zasilania układu następowałoby przy otwarciu drzwi zewnętrznej obudowy skrytki ( krańcówka normalnie zwarta )
    A tak swoją drogą niegłupim pomysłem byłoby dodanie na panelu kabelka usb umożliwiającego niezależne, opcjonalne zasilanie układu z powerbanku gracza w wypadku jakiejś awarii wbudowanego zasilania. ( Praktycznie każdy gracz nosi ze sobą przynajmniej jeden powerbank, aplikacje do geocachingu moocno drenują akumulator telefonu)

    _jta_ napisał:
    pytanie, co ma robić gra po błędnej odpowiedzi - czy sygnalizować, że była błędna?

    W pierwotnych założeniach nie. Dobrze by było gdyby udzielenie błędnej odpowiedzi powodowało wyświetlenie na wyświetlaczu jakiejś losowej/wcześniej ustalonej liczby- zmyłki ( a w opcji najbardziej złośliwej nawet wielu różnych liczb-zmyłek w zależności od udzielonych odpowiedzi) tak, żeby weryfikacja poprawności odpowiedzi była możliwa dopiero podczas wprowadzania uzyskanego kodu do zamka szyfrowego.
    Ale zdaję sobie sprawę że to dodatkowa duża komplikacja przy projekcie i raczej z tej opcji zrezygnuję. Gra powinna w przypadku udzielenia odpowiedzi błędnej albo nie robić nic, albo wyświetlać jakikolwiek sygnał potwierdzający wprowadzenie danych ( np jakieś pojedyncze mrugnięcie wyświetlaczem, albo wyświetlenie znaku "-")

    Coś tam sobie przez weekend nad tematem myślałem, i wyszło mi że tak na upartego dałoby się to zrealizować na 8 EEPROM-ach ( dwa bloki po 4 szt takich kości jak na filmie ) w układzie kaskadowym, oraz zastępując gniazdka bananowe przyciskami.
    Muszę tą koncepcję jeszcze po pracy na spokojnie rozrysować na papierze, bo nie jestem pewien czy dobrze kombinuję.
    Pozdrawiam i z góry za zainteresowanie i pomoc.
  • Poziom 9  
    Czołem!
    Długo milczałem, kombinowałem, i chyba (metodą prób i błędów) doszedłem do w miarę prostego w realizacji rozwiązania.
    Założenia:
    - Panel kontrolny gry to dwa zestawy po 15 przycisków ( + sygnalizacja stanu każdego przycisku diodą LED) dla Pytań i Odpowiedzi.
    - Pytań jest 8 (stała pula, pytania nie są losowane) do każdego pytania jest jedna prawidłowa odpowiedź.
    - Gra reaguje wyświetleniem kolejnych cyfr kombinacji do zamka (zamek szyfrowy 4 tarczowy, kombinacja to 4 liczby dwucyfrowe) blokującego skrytkę, po udzieleniu poprawnych odpowiedzi na 2 pytania jednocześnie, przy czym żeby maksymalnie uprościć układ liczy się wyłącznie stan końcowy panelu kontrolnego, czyli wciśnięte 2 właściwe pary przycisków.
    - Odpowiedź błędna, jest traktowana jak nieudzielenie żadnej odpowiedzi.

    Opierając się na filmie z postu Kolegi MARTE.BEST wymyśliłem taki układ oparty o 2szt. EEPROMów AT28C256 i 2 szt AT28C64B
    Gra typu "Mózg Elektronowy", ale trochę przekombinowana.


    Wejścia adresowe A0-A14 EEPROMów AT28C256 (pytanie/odpowiedź) sterowane są bezpośrednio przyciskami na panelu. 15wejść = 15 przycisków w danym bloku.
    Po wybraniu 2 właściwych przycisków, na wyjściach I/O0-I/O2 w zależności od tego która para pytań/odpowiedzi została wciśnięta podawany jest stan tablicy.

    Stany tablicy Pytań i tablicy Odpowiedzi podawane są równolegle na pierwsze 6 wejść 2 szt EEPROMów AT28C64B w układzie PPPOOO. Układy te sterują dwoma wyświetlaczami 7 segmentowymi FYS-10012A/BX-XX wyświetlającymi dwucyfrowe liczby stanowiące kombinacje kodu do zamka, lub sygnał "-.-." w przypadku udzielenia błędnej, lub nie wprowadzenia żadnej odpowiedzi.
    Wszystkie EEPROMY zaprogramowałem używając programatora zbudowanego na płytce stykowej (takiego jak w w/w filmie).
    Czy w tej postaci jak na wklejonym wyżej schemacie układ będzie działał poprawnie? Poprawności zaprogramowania pamięci jestem pewien, bo sprawdzałem to kilkanaście razy.
    Pytam, bo cały układ zlutowałem na płytce uniwersalnej... i pojawił się problem, bo wyświetlacze zaczęły "świrować". W jednej chwili wyświetlając poprawnie sygnał "-.-." by po chwili zapalić wszystkie segmenty na raz "8.8." Na wyjściach z układów sterujących wyświetlaczami zaczęły się pojawiać jakieś dziwne napięcia typu 1.25v, 3.40v itp. W pierwszej chwili myślałem że mam gdzieś na płytce jakieś zwarcia, przebicia czy inne prądy błądzące ( dalej tej możliwości nie wykluczyłem na 100% bo wprawdzie umyłem płytki w izopropanolu, ale kiedy alkohol odparował problem się nasilił a płytki zrobiły się "lepkie". Może za mało IPA użyłem, albo zostawiłem do odparowania zamiast przedmuchać powietrzem?), ale w pewnym momencie kilka segmentów jednego z wyświetlaczy się spaliło, i dopiero wtedy zorientowałem się że kupiłem wyświetlacze ze wspólną katodą, zamiast wspólnej anody jak na filmie. ( oczywiście katodę podłączyłem pod -, ale rezystor pozostał ze złej strony)
    Schemat układu który zamieścielm ma już właściwe wyświetlacze, i tutaj się pojawia pytanie. Czy te pomylone LED-y mogły być przyczyną występowania tych dziwnych napięć na wyjściach AT28C64B?
    Po wlutowaniu spalonego wyświetlacza na wyjściach jego sterownika jest stabilne +5v
    Żeby po udanym uruchomieniu zabezpieczyć układ przed zabrudzeniami płytki a w konsekwencji zwarciami i przebiciami kupiłem lakier PVB 60. Nada się?
  • Poziom 9  
    [Aktualizacja] Wydaje mi się że wiem skąd się biorą te dziwne zachowanie AT28C64B. Otóż dostałem od kogoś podpowiedź, że przyczyną może być duża wrażliwość takich układów, na indukowanie sygnałów w wolnych, niepodłączonych nóżkach EEPROMów, a zwłaszcza na wejściach. W sterownikach wyświetlaczy LED używam jedynie połowy wejść, pozostałe są tylko przylutowane do płytki niepołączone z niczym. Zasugerowano mi że w takim stanie mogą one działać jak anteny i zbierać "szumy" z pobliskich elementów, indukując na wejściach stany " fałszywie wysokie", przez co sterownik "głupieje" bo oczekując sygnałów wyłącznie na pierwszych 6 wejściach adresowych (piny A0-A5) dostaje nagle jakieś losowe stany wysokie na niepodłączonych pinach, a na taka ewentualność nie jest zaprogramowany. Doczytałem w sieci że rozwiązaniem byłoby połączenie wolnych wejść z masą, przez rezystor 10k.

    Dodatkowo dostałem informację że z uwagi na to że tego typu układy są baaaardzo wrażliwe na zakłócenia na wejściach ( nawet takie czynniki jak długość przewodu łączącego płytkę z przyciskami może mieć podobno znaczenie) i w związku z tym dobrze by było zabezpieczyć każde aktywne wejście przed zakłóceniami dodając przed każdym pinem adresowym mały układ RC, tak,żeby przy zwartym przycisku na pin wejściowy szła seria impulsów wysokich, a przy rozwartym pin był zwarty przez rezystor do masy, przez co będzie "stabilizowany" na stanie niskim.

    Troszkę posiedziałem dodatkowo nad schematem układu, poprawiłem go i myślę że w tej chwili jest czytelniejszy ( moderatorów proszę o wybaczenie że wklejam jako obrazek, a nie schemat, ale pomimo otwarcia EasyEDA przyciskiem "dodaj schemat" nigdzie na stronie EDA nie mogę znaleźć wspomnianego w instrukcji przycisku "Insert into Elektroda")
    Gra typu "Mózg Elektronowy", ale trochę przekombinowana.
    (wyświetlacze 7 segm. "wyleciały" ze schematu, bo są na osobnej płytce, i ze sterownikami będą łączone kabelkami)

    Dodatkowo jeśli chodzi o kwestię zabezpieczenia wejść do eepromów to wydaje mi się że powinno ono wyglądać tak jak na poniższym rysunku:
    Tylko nie jestem pewien, czy (biorąc pod uwagę że od przycisków do płytki biegną przewody o długości sięgającej 30cm) ten układ zabezpieczający powinien być po stronie przycisków, czy bezpośrednio przy wejściach na eeprom. Na logikę wydaje mi się że właściwsza będzie opcja "B"
    Gra typu "Mózg Elektronowy", ale trochę przekombinowana.

    Czy to co napisałem ma jakiś sens, czy może dalej w projekcie jest jakiś błąd którego nie widzę?
    Pozdrawiam i z góry dzięki za odpowiedzi!