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

Napisanie programu do wizualizacji przebiegów - porada.

WacekPaprocki 19 Sty 2017 09:23 1068 8
  • #1 16211088
    WacekPaprocki
    Poziom 7  
    Posty: 24
    Chcę napisać program okienkowy do wizualizacji przebiegów (coś na zasadzie oscyloskopu). Próbki przebiegu na bieżąco będą przesyłane z mikroprocesora do komputera przez RS232. Na podstawie pobranych próbek program będzie rysował przebieg napięcia np. sinusoidę.
    Z pomiarem i przesłaniem danych do komputera nie powinienem mieć problemów, już robiłem coś podobnego, ale nie wiem jak ugryźć napisanie programu do wizualizacji przebiegów.

    Chciałbym, abyście podpowiedzieli mi jakiego najlepiej użyć: języka programowania (np. C++, C#), środowisko programistycznego (np. eclipse, builder).
    Może należy też użyć jakiegoś programu graficznego typu OpenGL.

    Proszę, o jakieś podpowiedzi/artykuły/strony/książki potrzebne do osiągnięcia celu.
  • #2 16211273
    michcior
    Poziom 30  
    Posty: 1132
    Pomógł: 159
    Ocena: 462
    Jaka prędkość (sampli na sekundę)?

    A może przeglądarka i strona web? Jest kilkadziesiąt bibliotek do rysowania wykresów, ostatnio testuję chartjs.org nawet dość szybkie.
  • #3 16213032
    WacekPaprocki
    Poziom 7  
    Posty: 24
    No z Atmegi16 można wycisnąć maksymalnie 15kSPS , ale nie wiem jeszcze jaką prędkość przesyłu będzie miał RS232, pewnie znacznie mniejszą.
    Chcę aby program poprawnie wizualizował przebiegi o częstotliwości przynajmniej 50Hz.

    Możesz coś więcej powiedzieć o wykorzystaniu przeglądarki do wizualizacji przebiegów. Czy z takiej biblioteki korzysta się w HTML? Czy po ściągnięciu trzeba ją jakoś zainstalować?

    Wizualizacja przebiegów w przeglądarce może być całkiem interesująca.
    Możesz podać jakieś źródła na ten temat (jeśli da radę to na początek coś w języku polskim)?

    Dodano po 1 [minuty]:

    Aha to jest javaScript
  • #4 16213097
    TvWidget
    Poziom 38  
    Posty: 4386
    Pomógł: 471
    Ocena: 691
    W HTML jest obiekt Canvas. Przy pomocy kodu w JS możesz narysować na nim co sobie wymyślisz. Z poziomu przeglądarki nie ma jednak dostępu do RS232. Można to obejść przy pomocy natywnej aplikacji, która będzie dane odbierała z portu COM i udostępniała je przez websocket.
  • #5 16213135
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Niemal każdy język sobie z tym poradzi (o ile nie "zapcha" się ilością danych) - to jest "zwykłe" rysowanie 2D, więc OpenGL to niepotrzebne komplikowanie tematu.
    Ja proponuję np. Visual Studio i język C# - jest tam od razu gotowy komponent SerialPort do obsługi portu szeregowego, jest też komponent wykresu, choć użyłbym raczej własnego rysowania po formie (GDI).
  • #6 16213182
    michcior
    Poziom 30  
    Posty: 1132
    Pomógł: 159
    Ocena: 462
    Ok. "Let's start Rock & Roll!"

    1) http://webpy.org/
    - sciągnij http://webpy.org/static/web.py-0.38.tar.gz
    - rozpakuj
    - do katalogu w którym masz katalog "web" dorzuć przykład ze strony głównej, czyli:

    Kod: Python
    Zaloguj się, aby zobaczyć kod


    - uruchom python <ten plik>
    - w przeglądarce: 127.0.0.1:8080
    - HELLO WORLD

    2) Dokumentacja na tej stronie, wszystko co trzeba tam jest. Idea jest taka, że python dostarcza Ci genialny prosty serwer, w którym możesz stworzyć wątek odbierający dane z portu szeregowego. Ze strony, za pomocą JS pobierasz poprzez AJAX. Genialne jest to, że web serwer i twoja aplikacja to jeden proces (aplikacja w pythonie) czyli współdzielą zmienne.

    co można? np to:
    http://demo.gorain.pl/
    Serwer obsługujący demo to właśnie webpy, aplikacja to czyste SVG + JS.

    To system do podlewania, poprzez port szeregowy komunikuje się z zaworami.
    W praktyce, odczyt poprzez AJAX kiedy serwer jest na tej samej maszynie, bez zbytniego obciążenia przeglądarki to ok 10 razy na sekundę. Dane najlepiej w pytonie przygotować jako JSON.

    Napisałem kilka różnych projektów w tej filozofii. Na RPI to działa jak złoto, z przeglądarką "kweb" można zrobić urządzenie, że nikt nie będzie w stanie powiedzieć że to przeglądarka a tym bardziej malinka.
  • #7 16221312
    WacekPaprocki
    Poziom 7  
    Posty: 24
    Zainstalowałem Visual studio 2013. Zainstalował się on z jakimiś błędami, których treści niestety nie pamiętam, ale mimo to zadziałał.
    Po napisaniu swojego pierwszego programu i zapisaniu go wyłączyłem visual studio (wszystko śmigało jak trzeba).
    Ale tu właśnie pojawia się problem:
    Po zamknięciu pierwszy raz uruchomionego programu VS, mogę go włączyć, ale jedynie przez zapisany podczas pierwszego uruchomienia projekt.
    Na ekranie nie widzę żadnej ikonki VS'a, ani szperając po plikach w folderze gdzie zainstalowany jest program nie mogę go włączyć.
    Tak sobie myślę, że gdybym nie zapisał pierwszego projektu to bym nie mógł włączyć VS na nowo.
    O co tu biega?
  • #8 16221432
    wiesniak
    Poziom 31  
    Posty: 1006
    Pomógł: 231
    Ocena: 52
    Powinieneś mieć ikonkę w menu Start, przy czym nie bedzie to "Microsoft Visual Studio 2013" jak wiele produktów od MS (z Microsoft na początku) tylko samo "Visual Studio 2013".
    Plik startowy środowiska to devenv.exe i powinien być w katalogu "c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\" (o ile nie pomyliłem numerka 12.0).
    Co do samego rysowania, to wcześniej marcinj12 pisał o GDI. Nigdy nie bawiłem się w jakieś wielkie i poważne rysowanie, ale przed przystąpieniem do prac sugeruję zrobić dokładniejszy wywiad. Obok Windows Forms jest technologia WPF, która jest nowsza i posiada wsparcie ze strony directx. Jak napisałem, nie jestem specem i nie powiem, które lepsze, ale polecam zrobić rozeznanie - WPF jest całkiem fajny, choć wymaga odrobinę innego podejścia niż formsy.
  • #9 16221446
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Ciężko powiedzieć po takim opisie, o co jest nie tak.
    Na pewno nie jest dobrze, że wystąpiły jakieś błędy podczas instalacji - należało je rozwiązać i ew. spróbować zainstalować program ponownie.
    Ikonki do programu powinieneś widzieć w menu start bądź w lokalizacji instalacji (domyślnie Program Files (x86)).
    Projekty domyślnie zapisują się w Moich Dokumentach, w katalogu Visual Studio, w podkatalogu Projects.

Podsumowanie tematu

✨ Użytkownik planuje stworzyć program okienkowy do wizualizacji przebiegów, który będzie odbierał dane z mikroprocesora przez RS232. W dyskusji poruszono różne podejścia do realizacji tego projektu, w tym wykorzystanie języków programowania takich jak C# i C++, oraz środowisk programistycznych, z naciskiem na Visual Studio. Zasugerowano również użycie przeglądarki internetowej do wizualizacji z wykorzystaniem HTML i JavaScript, z biblioteką chart.js do rysowania wykresów. Wskazano na potrzebę stworzenia natywnej aplikacji do odbioru danych z portu szeregowego, która mogłaby komunikować się z aplikacją webową przez websocket. Użytkownik zainstalował Visual Studio 2013, ale napotkał problemy z uruchomieniem programu po pierwszym zapisaniu projektu, co skłoniło do dyskusji na temat lokalizacji plików i potencjalnych błędów instalacyjnych.
Wygenerowane przez model językowy.
REKLAMA