Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronach Poprzednia wersja
Nowa wersja
Poprzednia wersja
konwerter_svg_oscyloskop [2020/10/26 22:58]
hamsterking [WORKLOG]
konwerter_svg_oscyloskop [2020/12/06 23:10] (aktualna)
hamsterking [Przydatne narzędzia]
Linia 1: Linia 1:
-==== Konwerter obrazu na sinusa/rysowanie na oscyloskopie ====+==== Konwerter obrazu na sygnał/rysowanie na oscyloskopie ====
 ^Zamieszany|[[user>​hamsterking]] ​ | ^Zamieszany|[[user>​hamsterking]] ​ |
 ^Rozpoczęto | 2020-10-24 ​ | ^Rozpoczęto | 2020-10-24 ​ |
Linia 11: Linia 11:
 Jednak mikrokontrolery z zasady nie posiadają konwerterów cyfrowych na analogowe (DAC), więc najłatwiejszym sposobem jest  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. wykorzystanie sygnału PWM, który ładuje kondensatory.
-==== Przydatne ​narzedzia ​====+==== Przydatne ​linki z programami====
   - https://​www.wave-editor.com/​ - podgląd przebiegów plików z rozszerzeniem .wav   - https://​www.wave-editor.com/​ - podgląd przebiegów plików z rozszerzeniem .wav
   - https://​asdfg.me/​osci/​ - emulator oscyloskopu   - https://​asdfg.me/​osci/​ - emulator oscyloskopu
 +  - https://​www.svgviewer.dev/​ - podgląd plików SVG
 +  - https://​github.com/​hamsterking123/​svg_to_pwm/​tree/​master - repo z aktualnym kodem
 ==== Biblografia ==== ==== Biblografia ====
 [1] https://​www.youtube.com/​watch?​v=nlCADL5_g-I \\ [1] https://​www.youtube.com/​watch?​v=nlCADL5_g-I \\
 [2] https://​physics.stackexchange.com/​questions/​160048/​how-to-draw-waves-in-x-and-y-position-like-this-oscilloscope-example\\ [2] https://​physics.stackexchange.com/​questions/​160048/​how-to-draw-waves-in-x-and-y-position-like-this-oscilloscope-example\\
-[3]https://​github.com/​WarrenWeckesser/​wavio/​blob/​master/​wavio.py +[3]https://​github.com/​WarrenWeckesser/​wavio/​blob/​master/​wavio.py\\ 
-[4]https://​www.youtube.com/​watch?​v=MS931nlxB8Y+[4]https://​www.youtube.com/​watch?​v=MS931nlxB8Y\\ 
 +[5]https://​music.stackexchange.com/​questions/​74555/​how-to-generate-the-tone-of-a-specific-waveform\\ 
 +[6]https://​www.w3.org/​TR/​SVG/​implnote.html#​ArcImplementationNotes\\ 
 +[7]https://​developer.mozilla.org/​en-US/​docs/​Web/​SVG/​Attribute/​d#​Path_commands\\ 
 +[8]https://​observablehq.com/​@toja/​ellipse-and-elliptical-arc-conversion\\ 
 +[9]https://​www.johndcook.com/​blog/​2009/​12/​21/​bezier-basics/​ \\ 
 +[10]https://​www.geeksforgeeks.org/​cubic-bezier-curve-implementation-in-c/​ \\ 
 +[11]https://​www.mathsisfun.com/​algebra/​vectors-dot-product.html \\
 ==== WORKLOG ==== ==== WORKLOG ====
   * 25.10.2020\\   * 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. 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.
 {{ projekty:​kolo_oscyloskop.png |}} {{ projekty:​kolo_oscyloskop.png |}}
-*26.10.2020\\+  ​* 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. 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. ​
 +{{ projekty:​ellipse_arc_svg.png |}}\\
 +[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.1603749494.txt.gz
  • ostatnio zmienione: 2020/10/26 22:58
  • przez hamsterking