logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Zlecę] Tworzenie oprogramowania do pomiaru czasu impulsów na RPi

Tadeo29 08 Sty 2024 21:46 600 13
REKLAMA
MediaMarkt Black Week
  • #1 20898959
    Tadeo29
    Poziom 18  
    Witam,
    Może by się znalazł chętny do napisania programu na Raspberry PI lub na podobny mikrokomputer. Program zliczałby czasy impulsów pojawiających się na wejściu, zapisywałby te czasy a ponadto prezentowałby by to wszystko na monitorze z ekranem dotykowym lub zwykłym monitorze komputerowym z podłączoną myszką (wyjście HDMI i USB) Myszka umożliwiałaby uruchomienie (Start, Stop, wybór ilości wejść, zapis sesji) Użytkownik dodatkowo mógłby sobie zapisać dane z sesji na karcie pamięci. Użytkownik miałby wybór czy pomiar będzie dokonywany w tym samym czasie z jednego wejścia czy z maksymalnie z pięciu. Podsumowując – jedno wejście procesora obsługuje start zegara a pozostałe wejścia od 1 do 5 czytają impulsy i zapisują czas licząc go od startu zegara. Dodam, że częstotliwość pojawiania się impulsów to maksymalnie około ½ sekundy do kilku sekund. Ilość impulsów na każdym wejściu w jednej sesji – maksymalnie 5. Układy wejściowe do obsługi źródła sygnałów/ impulsów biorę już na siebie.
    Jeśli będzie ktoś chętny to proszę o e-mail na priv
  • REKLAMA
    MediaMarkt Black Week
  • REKLAMA
    MediaMarkt Black Week
  • #3 20902513
    Tadeo29
    Poziom 18  
    Rozdzielczość - minimalna - seria 5 impulsów w ciągu około 10 sekund.
    Maksymalna to 5 impulsów w ciągu około 3 sekund.
    Czas trwania impulsu - nie sprawdzałem na oscyloskopie - rząd 10 milisekund
    Nie wiem czy o to Ci chodziło.
  • #5 20902737
    Tadeo29
    Poziom 18  
    Ma mierzyć czas impulsu z dokładnością do 0,01s
  • #7 20902871
    viayner
    Poziom 43  
    Witam,
    To zadanie obsłuży większość mikrokontrolerów współczesnych, nawet Arduino, z lekką optymalizacją, by sobie poradził.
    RBPi to lekki przesyt formy, nie wykorzystamy mocy systemu. Na RBPi można zaaplikować system "zero latency", jeżeli dokładność czy opóźnienia są problemem przy liczeniu z rozdzielczością 10 ms :).
    Pozdrawiam
  • #8 20902973
    _jta_
    Specjalista elektronik
    Jest kwestia, czy może być pokazywanie wyników na wyświetlaczu LCD (do Arduino są np. 2x16 znaków, albo 4x20) po zakończeniu pomiaru, czy też trzeba już w trakcie niego - to pierwsze można bez problemów, do drugiego dobrze byłoby użyć dwóch Arduino (chyba, że można używać przerwań do sygnalizacji zmiany stanu wejść). Jeśli wyniki mają być archiwizowane, to trzeba podłączyć to Arduino np. do Raspberry Pi, albo do PC.
  • #9 20903775
    Tadeo29
    Poziom 18  
    Już wyjaśniam, mam to zrobione na Arduino i aplikację na PC - działa, ale byle jak bo aplikacja jest "niedoszlifowana. Problem w tym, że trzeba mieć laptopa który kilka godzin będzie musiał mieć zasilanie. Dlatego wybrałem RBPi gdyż ma wszystko na sobie i po dołączeniu ekranu dotykowego spełni oczekiwania. Jako, że jestem tylko miernym amatorem w programowaniu sam nie ogarnę tego na RBPi.
    A poza tym to dziękuję za zainteresowanie tematem.
  • #10 20904135
    _jta_
    Specjalista elektronik
    Można jeszcze zbierać dane przy użyciu Arduino i wysyłać do Raspberry Pi przez port szeregowy.
    Albo... użyć rejestru PISO (74x166) do przetwarzania sygnałów wejściowych na sygnał szeregowy.

    Zbieranie danych bezpośrednio z GPIO powoduje ryzyko opóźnień, jeśli procesor będzie zajęty. Chociaż, jeśli jest wielordzeniowy i dałoby się przeznaczyć jeden rdzeń wyłącznie do odczytywania GPIO...

    Poza tym, są wersje Real-Time (albo choć Low-Latency) systemu dla Raspberry Pi, powinny szybko obsługiwać przerwania.
  • #11 20904308
    Tadeo29
    Poziom 18  
    Dziękuję za dyskusję, to w takim razie jaką dokładność wg Was będzie miał pomiar czasu gdy na wejściu Raspbery Pi pojawi się pierwszy sygnał uruchamiający zegar a dokładnie po 2 sekundach na drugim wejściu pojawi się drugi sygnał pomiarowy. Czy będzie to 2,00s. Czyli dokładność do jednej setnej sekundy bo taka jest mi potrzebna. Da się to osiągnąć gdy procesor będzie dodatkowo zajęty np. obsługą ekranu?
  • #12 20904544
    _jta_
    Specjalista elektronik
    Można odczytywać stan wejść w przerwaniach uzyskiwanych przy użyciu setitimer() - pewnie od systemu zależy, jakie będą odstępy czasy między nimi, można zadeklarować, jakie mają być, ale jak się zadeklaruje bardzo małe, to wychodzą większe, niż przy zadeklarowaniu nieco większych - a to dlatego, że program przestanie zdążać z obsługiwaniem przerwań. Wypróbuj taki programik:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Pierwszy argument to liczba przerwań, drugi deklarowany odstęp w mikrosekundach. Program podaje największy odstęp, jaki wystąpił.
  • #13 20918468
    Tadeo29
    Poziom 18  
    Dziękuję wszystkim za zainteresowanie i sugestie.
    Zamykam ten temat.

Podsumowanie tematu

W dyskusji poruszono temat stworzenia oprogramowania do pomiaru czasu impulsów na Raspberry Pi (RPI). Użytkownik poszukuje rozwiązania, które zliczałoby czasy impulsów na wejściu, z możliwością zapisu danych na karcie pamięci oraz wyświetlania wyników na monitorze lub ekranie dotykowym. Ustalono, że minimalna rozdzielczość pomiaru wynosi 0,01 s, a maksymalna częstotliwość impulsów to 5 impulsów w ciągu 3-10 sekund. Uczestnicy dyskusji zwrócili uwagę na ograniczenia RPI w kontekście dokładności pomiarów czasu oraz zaproponowali alternatywy, takie jak użycie mikrokontrolerów Arduino. Zasugerowano również wykorzystanie systemów o niskim opóźnieniu dla RPI oraz metody zbierania danych przez port szeregowy. Użytkownik podkreślił, że ma już działające rozwiązanie na Arduino, ale preferuje RPI ze względu na jego wszechstronność i łatwość w integracji z ekranem dotykowym.
Podsumowanie wygenerowane przez model językowy.
REKLAMA