via Wykop Mobilny (Android)
  • 7
jeszcze jeden test z dzisiaj. próbuje znaleźć jakiś wzór do obliczania odległości kiedy ma hamować. wzoruje się tym jaki się używa nornalnie czyli v^2 z tym że ja mam (v^2)/320 wartość z dupy, poprostu dobrałem liczbę tak by się pokrywało z punktami na wykresie który sobię zrobiłem z różnymi drogami hamowania. raczej mi się nie uda uzyskać super wzoru który mi idealnie wyliczy. liczę na to by chociaż z całej siły nie
mapache - jeszcze jeden test z dzisiaj. próbuje znaleźć jakiś wzór do obliczania odle...
via Wykop Mobilny (Android)
  • 7
mała migawka czym się teraz zajmuje

robię system bezpieczeństwa auta. nadrzędny do wszystkich który będzie hamował lub uniemożliwiał jazdę w danym kierunku jeśli jest przeszkoda. póki co pomysł jest by droga bezpieczna od przeszkody była zależna od prędkości. znam droge hamowania przy maks prędkości więc liczę proporcjonalnie ją do aktualnej. dodatkowo staram się dobrać parametry pomiarów tao by były one na tyle często by wszystko działało a na tyle rzadko by nie
mapache - mała migawka czym się teraz zajmuje

robię system bezpieczeństwa auta. nadr...
@mapache: Miałbyś dokładną informacje czy ilości pingów z czujnika pokrywa się ze spodziewanym wynikiem dla danej prędkości obrotowej silnika, podobnie z ABS-em, łatwo wykryć czy koła stanęły. Co do sterownika krokowego to się nie wypowiem, używałem pythona + l293d :(
mały update. ulepszyłem sterowanie manualne padem. wcześniej bywały problemy takie że np nie wychwytywało że trigger na padzie wrócił na punkt zerowy. jakoś no ten imput był pomijany gdzieś się gubił czy coś. nie wiem bo ciężko mi było odtworzyć taką sytuacje ale się zdarzała. powodowało to że auto się nie zatrzymywało i myślało że ciągle ma wciśnięty gaz i jechało. dopiero po czasie się zatrzymywało. problem rozwiązałem w ten sposób że
mapache - mały update. ulepszyłem sterowanie manualne padem. wcześniej bywały problem...
mam już obsługę czujnik odległości, częściowo bo jeszcze mam w planach parę rzeczy. przeszedłem dosyć długą drogę prób i błędów by to działało tak jak chcę. Słowem wstępu jeszcze są to czujniki ultrasoniczne, mają dwa piny które tutaj mnie interesują, trigger i echo. trigger nadaje sygnał dźwiękowy, a echo daje mi sygnał zwrotny w postaci stanu wysokiego, czas stanu wysokiego oznacza czas jaki potrzebował dźwięk od wyjścia do wrócenia do czujnika. Więc
mapache - mam już obsługę czujnik odległości, częściowo bo jeszcze mam w planach parę...
via Wykop Mobilny (Android)
  • 11
póki co wszystko idzie jak burza (ʘʘ) mam pierwsze odczytu z czujników odległości. problem jest tylko taki że to są nanjtańsze czujniki. dla rozjaśnienia na początek wytłumacze jak działają. są to czujniki ultrasoniczne. czylu działają wysyłając falę i odbierając gdy wróci odbita od przeszkody. znają prędkość dźwięku i czas jaki był od wysłania do odbioru obliczymy odległość. więc mam na czunikach dwa piny, jeden to trigger który triggeruje
mapache - póki co wszystko idzie jak burza (ʘ‿ʘ) mam pierwsze odczytu z czujników odl...

źródło: comment_1586209994bRnz6RzjQsR7RMrcnwuKPT.jpg

Pobierz
@spinel: ciężko mi powiedzieć ile czasu mi zajmie cała reszta, bo chociażby nigdy nie bawiłem się w przetwarzanie obrazu więc nie wiem czy szybko się tego nauczę czy też i nie. ale no pewnie tak z 5/10% mam. bo dosłownie no mam tylko jazde manualną, to jest nic jeszcze.

co do testów to korzystamy w pracy z tego google testów. więc coś tam umiałem. z tym że w pracy to już
więc prezentuje rozwiązanie problemu słabego serwa. wcześniej jak wielu z was zauważyło koła nie wracały idealnie na środek przez co auto lekko ciągle skręcało. udało mi się to rozwiązać softwerowo. rozwiązanie polega na tym że jeśli koła wracają na środek to jest odpalany wątek z timerem, jeśli nie będzie nowego inputu do skrętu kół to jest dodawany dodatkowy offset który ustawia fizycznie koła na środku a następie znowu na zero. jeżeli pojawi
mapache - więc prezentuje rozwiązanie problemu słabego serwa. wcześniej jak wielu z w...
świętuje mały sukces. udało mi się rozwiązać problem słabego serwa, konkretnie to ze serwo nie wraca idealnie na środek. udało mi się rozwiązać to programowo. mimo wszystko będę musiał pomyśleć o jakimś lepszym serwie, samo auto warzy 1.2kg, do tego guma z opon daje opór i serwo trochę wymięka. chcę uniknąć prac hardwerowych w aucie bo jest to dosyć czasochłonne i odciąga mnie od pisania. montaż lepszego serwa to jest projektowanie nowego
mapache - świętuje mały sukces. udało mi się rozwiązać problem słabego serwa, konkret...

źródło: comment_1586121270vOQ90T8UW7i17ROfxQ0Ep0.gif

Pobierz
Dodałem przyśpieszenie. Wcześniej prędkość była nadawana 1:1 z triggera w padzie, znaczy się oczywiście skalowana ale pozycja oznaczała daną prędkość jaką ma nadać w danym momencie. Powodowało to że jeśli się dała zbyt dużą prędkość bez rozpędzenia to silnik gubił kroki, co objawia się charakterystycznym dźwiękiem jak i brakiem ruchu. Można to usłyszeć na filmie. Dla demonstracji pod przyciskiem A umieściłem załączanie funkcji przyśpieszenia. Próbując się wzorować na prawdziwych samochodach przyśpieszenie rośnie
mapache - Dodałem przyśpieszenie. Wcześniej prędkość była nadawana 1:1 z triggera w p...
update statusu

Jednak projekt dalej będę prowadzić sam. Zmieniłem trochę połączenia w aucie, zmieniłem moduł zasilania 5V na inny jak i zasilam znowu RPi po złączu USB. wcześniej miałem wpięte pod GPIO ale potrafiło się RPi restartować radnomowo. Zmiana ta rozwiązała problem. Przeniosłem też moduły które miałem umieszczone na bokach auta by nie było trytek.

Z programowej strony. Dodałem logi, są 3 typy.
-Info: poprostu info co się dzieje
-Warning: sytuacja gdy
mapache - update statusu

Jednak projekt dalej będę prowadzić sam. Zmieniłem trochę...

źródło: comment_1585486856bHPdGUBlq933JaGb1ElKb1.jpg

Pobierz
przykładowe logi podczas startu auta i wyjścia

[Info]in SerialPort, initializing constructor
[Info]in SerialPort::open_comport(): Arduino found
[Info]in Servo, initializing constructor
[Info]in Servo::validateAngle(): Angle valid = 0
[Info]in Servo::turn(): turning servo 0 degrees
[Info]in SerialPort::send(): success
[Info]in Lights, initializing constructor
[Info]in Lights::setTurnSignal(): 0
[Info]in SerialPort::send(): success
[Info]in Lights::setHeadLight(): 0
[Info]in SerialPort::send(): success
[Info]in Lights::setBrakeLights(): 0
[Info]in SerialPort::send(): success
[Info]in Lights::setReverseLight(): 0
[Info]in SerialPort::send(): success
[Info]in StepperMotor, initializing constructor
[Info]in StepperMotor::StepperMotor(): Lanuch wiringPi succes
[Info]in
via Wykop Mobilny (Android)
  • 23
ruszam pownownie z projektem po małej przerwie. tym razem już nie sam, współlokator dołączył. od ostatniego wpisu nic nowego nie zrobiłem, nawet nie mergowałem zmian. dodałem tylko zewnętrzną kartę sieciową by pojazd nie musiał się łączyć z siecią by móc go obsługiwać. tworzy własną sieć.

mamy postawioną już Jire i Gerrita. Backlog jest rozpisany w komentarzu. W weekend otwieramy sprint. Sprinty będą po 3 tygodnie. Zastanawiam się jeszcze co wykorzystać do testów,
mapache - ruszam pownownie z projektem po małej przerwie. tym razem już nie sam, wspó...

źródło: comment_1582119084RNPZ7UzEYuC8bZN8NWqOHS.jpg

Pobierz
A więc...wyczyściłem kod, stworzyłem klasy do sterowania światłami jak i serwem które są w Arduino.

- Kierunkowskazy włączamy RMB lub LMB, oba na raz to awaryjne, by wyłączyć awaryjne wystarczy wcisnąć RMB lub LMB
- Tylne światła do jazdy dziennej, włączane i wyłączane strzałką w dół
- Światła hamowania które się pojawiają gdy się hamuje, następnie wracają do pozycji wyłączonej lub świateł dziennych zależnie od ustawienia
- Przednie światła do jazdy dziennej
mapache - A więc...wyczyściłem kod, stworzyłem klasy do sterowania światłami jak i se...
Auto już skręca( ͡ ͜ʖ ͡)

Kod po stronie Arduino jest gotowy i działa. Obsługuje ono taki funkcje jak:
-Kierunkowskaz lewo
-Kierunkowskaz prawo
-Światła awaryjne
-Przednie światła do jazdy dziennej
-Przednie światła drogowe
-Światła z tyłu do jazdy dziennej
-Światła hamowania
-Światło cofania
-Skręcanie pod danym kątem
-Ustawienie nowego środka dla serwa

Komunikacja pomiędzy RPi a Ardunio odbywa się poprzez kabel USB czyli Serial Portem. RPi wysyła
mapache - Auto już skręca(⌐ ͡■ ͜ʖ ͡■)

Kod po stronie Arduino jest gotowy i działa....
osiągnąłem kolejny kamień milowy w projekcie. Auto ruszyło ( ͡° ͜ʖ ͡°)

Kontrola odbywa się za pomocą pada od Xbox One który się komunikuje z RPi po Bluetooth. Projekt piszę w QtCreator by mieć dostęp do ich bibliotek bym mógł napisać aplikacje okienkową by ładnie interpretować wszystkie dane jakie zbieram i komunikaty. No i dodatkowo jest cross-compile, czyli kompiluje będąc na swoim ubuntu na RPi i tam też
mapache - osiągnąłem kolejny kamień milowy w projekcie. Auto ruszyło ( ͡° ͜ʖ ͡°)

K...
montowanie wszystko skończone. no może nie do końca, brakuje jeszcze kamery. więc opiszę co mam na pokładzie.

- 8x czujnik HC-SR04. Odczyty z nich są zbieranie przez osobnego klona Arduino i one są wysyłane do RPi. Czemu takie rozwiązanie? Stąd że odczyty nie są takie szybkie, są zależnie od tego jak daleko jest przeszkoda. To mogłoby dać mi opóźnienia, owszem mógłbym to zrobić na RPi i rzucić wątek asynchroniczny i nie ma
mapache - montowanie wszystko skończone. no może nie do końca, brakuje jeszcze kamery...

źródło: comment_WM3Vsif8pttXzsS9AwyBYePn2yipcnlp.jpg

Pobierz
@drag_op: Arduino agregujace dane z czujników to akurat świetny pomysł, z tym że jedno powinno wystarczyć.

@mapache: Do obsługi czujników użyj timerów i przerwań, zmieścisz się w mocy obliczeniowej spokojnie. Np. ustaw wyzwalanie przerwania kiedy na pinie bedzie zmiana stanu, a w funkcji obsługi przerwania tylko będziesz przełączał flagę pomiaru czasu odpowiedzi czujnika z 0 na 1. Obok wstawisz przerwanie timera które będzie wyzwalane co x czasu, a w jego