obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego (/watek-obs%C5%82uga-timer1-i-przerwa%C5%84-czyli-pr%C3%B3by-budowy-chronografu-balistycznego) |
obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - panzerkampf - 15-03-2017 Witam, na początek muszę się przywitać bo to mój pierwszy post i zarazem projekt mimo tego że młody nie jestem próbowałem zbudować chronograf czyli urządzanie mierzące prędkość i energię pocisku. O ile przez hardware przebrnąłem w miarę bez problemowo jak na laika to z programowaniem nigdy nie miałem do czynienia i tu pojawia się główny problem Mam dwie bramki IR w odległości 10cm i wertując różnie źródła doszedłem do wniosku że aby pomiar był najprecyzyjniejszy to powinno to wyglądać tak: -Bramka1 od strony lufy aktywuje przerwanie które... - aktywuje Timer1 z preskalerem 1 dla maksymalnej rozdzielczości - bramka2 zatrzymuje timer i zwraca wynik w postaci czasu // znając wzór możemy obliczyć z jaką prędkością poruszał się pocisk Tyle teorii ale mimo wielu prób nie umiem ubrać tego w kod Pojawią się również problemy przepełnienia oraz jak zmusić układ do wyświetlania wyniku aż do zarejestrowania następnego strzału? Mogę prosić o drobne podpowiedzi, polskich źródeł za bardzo nie znalazłem a mój angielski jest taki że ledwie zrozumiałem ogólną zasadę działania Jeśli uda się mi przez to przebrnąć to będzie już wielki sukces <dla mnie > ale docelowe plany są o wiele ambitniejsze: ciachałbym stworzyć menu w którym będziecie można wprowadzać masę pocisku do wyliczania energii kinetycznej, zapisywać każdy kolejny strzał V i Ek do pamięci eprom a co 10ty wpisywać wartość ciśnienia w kartuszu. To by pozwoliło na bardzo szczegółowa analizę danych i obliczanie tzw. górki i ilości stabilnych strzałów z karabinków PCP. Nie skromnie powiem że nie znalazłem komercyjnego chromo na świecie które by to potrafiło Cytując klasyka: To jak? Pomożecie? RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - Smaczek - 16-03-2017 Witam, Przy takich prędkościach wylotowych to powinno Tobie wystarczyć napisanie programu w oparciu o funkcję micros(). Pozdrawiam. RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - panzerkampf - 16-03-2017 Pewnie tak ale chodzi mi o maksymalną dokładność pomiaru pozatym chciałbym też mieć możliwość pomiarów broni palnej. W pierwszej kolejności boczny zapłon <taki ala KBKS> a potem może nawet i sztucery Podstawą do budowania pozostałych funkcji jest stworzenie maksymalnie dokładnego pomiaru Docelowo chciałbym udostępnić strzelcom gotowy program i listę części tak aby każdy mógł zbudować własny sprzęt. RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - Smaczek - 16-03-2017 Witam, A przeliczałeś ile wynosi czas przelotu, przy prędkości kilkuset m/s odcinka 10 cm? Jaka będzie dokładność (błąd względny) pomiaru, przy założeniu, że minimalny czas zmierzony- bez kombinacji- dla UNO wynosi 4 mikrosekundy? Jaką dokładność chcesz uzyskać? Pozdrawiam. RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - panzerkampf - 16-03-2017 Zakładając ze mamy: Prescale Time per counter tick Max Period 1 0.0625 uS 8.192 mS odległość bramek 10cm Najusilniejszy sztucer 1000m/s czas przelotu między bramkami 100uS tyknięć zegara 6,25 boczniaki .22 do 550m/s czas przelotu między bramkami 181.(81)uS tyknięć zegara 11,4 .177 około limitu 250m/s czas przelotu między bramkami 400uS tyknięć zegara 25 .22 około 200m/s czas przelotu między bramkami 500uS tyknięć zegara 31,25 Najsilniejsze pneumatyki FAC mogą dorównywać broni palnej. Wartości wolniejszych sprzętów nie znam np: jakiś łuków, kusz, markerów, proc i inych asg na kiju Ale napewno też można je pomierzyć. Kurcze do może pierwsze obliczenia tego typy tj od strony procesora, poproszę o podpowiedzenie czy dobrze myślę Wydaje mi się że też bardzo ważne będzie aby sam w sobie pomiar był maksymalnie szybko wyzwolony bez jakiegoś "laga" na zastanowienie się układu co ma właściwie zrobić. RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - Smaczek - 16-03-2017 Witam, Hmm, kiedyś potrzebowałem zmierzyć czas impulsu o dość dużej częstotliwości (pojęcie względne) i programowo rozwiązałem to na UNO za pomocą wcześniej wspomnianej funkcji micros(). Pomiarów mogłem dokonywać z dokładnością wynoszącą bodajże 4 mikrosekundy (było to dwa lata temu, dlatego piszę "bodajże"). W przypadku Twojego projektu- tak jak wyżej napisałeś, dwie bramki (dioda emisyjna i fotorezystor), połączone z pinami 2 i 3 (obsługują przerwania), zmiana stanu na pierwszej bramce powoduje przerwanie i w przerwaniu odczyt wartości micros(), zmiana stanu na drugiej analogicznie. To chyba najprostsze rozwiązanie i w Twoim przypadku wystarczająco (najprawdopodobniej) dokładne. W przypadku łuku radzę skorzystać z funkcji millis() i wziąć poprawkę na przedstrzale śródstrzala strzały ;-) Pozdrawiam. RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - panzerkampf - 16-03-2017 Czujniki podpięte są do d2i3 Co do sródtrzala-zastrzala strzały to chyba nie ma problemu bo zasłonięcie wyzwala pomiar a kiedy zostanie odsłonięta wiązka to chyba nie ma aż takiego znaczenia? Choć mogę się mylić Wiem że przerwanie jet szybrze niż "if zmiana stanu" <-- tak bardzo pierwszy kontakt z programowaniem Tylko nie daje mi spokoju ten Timer1 i micros() jaka będzie różnica dokładności pomiaru. Generalnie i większa prędkość tym większy błąd. I tak przy: 1000m/s czas przelotu między bramkami to 100uS, czyli 1mm na 1us micros() mierzy w pełnych mikrosekundach, Timer ma cykl co 0.0625 mikrosekundy. Co na tym przykładzie daje nam pomiary co 0.0625mm kontra co 1mm - to już dość spora różnica Kurde humanista z wykształcenia i zawodu, na co ja się porywam Btw. czy moje wyliczenia nie mają błędów ? RE: obsługa Timer1 i przerwań, czyli próby budowy chronografu balistycznego - Smaczek - 16-03-2017 Witam, Cykl timera to czas elementarnej operacji, a nie możliwa do uzyskiwania dokładność pomiaru. Obliczenia są OK. Pozdrawiam. |