SlotForum banner

Projekt budowy autonomicznego systemu wyścigów samochodów szczelinowych

6.5K views 22 replies 13 participants last post by  Roguejackal  
#1 ·
Przez ostatnie 4+ lata, pracując w niepełnym wymiarze godzin, zbudowałem w pełni autonomiczny system wyścigów samochodów slotowych. System jest obecnie w fazie proof of concept z możliwością ścigania się do 6 samochodów sterowanych przez komputer PC.

Celem tego projektu było zbudowanie systemu samochodów slotowych, w którym samochody będą ścigać się ze sobą lub z prawdziwymi ludźmi, w trybie wyścigu w realnym świecie. Wybrano Carrera Digital Slot Car ze względu na to, że jest to cyfrowy system samochodów slotowych i że znaczne badania dotyczące Carrera zostały opublikowane w Internecie przez innych ludzi.
Informacje te, dotyczące sposobu działania Carrera Control Unit (CU), wraz z wieloma zaleceniami elektronicznymi, były kluczowe w budowie tego projektu. Wielkie podziękowania dla wszystkich tych osób.

Niemniej jednak, zbudowanie tego projektu nie było łatwe, ponieważ istniało wiele czynników, które wymagały zbadania, zbadania pod kątem wykonalności oraz wiedzy o elektronice (której mam bardzo mało) i wielu językach programowania.

System, który jest teraz uruchomiony, jest kompletnym rozwiązaniem programowo-sprzętowym, które obejmuje większość aspektów wyścigów samochodowych w realnym świecie. Działa na komputerze z systemem Windows (chociaż oprogramowanie może być przenośne na inne systemy operacyjne) i obejmuje moduł kontroli wyścigu wraz z różnymi elementami elektronicznymi, które mogą być używane w dowolnym projekcie toru. W 'niedalekiej przyszłości' opublikuję film na YouTube z projektem wraz z prawdziwym wyścigiem.

Moduł kontroli wyścigu obsługuje różne

⦁ Serie wyścigowe
⦁ Zespoły wyścigowe
⦁ Samochody wyścigowe
⦁ Kierowcy wyścigowi
⦁ Tory wyścigowe
⦁ Kalendarze wyścigów

Dodatkowo istnieją moduły, które obsługują

⦁ Konfiguracja kwalifikacji
⦁ Kwalifikacje Q1, Q2 i Q3
⦁ Ustawienia wyścigu
⦁ Strojenie wyścigu
⦁ Rzeczywisty wyścig

Wbudowane funkcje podczas rzeczywistego wyścigu obsługują

⦁ Różne rodzaje opon
⦁ Zużycie opon
⦁ Pojemność / zużycie paliwa
⦁ Pit Stopy
⦁ Zmiana pasa
⦁ Strefy DRS
⦁ Pomiar czasu sektorów / czas okrążenia i najszybsze okrążenie
⦁ Warunki pogodowe
⦁ Dynamiczne strojenie samochodu w czasie rzeczywistym

Elektronika
========

Carrera Digital Slot Car wykorzystuje polecenia wysyłane do / z CU za pomocą różnych częstotliwości. Każda kombinacja kontrolera / samochodu wykorzystuje inną częstotliwość, której użyjemy jako punktu wyjścia projektu. Tor Carrera już wykorzystuje czytniki IR do określania takich zdarzeń, jak zmiana pasa, wyjazd z pit stopu, start / meta itp. W oparciu o te znane zmienne projekt został zbudowany przy użyciu tej samej koncepcji. Elektroniczna część tego projektu została zbudowana w oparciu o trzy fazy, z których każda wykorzystuje niedrogi mikrokontroler Arduino Nano.

Pierwsza faza elektroniki polegała na zbudowaniu odbiorników IR (Pułapek) podobnych do tych używanych przez Carrera i umieszczeniu ich w strategicznych miejscach na torze, w celu przechwytywania informacji o samochodzie i informacji o czasie. Doprowadziło to do 2 oddzielnych elementów elektroniki.

⦁ Czytnik IR
⦁ Kontroler pułapki

Circuit component Passive circuit component Hardware programmer Electronic component Electrical wiring


Czytnik IR składa się z zestawu 2 odbiorników IR (po jednym na tor) podłączonych do elementu elektronicznego, który rozszyfrowuje częstotliwość samochodu, która jest przesyłana do kontrolera pułapki, który wysyła te dane do komputera PC za pośrednictwem wbudowanego nadajnika RF. Każdy kontroler pułapki może zarządzać do 4 zestawów czytników IR (łącznie 8 odbiorników IR). Każdy projekt toru może wykorzystywać do 60 zestawów czytników IR, ale większość torów wymaga tylko od 8 do 12 zestawów.

Druga faza elektroniki polegała na zbudowaniu dekodera toru, który może rozszyfrować wszystkie sygnały wysyłane na każdym torze za pośrednictwem Carrera CU i wysłać te dane do komputera PC za pośrednictwem wbudowanego nadajnika RF.

Trzecia faza elektroniki polegała na zbudowaniu kodera toru, który odbierałby dane z komputera PC za pośrednictwem sygnałów RF i łączył te dane bezpośrednio z Carrera CU. Dane te mają postać 2 zestawów sygnałów, jeden zestaw zawierający czasy, prędkość, zmianę pasa itp., a drugi zestaw zawierający ustawienia przepustnicy, hamulca i paliwa.

Jednostka sterująca komputera (CUU)
=====================


najbardziej złożoną fazą projektu było opracowanie CCU. Ponieważ mam solidne zrozumienie języka Object Pascal przy użyciu środowiska programistycznego Delphi, zdecydowałem się na to podejście programistyczne. Ale szukałem również podejścia Open Source i znalazłem rozwiązanie w wykorzystaniu środowiska programistycznego Lazarus.

Projekt tego pakietu programów musiał obejmować wiele różnych podejść.

Warstwa prędkości

Logika musiała być bardzo szybka ze względu na czas generowania poleceń danych Carrera co 75 milisekund. Jedynym sposobem na osiągnięcie tego było stworzenie środowiska wielowątkowego i posiadanie procesora, który obsługiwał min. 8 rdzeni.

Warstwy komunikacyjne

Logika musiała obsługiwać wiele poziomów komunikacji. Poziomy te są następujące:

⦁ Odbieranie danych z kontrolerów pułapek
⦁ Odbieranie danych z dekodera toru
⦁ Wysyłanie danych do kontrolera Carrera CU
⦁ Komunikacja wewnętrzna między wątkami
⦁ Komunikacja wewnętrzna z wyświetlaczem Windows

Wyświetlacz interaktywny

Logika musiała wyświetlać dane pojazdu symulowane w czasie rzeczywistym, takie jak prędkość, obroty, biegi, zużycie hamulców, zużycie opon itp. i być w stanie odbierać dane wejściowe w celu wprowadzania dynamicznych zmian w tych elementach danych.

Różne środowiska wyścigowe

Logika musiała być zaprojektowana tak, aby obsługiwać wszystkie aspekty wyścigów samochodowych w realnym świecie, od serii wyścigowych, typów samochodów, zespołów wyścigowych, torów wyścigowych i wydarzeń mistrzowskich.

Sekwencja wyścigów sterowanych komputerowo
========================


CCU jest zaprojektowany tak, aby użytkownik postępował zgodnie z poniższą sekwencją działań.

  1. Skonfiguruj serie, zespoły, samochody i kierowców za pośrednictwem odpowiednich modułów.
  2. Zbuduj wymagane tory wyścigowe za pomocą Autorennbahnplaner i zaimportuj je do CCU za pomocą modułu Capture.
  3. Skonfiguruj informacje o torze za pomocą modułu Tracks.
  4. Przypisz pułapki IR do toru wyścigowego za pomocą modułu Controls.
  5. Skonfiguruj wymagania dotyczące kwalifikacji i wyścigu za pomocą modułu Qual Prep.
  6. Przeprowadź do 3 rund kwalifikacyjnych dla każdego samochodu, korzystając z modułu Q1 / Q2 / Q3.
  7. Przeprowadź analizę wyników kwalifikacji dla każdego samochodu za pomocą modułu Analysis.
  8. Wykonaj ręczne „dostrojenie” analizy za pomocą modułu Results. Dane te są wykorzystywane do ścigania się samochodami w stanie autonomicznym.
  9. Skonfiguruj wyścig za pomocą modułu Race Prep.
  10. Rozpocznij wyścig za pomocą modułu Race Day.

Kroki 1–4 powyżej powinny być wymagane tylko raz dla całych mistrzostw.

Przegląd jednostki sterującej komputerem
=======================


Poniżej znajduje się szybki przegląd CCU. Jest to początkowy projekt z dodatkowymi funkcjami dodawanymi w miarę rozwoju systemu. Rozwój został uproszczony i nie jest oparty na wyrafinowanym „wyglądzie i działaniu”. Wszystko poniżej jest w aktywnym stanie roboczym, chyba że wskazano inaczej (Jeszcze nie zaimplementowano).

Menu główne

Rectangle Font Brand Circle Paper product


Menu główne składa się z 4 głównych sekcji:

⦁ Konfiguracja zespołu
⦁ Konfiguracja toru
⦁ Kwalifikacje
⦁ Wyścig

Konfiguracja zespołu


Rectangle Font Brand Circle Paper product


Menu konfiguracji zespołu składa się z 5 sekcji:

⦁ Serie - Konfiguracja dla różnych istniejących serii wyścigowych.
⦁ Zespoły - Konfiguracja dla różnych istniejących zespołów.
⦁ Samochody - Konfiguracja dla różnych istniejących samochodów.
⦁ Kierowcy - Konfiguracja dla różnych kierowców
⦁ Mistrzostwa - (Jeszcze nie zaimplementowano)

Product Rectangle Font Screenshot Parallel



Konfiguracja toru

Rectangle Window Font Parallel Circle


Konfiguracja toru składa się z 3 głównych sekcji:

⦁ Przechwytywanie
⦁ Tory
⦁ Kontrole

Przechwytywanie

Jednym z najlepszych na rynku programów do projektowania układów torów Carrera jest Autorennbahnplaner. (...najlepszy projektant torów Carrera (autorennbahnplaner.de). Kupiłem to oprogramowanie, aby pomóc mojemu CCU, ponieważ nie zamierzałem projektować własnego oprogramowania do projektowania torów. To oprogramowanie do projektowania torów jest bardzo dobre i pozwala zaprojektować dowolny praktyczny układ, który chcesz zbudować. Dla mnie brakowało kilku funkcji, których szczególnie szukałem, aby pomóc w integracji z moim oprogramowaniem, ale użyłem prostych obejść, które okazały się całkiem funkcjonalne. (Fajny kawałek oprogramowania.)

Pierwszym krokiem jest zbudowanie układu toru za pomocą Autorennbahnplaner. Po sfinalizowaniu tego projektu musisz wskazać, gdzie mają zostać umieszczone nowe pułapki IR na torze. Ponieważ Autorennbahnplaner nie ma możliwości używania elementów projektu użytkownika, użyłem narzędzia „PowerFeedIn” do reprezentowania tych pułapek.
Po zakończeniu moduł przechwytywania służy do importowania toru jako pliku JPG do systemu CCU.

Tory

Moduł Tory służy do rejestrowania wszystkich torów, które chce się zbudować i używać w serii wyścigów.

Kontrole

Product Rectangle Font Parallel Screenshot


Moduł Controls to złożony program, który odczytuje plik danych Autorennbahnplaner dla wybranego toru i z dodatkowym wejściem przypisuje odpowiednie dane do każdej pułapki IR na torze. Informacje te są wykorzystywane do zmiany pasa, pit stopów, startu / mety, informacji o czasie itp. i są wymagane do pomocy w procesie automatyzacji samochodu.

Kwalifikacje

Rectangle Font Parallel Number Brand



Przygotowanie do kwalifikacji

Moduł Qual Prep służy do konfigurowania toru do kwalifikacji do wyścigu i dnia wyścigu oraz do przypisywania samochodów do wyścigu wraz z różnymi ustawieniami, których każdy samochód będzie używał podczas wyścigu. Ustawienia te mają bezpośredni wpływ na prędkość i prowadzenie każdego samochodu i są wykorzystywane do konfiguracji kontrolera CU.

Q1 / Q2 / Q3

Każdy samochód, który będzie się ścigał, będzie musiał ręcznie przejechać określoną liczbę okrążeń, aby zarejestrować ustawienia kontrolera (prędkość) i czasy pułapek. Liczba okrążeń kwalifikacyjnych może być z góry określona dla każdego samochodu, a każdy kierowca może korzystać z dowolnego pasa i udogodnień do zmiany pasa.
Dane zebrane podczas kwalifikacji Q1, Q2 i Q3 zostaną następnie przeanalizowane w celu utworzenia rzeczywistych danych używanych podczas wyścigu do prowadzenia samochodów po torze. Najszybsze okrążenie dla każdego samochodu określi pozycję startową dla tego samochodu.

Analiza

Moduł ten pobierze najszybszy czas między każdym zestawem pułapek IR dla każdego samochodu i wykorzysta go do konfiguracji automatyzacji Race Day. Dane te wyświetlają odpowiednie dane dotyczące czasu i prędkości, które można później zmodyfikować przed rzeczywistym wyścigiem lub dynamicznie podczas wyścigu, aby uzyskać lepsze wyniki okrążeń.

Wyniki

Moduł ten wyświetli najlepsze czasy między każdą pułapką dla każdego samochodu w kwalifikacjach Q1, Q2 i Q3. Czasy te będą zwykle lepsze niż najszybsze okrążenie kwalifikacyjne, ponieważ uwzględnia najlepsze wyniki z każdej pary pułapek, a nie pełne okrążenie. Dane te są następnie wykorzystywane w rzeczywistym wyścigu, aby osiągnąć najlepsze wyniki.

Rectangle Font Parallel Technology Facade



Wyścig

Rectangle Font Parallel Number Circle



Przygotowanie do wyścigu

Moduł ten służy do ustawiania parametrów rzeczywistego wyścigu. Bierze pod uwagę dane zarówno dla toru, jak i samochodów. Działania na torze obejmują rok mistrzostw, pogodę, dystans, liczbę okrążeń lub czas trwania wyścigu oraz dostępność DRS. Działania samochodów obejmują przepustnicę, hamulce, paliwo i dostępność DRS. Zarządzanie oponami jest wbudowane w rzeczywisty moduł Race Day poniżej. Każdy z tych parametrów ma dynamiczny wpływ na rzeczywiste działania samochodów podczas wyścigu.

Dzień wyścigu

Moduł ten kontroluje rzeczywisty wyścig. Moduł wyświetla 6 kierownic z informacjami zwrotnymi w czasie rzeczywistym z danych wyścigowych. (Planowane są przyszłe ulepszenia, aby rozdzielić każdą kierownicę do uruchamiania na poszczególnych komputerach, a także móc wyświetlać różne typy kierownic).

Informacje zwrotne do każdego koła podczas rzeczywistego wyścigu obejmują obroty, prędkość, ustawienia przepustnicy, bieg, osiągi opon, paliwo, aktualne czasy okrążeń i najszybszy czas okrążenia. Istnieje również możliwość pit stopu i tankowania oraz zmiany opon.

Oprócz powyższych dynamicznych informacji zwrotnych, czasy są rejestrowane dla maksymalnie 3 sektorów wyścigu i prostej głównej, wyświetlając aktualne czasy, poprzednie czasy i najszybsze czasy na sektor.

Wyniki

Otwarte (NYI)

Mistrzostwa

Otwarte (NYI)

Product Font Rectangle Engineering Technology




Uwagi
====

  1. Pit Lane wykorzystuje program do obliczania paliwa, a NIE jednostkę sterującą Carrera
  2. Tor 4-pasmowy jest obecnie nieobsługiwany
  3. Moduł Race Day wyświetla obecnie kierownice F1. Inne kierownice zostaną dodane
  4. Moduł Race Day wyświetla obecnie wszystkie 6 samochodów. Zostaną dodane indywidualne wyświetlacze
  5. Zużycie opon jest oparte na rodzaju opony i dostosowuje wartość przepustnicy Carrera w czasie rzeczywistym
  6. Zużycie paliwa jest oparte na przebytym dystansie i dostosowuje wartość przepustnicy Carrera w czasie rzeczywistym
  7. DRS wykorzystuje zasady z F1 i dodaje 2 poziomy przepustnicy podczas aktywacji
  8. Dostrajanie prędkości i czasów w czasie rzeczywistym zostanie dodane
  9. Funkcje Pit Stop zostaną dodane
  10. Następujące moduły zostaną zaprogramowane
    • Kalendarz
    • Zapis wyników
    • Klasyfikacja generalna
    • Historia / kopia zapasowa
    • Dźwięk

Podsumowanie
=======


We wrześniu 2023 r. system jest w ok. 95% zbudowany (bez dodatkowych modułów NYI). Proof of concept autonomicznych wyścigów 3 samochodów został już pomyślnie zrealizowany za pomocą modułu CUU. Pozostałe 5% obejmuje ogromną ilość testów całego systemu, w tym rzeczywiste kontrolowane wyścigi, zmiana pasa, pit stopy, DRS itp. Ponieważ jest to hobby w niepełnym wymiarze godzin, które już przekroczyło 4 lata ogólnych badań, planowania, eksperymentowania, programowania i budowy, przewiduje się, że zajmie to wiele miesięcy, zanim będzie w stanie „sfinalizowanym”. Po czym dodatkowa funkcjonalność zostanie włączona, ponieważ widzę to jako „żyjący” projekt.
 
#3 ·
Niesamowite!
Dziękuję Bill_586
Yattr był naprawdę bardzo pomocny w pokonywaniu mojej ostatniej przeszkody i było to prawidłowe połączenie elektroniczne z portem Carrera CU. (Moja pierwsza próba wysadziła CU)
Mieliśmy liczne e-maile dotyczące pomiarów czasu Carrera i mam nadzieję, że on również wyciągnął z nich jakieś wnioski.
Nadal jestem mu winien Nano Decoder
 
#4 ·
Praca z dafrgo była kluczowa dla ostatecznego, prawidłowego udokumentowania interfejsu Carrera Digital Controller dla portów 1 i 2 jednostki sterującej Carrera. Jego zrozumienie starych protokołów wieży IR było kluczowe. Protokół ten ewoluował w czasie i dlatego był nieco dziwny w porównaniu z innymi protokołami Manchester używanymi przez Carrerę.

Dafrgo znalazł mój autonomiczny wątek na tym forum i wysłał mi wiadomość prywatną. Dzięki licznym rozmowom telefonicznym, e-mailom, a zwłaszcza sesjom FaceTime (sesjom oscyloskopu), udało nam się wypracować wzajemne zrozumienie sygnałów i protokołu.

To, co osiągnął dafrgo, jest wspaniałą demonstracją tego, co można zrobić z cyfrowymi slotami.

Gratulacje dafrgo!
 
#5 · (Edited)
Opublikowałem teraz 3 filmy na YouTube pokazujące wyniki testów 3 samochodów ścigających się ze sobą. Nie są one jeszcze zbyt konkurencyjne, ale filmy pokazują, że Proof of Concept działa. Największym problemem jest manipulowanie tabelą bazy danych z wpisami czasu/prędkości, aby wydobyć maksimum z każdego samochodu bez wypadania z toru. W tym celu opracowuję teraz program w czasie rzeczywistym, aby wizualizować każdy samochód na torze z wpisami bazy danych czasu/prędkości i móc je modyfikować, aby lepiej zrozumieć wydajność. Nie jest to łatwy program do opracowania, ale będzie nieoceniony po ukończeniu.
Autonomous Carrera Race PC Control Screen - YouTube
(1) Autonomous Carrera Race Start - YouTube
(1) Autonomous Carrera Slots Race long view - YouTube
 
#11 ·
Cześć Daf! Jakieś aktualizacje dotyczące ogólnej osi czasu, kiedy to ma się ukazać i być gotowe dla ogółu społeczeństwa? To naprawdę fajne!
Pozdrawiam
Cześć XENON,

Jestem jeszcze daleko od udostępnienia tego ogółowi społeczeństwa, ponieważ wciąż buduję i ulepszam koncepcję.
Oprogramowanie jest w około 80-90% gotowe i wymaga solidnych testów, aby wyeliminować błędy, a także muszę dodać kilka nowych modułów do zarządzania mistrzostwami i przechowywania historii. Rozważam również dodanie modułu do wyświetlania grafiki w czasie rzeczywistym samochodów poruszających się po torze. Jest też kilka elementów "nice to have", które chciałbym dodać (jak różne kierownice i indywidualne komputery sterujące indywidualnymi wyświetlaczami samochodów, ponieważ wszystko to jest obecnie wyświetlane na jednym ekranie)
Ale największe zmiany, które wprowadzam, to poprawa czasu reakcji każdej bramki z powrotem do mikroprocesora CU. Mam wdrożony 2-etapowy plan i jestem w trakcie realizacji 1. etapu, który mam nadzieję uruchomić do końca stycznia. Powinno to znacznie pomóc w dokładniejszym określeniu, gdzie każdy samochód znajduje się na torze w danym momencie.
Moim celem jest uruchomienie systemu produkcyjnego jeszcze w tym roku.
Będę aktualizował ten post w miarę postępów.
 
#15 ·
Nie jestem pewien, co masz na myśli mówiąc "odcinek", ale jestem autorem i jestem w ostatniej fazie testów, dodaję dodatkowe funkcje i wkrótce opublikuję nowy dokument opisujący wszystkie funkcje.
Będzie zawierał podstawowe funkcje zarządzania wyścigami (Tory, Samochody, Serie wyścigowe, Kierowcy i Zespoły), ale także kalendarze wyścigów i wyniki mistrzostw, prawdziwe kwalifikacje na żywo, analizę czasu / prędkości, symulację, wykresy wydajności i automatyzację komputerową, w której komputer będzie ścigał się do 6 samochodów przeciwko komputerowi lub przeciwko ludziom.
To duży projekt i koniec jest bardzo blisko, więc bądź na bieżąco.
 
#17 ·
@dafrgo Wow!! To, co zrobiłeś, jest ogromne dla hobby slotów.
Tracę zainteresowanie tym hobby, ponieważ nie znajduję wielu osób, które mogłyby się ze mną ścigać w domu
a wyścigi z Ghost car są bardzo ograniczone, aby zrobić postępy
ale ta dodatkowa warstwa i trudność w ściganiu się z AI lub komputerem dają mi nadzieję :) to jest takie wspaniałe! Dziękuję za wniesienie tego pomysłu, gdzie Carrera się tym nie przejmuje...
Czy masz przybliżony pomysł, kiedy to będzie gotowe do testów beta? A może kiedy myślisz, że będziesz miał pierwsze wydanie? W tym roku czy raczej w przyszłym roku?
Bardzo dziękuję i nie mogę się doczekać, aby zobaczyć postępy
 
#18 ·
Tracę zainteresowanie tym hobby, ponieważ nie znajduję wielu osób, które mogłyby się ze mną ścigać w domu.
Witaj na SlotForum!
Gdzie jesteś? Może uda nam się znaleźć osoby, które będą się z tobą ścigać. Czy możesz podróżować na inne tory, czy też chcesz zapraszać gości do swojego domu/garażu na wyścigi?
 
#19 ·
Specjalnie do przeczytania, świetny projekt, który wymaga dużo czasu i pracy, gratulacje.
Obejrzałem filmy i nie widzę żadnych cyfrowych wyprzedzań, innymi słowy, nie widziałem żadnego użycia zmieniacza pasa?
Pod względem oprogramowania można było zobaczyć pułapki, gdzie znajduje się inny identyfikator i jechać najlepszą linią jazdy i zrealizować wyprzedzanie, jak w przypadku BLST. Czy to następny etap?
 
#22 ·
Istnieje teraz strona internetowa, która obejmuje wydanie tego systemu wiosną tego roku.

Autonomous Race Management System© reprezentuje wyrafinowane podejście do sportów motorowych w 'Real World' z wykorzystaniem samochodów Carrera© 1/32 Digital Slot Cars, w tym informacji zwrotnych z wyścigów w czasie rzeczywistym, symulacji komputerowych, graficznych porównań okrążeń oraz autonomicznych / komputerowo sterowanych wyścigów. Autonomiczny / komputerowo sterowany moduł może ścigać się do 6 samochodów przeciwko sobie lub ścigać się do 4 samochodów z 2 dodatkowymi samochodami sterowanymi przez entuzjastów wyścigów.

autonomousracemanagement.com