Konwerter obrazu na sygnał/rysowanie na oscyloskopie

Zamieszanyhamsterking
Rozpoczęto 2020-10-24
Status
Tagi

Skąd pomysł ?

Swojego czasu ktoś zarzucił pomysł narysowania logo HSP na oscyloskopie. Zaciekawił mnie na tyle temat, aby odkurzyć stare Arduino oraz ruszyć zapomnianego Pythona.

Ogólny zamysł oraz zasady

(Przykładowy opis w: [1])
Oscyloskop korzystając z dwóch kanałów oraz trybu rysowania w osi X oraz Y poszczególnych kanałach jest w stanie wygenerować obraz z sygnałów.
Jednak mikrokontrolery z zasady nie posiadają konwerterów cyfrowych na analogowe (DAC), więc najłatwiejszym sposobem jest wykorzystanie sygnału PWM, który ładuje kondensatory.

Przydatne linki z programami

  1. https://www.wave-editor.com/ - podgląd przebiegów plików z rozszerzeniem .wav
  2. https://asdfg.me/osci/ - emulator oscyloskopu
  3. https://www.svgviewer.dev/ - podgląd plików SVG

Biblografia

WORKLOG

  • 25.10.2020

Po długiej walce z Pythonem oraz biblioteką wavio udało się wygenerować plik wav, który ma dwa kanały i można rysować już pierwsze kształty - koło, jako złożenie sinusa i cosinusa.

  • 26.10.2020

Udało się stworzyć asynchroniczny przebieg trójkątny z użyciem numpy.concatenate, jednak przebieg jest teraz za wolny, aby narysować statyczny obraz.

  • 22.11.2020

Po miesiącu walki z SVG oraz PWMem (gdzie zamiast robić waveshaping z sygnału trójkątnego jest robiony DAC) udało stworzyć się stworzyć program, który tworzy plik .wav oraz łuk eliptyczny parametryzowany z użyciem końcowego punktu.
[Update z końca dnia]: <płacze w środku> - okazuje się, że dla SVG, oś Y rośnie w dół :) To, że wychodzą mi teraz dobre łuki, jest tylko efektem mojego kodu do kreowania punktów, a nie faktycznie poprawnie działający interpreter. Odkryłem to, gdy zauważyłem, że wg. standardu SVG, gdy dla linii podaje co raz wyższą wartość Y, to ta spada jeszcze bardziej. Planuje jakoś dokonać rzutowania punktów z osi dodatnią na ujemną.

  • 06.12.2020

Problem z osiami został rozwiązany. Okazało się, że program źle liczył kąty (zły znak) oraz później z tego powodu, była źle liczona krzywa (nie był uwzględniany znaku wartości kąta theta). Dodatkowo udało się zaimplementować równanie krzywe Beziera, więc aktualnie została kwestia czytania z pliku tekstowego.

  • konwerter_svg_oscyloskop.txt
  • ostatnio zmienione: 2020/12/06 23:10
  • przez hamsterking