To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
WALET – czyli jak buduję sobie transceiver SDR
#11
Zakupione procesory okazały się dobre, przynajmniej w zakresie funkcji jakie mogę sprawdzić po ich wlutowaniu na płytkę i dołączeniu wyświetlacza.

[Obrazek: https://lx-net.pl/walet/image/kalibr_dotyk.jpg]
To fotografia pierwszego uruchomienia układu z nowym wyświetlaczem. Program rozpoznaje pierwsze włączenie wyświetlacza i wymusza procedurę kalibracji wyświetlacza.

[Obrazek: https://lx-net.pl/walet/image/pcb0.jpg]
A to stan płytki po kalibracji wyświetlacza ze wstępnym ustawieniem znaku na SP0ZZZ. Tak więc aktualny stan działających procesorów zakupionych w CN to 6:0 dla mnie ;-) Działa ekran dotykowy, działa impulsator. Całość pracuje zasilana z portu komunikacyjnego USB/RS232 opisanego wcześniej.

Dopiero teraz mogę zająć się programem i na GitHub jest już wersja binarna jak i dla Arduino w folderze "software/ver1_0". Proszę przenosząc kod do swojego środowiska Arduino zadbać po pierwsze o opisane wcześniej biblioteki ale również o zachowanie struktury plików, w szczególności o zachowanie plików grafiki w podfolderze /graph (ze ścieżką w stylu odpowiednim do systemu operacyjnego) tak jak to zawiera Github.

l.j.


Github
Cytuj
#12
   
Program się wgrał bez problemu .Znak wpisany ,teraz tylko opanowanie w poruszaniu sie po ekranie.


Załączone pliki
.png   image.png (Rozmiar: 494 bajtów / Pobrań: 201)
Cytuj
#13
Zgodnie z prośbą pobrałem repozytorium i sprawdziłem, że wszystkie pliki projektu otwierają się bez problemu z ostrzeżeniem, że są zapisane w starszej wersji i przy próbie zapisu mogą być zapisane w nowszej wersji. Moja wersja KiCada to 9.0.2+. To wersja stabilna z gałęzi Debiana 13. Nb, troszkę niezręcznie mi o tym pisać ale widzę, że wszędzie posługujesz się nazwą "KicCad" co może być źle odbierane przez niektórych. Mnie to nie przeszkadza.
Niestety, na przestrzenie kilkunastu lat odkąd śledzę rozwój projektu KiCad zmiany objęły praktycznie wszystkie aspekty środowiska co wiązało się z problemami dla tych co na bieżąco nie aktualizowali go do obowiązującej wersji. Ale jest na to sposób. Zarówno dla SCH jaki i PCB można zapisać używane (i ew. zmodyfikowane) elementy biblioteczne w osobnej bibliotece i dołączyć je do projektu. Nie jestem pewien czy zostanie ona (nowa biblioteka) włączona automatycznie jako pierwsza do projektu ale tą drogą można raz na zawsze ustalić które komponenty mają być brane pod uwagę w pierwszej kolejności.
I jeszcze jedna uwaga: ten projekt aż prosi się o strukturę hierarchiczną z arkuszem zawierającym poszczególne komponenty. wtedy projekt traktowany jest jako jeden, z jedną wspólna listą BOM, z wszelkimi z tego wynikającymi zależnościami. Można też zapisać go jako archiwum co daje gwarancję przenośności. 
Weź proszę to pod uwagę.
Praktykujący teoretyk
Cytuj
#14
Boję się, że nie nadążę z publikacja danych ;-) Przy okazji, w jaki sposób wgrałeś program? Z plików bin czy z poziomu Arduino?

Mam nadzieje, że ten opis pomoże?

[Obrazek: https://lx-net.pl/walet/image/screen.jpg]

1 - pole miernika S (odbiór), mocy lub SWR (nadawanie), w każdym przypadki 16 położeń wskazówki - pomiar S na razie jest w trakcie realizacji
2 - dioda odbiór(zielona)/nadawanie(czerwona)
3 - prędkość klucza elektronicznego - ilość grup na minutę według "PARIS". Zmianę prędkości uzyskuje się za pomocą enkodera  podczas nadawania kropek
4 - pole dotykowe przełączenia częstotliwości F1 (główna) i F2 (zapasowa)
5 - pole dotykowe zmiany kroku strojenia w cyklu 20->100->1000->10k->100k->1M->20.....
W pokazanym stanie (na zielono) ma znaczenie informacyjne i informuje jaki krok jest aktualnie wybrany. Po dotknięciu krok zmienia się na wyższy w podanym cyklu a kolor zmienia się na purpurowy i działa to z kolejnymi dotknięciami właśnie w podanym cyklu. Używając enkodera można zmieniać krok cyklicznie w obie strony. Wyjście z tego trybu nastąpi po naciśnięciu pola 4. Kolory zmienią się na zielony i zacznie działać przestrajanie częstotliwości.
6 - pole ewentualnej wizualizacji sygnału/ów na za pomocą fft, wodospadzik, na razie nie działa.
Przyciski z prawej strony:
3.5 - pole dotykowe zmiany pasma w cyklu 3.5 -> 7 -> ......28 -> 3.5. Do zrobienia jest dorobienie zmiany pasma za pomocą enkodera w obie strony
CW - pole dotykowe trybu pracy CW lub SSB w cyklu CW -> SSB -> CW ->......
DN - pole dotykowe wstęgi pracy DN(dolna), UP(górna) w cyklu DN -> UP -> DN ..... Wstęga jest automatycznie dobierana do działającego pasma podczas jego zmiany ale możliwa jest zmiana wstęgi dla konkretnego pasma
F2=F1 - pole dotykowe zrównania częstotliwości F2 na F1
3.6k - pole dotykowe zmiany pasma audio: LPF 3.6k -> LPF 2.4k -> BPF 800Hz -> LPF 3.6k .....
Mnu1 - przejście do procedury ustawiania parametrów (offset Si5351, znak stacji, opóźnienie CW)

Piotrze, dziękuję za sprawdzenie, że da się pliki PCB odczytać co na  pewno pomoże przy montażu. Przyjmuję z pokorą krytykę bo wiem, że mój styl projektowania PCB jest nieco chaotyczny. I tak ostatnio się poprawiłem choćby starając się prawidłowo rozmieścić napisy elementów co prawie mi się udaje. Ale nie jestem zawodowym projektantem PCB i pewnie nie starczy mi na razie czasu aby się tego szybko nauczyć i wdrożyć choćby prawidłową hierarchię poszczególnych płytek. Co do KiCad-a postaram się pisać nazwę tego oprogramowania prawidłowo bo nic tak nie utrwala pamięci jak drobny wytyk ;-)

cdn.  lj

Github
Cytuj
#15
Wgrałem Twój plik BIN bo w Arduino mam błąd kompilacj Audio , muszę nad tym popracować, KiCad wersja 10.xx nie ma problemu z otwarciem schematow i wygenerowaniem gerberów , ale jak wspomniał Piotr jest info o starszej wersji , enkoder nie działa , jest to do sprawdzeniai musze jeszcze zrobić płytkę z przyciskami do sterowania ,bo nie mam orginalnej Twojej PCB. Mam z wcześniejszego projektu YD1GSE , ale tam są troche inne wyprowadzenia , tak że cała zabawa dopiero się zaczyna.
Cytuj
#16
Bez elementów układ powinien działać w trybie nadawania (czerwona dioda na skali)

[Obrazek: http://lx-net.pl/walet/image/r9.jpg]
Dołącz opornik R9 co spowoduje, że system znajdzie się w trybie odbioru, powinien wtedy działać enkoder i ekran dotykowy.

lj
Cytuj
#17
Przeglądam procedurę instalacji  środowiska Arduino i na gorąco melduję, że przydałby się wycinek ekranu instalacji płytek ze wskazaniem tej konkretnej platformy, ponieważ jest więcej niż jedna. Ponadto dobrze byłoby pokazać jaką płytkę wybrać i jakie nastawy zegara, pamięci, usb itp dla tego projektu.

ps
Zapomniałem jeszcze dodać, że ESP32-A1S występuje w dwóch odmianach kodeków: ES8388 i AC101. Należy zwrócić uwagę na ten szczegół.
Praktykujący teoretyk
Cytuj
#18
Mam ten rezystor ,bo bez tego to ekran dotykowy nie działał, ale już jest OK. podmieniłem enkoder i się reguluje. Dołączam sie do prosby Piotra o nastawy ESP32 boards. A co do mojej kompilacji to wychodzi mi cały czas " Compilation error: AudioTools/AudioLibs/AudioRealFFT.h: No such file or directory . " Biblioteka zainstalowana ,



#include <dummy.h>               //Error Supression Libary
#include "freertos/FreeRTOS.h"   //ESP32 (R.T.O.S) Real Time Operating System
#include "freertos/task.h"       //RTOS Task handler (Controls System Tasks
#include "AudioTools.h"
#include "es8388.h"
#include "FS.h"
#include <SPI.h>
#include <TFT_eSPI.h>  // Hardware-specific library
#include "Wire.h"
#include "si5351.h"
#include <Arduino.h>
#include <RotaryEncoder.h>
#include <EEPROM.h>
#include "AudioTools/AudioLibs/AudioRealFFT.h"
/
Cytuj
#19
Znany użytkownikom Arduino pod Linuksem przypadek to niewłaściwe użycie małych i dużych liter. Dla mnie "ES8388.h" to nie to samo co "es8388.h". Pozostawiam autorowi miejsce poprawki. Kolejny problem: biblioteka instalowana z zakładki Arduino (choćby o tej samej nazwie i autorze) nie jest tożsama z instalowaną z pliku .zip. Nie wiem na czym to polega ale u mnie tak jest.
Wreszcie deklaracje z samego pliku .ino u mnie muszą mieć następującą składnię:
Kod:
#include "AudioTools/FFT/AudioRealFFT.h"
//-----------------------------loading required graphic elements in graph directory-------------------------------
#include "../graph/g_b.h"
#include "../graph/g00f.h"
#include "../graph/g00e.h"
#include "../graph/g01f.h"
#include "../graph/g01e.h"
#include "../graph/g02f.h"
#include "../graph/g02e.h"
#include "../graph/g03f.h"
#include "../graph/g03e.h"
#include "../graph/g04f.h"
#include "../graph/g04e.h"
#include "../graph/g05f.h"
#include "../graph/g05e.h"
#include "../graph/g06f.h"
#include "../graph/g06e.h"
#include "../graph/g07f.h"
#include "../graph/g07e.h"
#include "../graph/g08f.h"
#include "../graph/g08e.h"
#include "../graph/g09f.h"
#include "../graph/g09e.h"
#include "../graph/g10f.h"
#include "../graph/g10e.h"
#include "../graph/g11f.h"
#include "../graph/g11e.h"
#include "../graph/g12f.h"
#include "../graph/g12e.h"
#include "../graph/g13f.h"
#include "../graph/g13e.h"
#include "../graph/g14f.h"
#include "../graph/g14e.h"
#include "../graph/g15f.h"
#include "../graph/g15e.h"
#include "../graph/save.h"
#include "../graph/plus.h"
#include "../graph/minus.h"
#include "../graph/digit_green.h"
#include "../graph/digit_gray.h"
#include "../graph/rect_gray.h"
#include "../graph/rect_green.h"
#include "../graph/sq_gray.h"
#include "../graph/sq_green.h"
#include "../graph/walet0.h"
#include "../hb_24_81.h"  //define hilbert transform

Niestety, kompilacja kończy się następującym komunikatem:
Kod:
Compilation error: invalid conversion from 'TwoWire*' to 'uint8_t' {aka 'unsigned char'} [-fpermissive]

Nie mam dziś już czasu by brnąć dalej, zatem liczę na interwencję Leszka.
Praktykujący teoretyk
Cytuj
#20
Miałem zamiar opublikować te ustawienia wcześniej ale wyleciało mi z pamięci :-(  Mam nadzieję, że o to chodzi.

[Obrazek: https://lx-net.pl/walet/image/esp32a1s_arduino.jpg]
Ja pracuję na linux-ie (fedora) więc prawdopodobnie ścieżki do podfolderów są inaczej definiowane pod kontrolą Windows.
Faktycznie, ESP32A1S występuje lub występowało wcześniej w wersji z kodekiem AC ale o ile wiem obecnie są wyłącznie te z kodekiem es8388. Pliki tej biblioteki są u mnie w głównym katalogu projektu i można je ściągnąć z Github-a.

Jeśli chodzi o błąd biblioteki fft to po pierwsze sprawdź czy masz ją w ścieżce raportowanej przez kompilator ("AudioTools/AudioLibs/AudioRealFFT.h"). Jak to nie pomoże to proponuję zakomentować linię 43
//#include "AudioTools/AudioLibs/AudioRealFFT.h"
oraz wszystkie linie w zakresie 731-749 a więc dotyczące tej biblioteki. Jak pisałem, na razie, ta funkcjonalność nie działa więc można to pominąć do czasu aż wyjaśni się miejsce instalacji tej biblioteki. Nie pamiętam już jak instalowałem tą część Audio tools, być może instalowałem to dodatkowo wprost z folderu tej biblioteki.

Co do TwoWire* to na razie nie mam pomysłu ale to dość  wrażliwe miejsce i musi działać zarówno aby sterować kodek jak i peryferia I2C. W jakiej linii pojawia się ten błąd u Ciebie?
Boję się, że może to być również właściwość środowiska instalacji Arduino o ile jest inna niż linux. Oczywiście postaram się to wyjaśnić w miarę umiejętności ale mam nadzieje, że nie uważacie mnie za guru od C++ bo sam przebijałem się podczas pracy nad tym kodem z podobnymi problemami niejednokrotnie gdy tymczasem okazywało się, że to dla zawodowego programisty oczywista oczywistość :-(

lj

Github
Cytuj


Skocz do:


Użytkownicy przeglądający ten wątek: SQ6IYY, 2 gości