Skocz do zawartości

Bramka do pomiaru czasu


Armir

Pomocna odpowiedź

Przy budowie coraz szybszych line follower'ów są coraz większe problemy z dokładnym pomiarem czasu. Dokładny czas pomaga sprawdzić czy jest poprawa w jeździe. Przedstawiam tu jeden z najszybszych i najtańszych sposób zrobienia sobie bramek do pomiaru czasu.

Elektronika

Cały układ opiera się na arduino. Jest z nim taka wygoda ,że nie ma problemu żeby uruchomić uart. Jako czujnik wykorzystany jest fototranzystor 3mm. Jako laser wykorzystany jest najtańszy wskaźnik laserowy.

Programy

Program do arduin'a:

int laser = 0; 
int first = 0;
void setup()
{
 Serial.begin(9600);
}

void loop()
{
   laser = analogRead(0);
   if (first == 0 & laser < 1000){    
     Serial.print(1);
     delay(1000); //zabezpieczenie przed podwójnym uruchomieniem
     first = 1;
     laser = analogRead(0);
}
laser = analogRead(0);
if (first == 1 & laser < 1000 ){ 
 Serial.print(2);  
}
}

Jako ,że program jest na tyle prosty wydaje mi się ,że jest zrozumiały bez komentarzy.

Do pomiaru czasu służy program napisany w delphi. W programie użyty jest port COM5. Cały program jest tak napisany aby był jak najprostszy. Podczas uruchamiania programu arduino musi być podłączone. Po wciśnięciu przycisku start należy poczekać aż przycisk się zdezaktywuje jest to czas na reset arduin'a. Zmierzony czas nie może być mniejszy niż 1s ze względu na zabezpieczenie przed zatrzymaniem czasu zanim robot przejedzie przez bramkę.

Zdjęcia

prog.thumb.png.08ba09b627f638c9786187f825efd47d.png

Czas.rar

  • Lubię! 1
Link do komentarza
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Ja bym zrobił pomiar czasu bezpośrednio na Arduino - funkcja millis() zwraca liczbę milisekund jakie upłynęły od startu Arduino.

Dzięki takiemu podejściu nie trzeba się bawić w dodatkowy program na PC, starczy terminal. No ale grunt, że działa 😉

Link do komentarza
Share on other sites

Wydaje mi się, że program na PC można łatwo rozbudować o pamięć kolejnych przejazdów, zestawienia w formie tabel itd.

W tym względzie jest to duże ułatwienie, a projekt bardzo fajny;-)

Link do komentarza
Share on other sites

Pozwolę sobie troszkę pomarudzić 🙂

Robiąc bramki na zawody, używałem takiego rozwiązania jak twoje z tym że ja miałem wyjście podpięte do komparatora i dopiero potem na procek. I niby w czasie testów wieczorem było cud miód itd. ale na zawodach dały ciała. Chodziło o zmianę oświetlenia, cienie rzucane przez zawodników itd.

Chłopaki z wrocławia podpowiedzieli mi żebym użył sharpów. I tak też zrobię bo wydają się opcją idealną. A właśnie, nie miałem tutaj wylewać żalów tylko się spytać.

Jak to jest u ciebie? Też zmiany oświetlenia wpływają na pracę czujnika?

Pozdrawiam

Decado

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Z zmianą oświetlenia nie miałem żadnych problemów. Fototranzystor jest odczytywany analogowo więc poziom mogę dostosować bez problemu. Problemy są wtedy gdy laser się ruszy i nie jest na środku fototranzystora. Z sharpem może być teraz problem bo słyszałem ,że bramka na sharpie nie łapała najszybszych robotów ze względu na czas pomiaru.

Link do komentarza
Share on other sites

To ja tylko zagaję w temacie tego kodu w C.

if (first == 0 & laser < 1000)

domyślam się, że miało być && ? Czyli logiczny iloczyn, nie binarny? A że działa, to dlatego, że boolean true jest jako '1' a false jako '0' więc pasuje, ale taki kod może być mylący dla innych.

Link do komentarza
Share on other sites

witam, nie chce zakładać nowego tematu dlatego pisze w tym.

Chciałbym za pomocą arduino zrobć bramkę do pomiaru czasu okrążeń (motocross)

widzę to tak, do motoru przyczepiam jakiś nadajnik, po przejechaniu przez pramkę automatycznie zapisuje np na karcie sd czas okrążenia. Czy jest coś takiego możliwe? czy nie za bardzo ?

Link do komentarza
Share on other sites

Coś na pewno da się wymyślić, kwestia czy będzie to wystarczająco proste i niezawodne. Na torze podczas pomiarów jeździ jedna osoba czy więcej?

Link do komentarza
Share on other sites

Coś na pewno da się wymyślić, kwestia czy będzie to wystarczająco proste i niezawodne. Na torze podczas pomiarów jeździ jedna osoba czy więcej?

chciałbym kilka osób, to jest bardziej na trening niż pomiar na zawodach

Link do komentarza
Share on other sites

To może coś w tym stylu:

Na słupku bramki pomiarowej odbiornik podczerwieni (np. TSOP). Na motocyklu montujesz mały układ z mikrokontrolerem i diodą nadawczą. Dioda jakimś tam wybranym kodem cały czas przesyła jakiś ustalony (dla każdego zawodnika) kod co np. 100ms. Gdy zawodnik przejeżdża przez bramkę to układ odbiera kod i zapisuje sobie czas odebrania i kod zawodnika. Voila.

Link do komentarza
Share on other sites

Niestety nie pod kątem czasowym. Jeśli na poważnie myślisz o zleceniu komuś wykonania tego systemu to załóż temat w dziale ogłoszeń i pewnie znajdą się chętni 😉

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.