Różnice
Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronach Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
konwerter_svg_oscyloskop [2020/11/22 14:21] 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 \\ | ||
Linia 20: | Linia 22: | ||
[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\\ | [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\\ | ||
Linia 28: | Linia 36: | ||
* 22.11.2020\\ | * 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. | 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. |