karambolis8 Opublikowano 25 Kwietnia 2019 Udostępnij Opublikowano 25 Kwietnia 2019 Hej. Postanowiłem stworzyć osobny wątek o GPS loggerze, który od jakiegoś czasu rozwijam. Inspirację czerpałem z wątku Marka, ale w zasadzie teraz z kodu nie zostało już nic wspólnego. Funkcje prędkość i wysokość z GPS prędkość z rurki Pitota wysokość z barometru BME280 temperatura z TMP36 lub LM35 pomiar natężenia w wybranym zakresie 5A/20A/30A/50A... Komunikacja z użytkownikiem to zapis wszystkich odczytów na kartę SD do pliku CSV (np do importu do Excela) lub wyświetlacz OLED 128x64 z kilkoma ekranami zmienianymi przyciskiem Pamięci RAM jest zbyt mało na obsługę jednocześnie ekranu oraz karty SD. Bufor zapisu na kartę zajmuje co najmniej połowę RAMu i tego się nie przeskoczy. Zostało do zrobienia LEDy sygnalizujęce pracę i przycisk włączania/wyłączania zapisu w trybie z SD bez OLED pomiar przeciążeń w trakcie lotu w 3 osiach z ADXL335/MPU6050 zaprojektowanie płytki montażowej wszystkich komponentów Obecnie prototyp wygląda tak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maxiiii Opublikowano 26 Kwietnia 2019 Udostępnij Opublikowano 26 Kwietnia 2019 Zapowiada się fajny projekt. Ten prototyp wygląda bardzo dobrze. Przy takiej ilości wskazań i odczytów nie powinieneś czasami zmienić mikroprocesora? Można wykorzystać tanie, gotowe płytki z większością czujników jakie chcesz zastosować. Może to być mini apm z atmegą albo najlepiej taniego omnibusa z osd pomiarem napięcia i niezliczoną ilością wejść i wyjść. Karta SD jest już zamontowana na stałe. Do tego jeszcze ta ilość pamięci wystarczy nawet na wyświetlanie wykresów na wyświetlaczu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 26 Kwietnia 2019 Autor Udostępnij Opublikowano 26 Kwietnia 2019 W mikroprocesorach jestem typowy lajkonik, dlatego zapytam: dlaczego powinienem zmienić mikroprocesor? Chodzi o pamięć? Tutaj przyznam, rzeczywiście docieram do granic możliwości arduino nano/pro mini Chyba wystarczy mi MEGA Pro 2560. U chińczyków 9USD. Płytka 5.5x3.5cm Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maxiiii Opublikowano 26 Kwietnia 2019 Udostępnij Opublikowano 26 Kwietnia 2019 Chodzi mi o taką https://pl.aliexpress.com/item/Betaflight-OMNIBUS-F4-Pro-V2-Flight-Control-wbudowane-OSD-BEC-dla-FPV-wy-cigi-Drone-Quadcopter/32996639832.html Rozmiar 3,6 x 3,6 cm, na płytce czytnik kart, pomiar napięcia i prądu, barometr, żyroskopy i akcelerometry, BEC oraz wydajny procesor z pamięcią setki razy większą niż w pro mini. Wystarczy dodać GPS i kompas oraz napisać program i już. Chodzi głównie o rozmiar końcowego projektu. Mało prawdopodobnym jest zrobienie płytki mniejszej niż chińczyki. Ale to twój projekt. Potraktuj moje wypociny jako drobną propozycję. 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 26 Kwietnia 2019 Autor Udostępnij Opublikowano 26 Kwietnia 2019 Znalazłem tą płytkę omnibus. Problem dla mnie polega na tym, że nie znam się na programowaniu mikrokontrolerów. Ja się wywodzę z programowania wysokopoziomowego, jak C#. Arduino jest dla mnie o tyle przystępne, że ma wygodne środowisko, łatwo się je programuje i jest duże wsparcie w sieci. A jak ugryźć taki omnibus nie mam pojęcia Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
japim Opublikowano 26 Kwietnia 2019 Udostępnij Opublikowano 26 Kwietnia 2019 Wniosek taki: albo super kompaktowy rozmiar + programowanie BF (pewnie wystarczy odpalić podstawowa wersje i włączyć logowanie przy starcie) wtedy będzie wszystko z automatu ale bez wyświetlacza... albo jakiś gigant (próba zintegrowania wszystkich sensorów) z łatwym programowaniem. aby ugryźć Betaflight należy zaznajomić się z tym: https://github.com/betaflight/betaflight Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 26 Kwietnia 2019 Autor Udostępnij Opublikowano 26 Kwietnia 2019 Z tego co rozumiem, to Marek nie sugerował wykorzystania betaflight, tylko napisania swojego softu do omnibusa. To jest mój pierwszy projekt w Arduino, dopiero ogarniam to środowisko, bardziej chodzi o naukę, niż stworzenie optymalnego rozwiązania komercyjnego Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maxiiii Opublikowano 26 Kwietnia 2019 Udostępnij Opublikowano 26 Kwietnia 2019 Pierwszy link w google. https://www.google.com/search?q=arduino+stm32&oq=arduino+stm32&aqs=chrome..69i57j69i61j69i60l2j0l2.5064j1j9&sourceid=chrome&ie=UTF-8 U mnie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 26 Kwietnia 2019 Autor Udostępnij Opublikowano 26 Kwietnia 2019 No to może warto się zainteresować Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maxiiii Opublikowano 26 Kwietnia 2019 Udostępnij Opublikowano 26 Kwietnia 2019 Z tego co rozumiem, to Marek nie sugerował wykorzystania betaflight, tylko napisania swojego softu do omnibusa. Nie. Marek nie sugerował zastosowania betaflight. Marek sugerował, że to co chcesz zrobić i jeszcze o wiele więcej już jest zrobione. Nazywa się to autopilot ale z racji, że wielu ma autopilotowstręt nie użyłem tej nazwy. Dlatego też podałem linka do tej płytki ze względu na rozmiar i zawarte tam czujniki. Jest to super baza do różnego rodzaju oprogramowania. O czym świadczy to, że nawet ardupilot też ma już oprogramowanie dla tej płytki (sprawdzone bo na tym latam) Twój projekt jest świetny pod warunkiem, że napiszesz do niego oprogramowanie wykorzystujące wszystkie czujniki bez opcji autopilota. Bo na ten wyraz niektórzy dostają gęsiej skórki. Ja tam trzymam kciuki. 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 26 Kwietnia 2019 Autor Udostępnij Opublikowano 26 Kwietnia 2019 Szczerze mówiąc właśnie taki mam długofalowy plan Ten projekt jest na zapoznanie z technologią. Kolejny krok to miał być sensor hub podłączany przez mavlink do minimosd. Czyli OSD z sensorami w "dowolnej" ilości bez FC Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 7 Czerwca 2019 Autor Udostępnij Opublikowano 7 Czerwca 2019 Hej. Mój projekt trochę stoi. Po części z podowodu Wilgi Artexu i budowy skrzydełka pod FPV. Natrafiłem też jednak na pewną blokadę. Mam trochę podłączonych sensorów analogowych typu LM35, ACS758, rurka pitota i odczyty wykonuję w każdym przebiegu pętli. Powoduje to jednak kilka problemów. Przy Arduino znany jest problem "przegrzewania się" ADC podczas bardzo częstych odczytów. Wydaje mi się, że jedno Pro Mini już w ten sposób trwale uszkodziłem. Naturalnym pomysłem jest dodanie delay() przed odczytem analogowym. Wydaje mi się, że rozwiązało to u mnie problem przegrzewania, jednak spowodowało inną komplikację. Mianowicie GPS przestał łapać fixa. Objawia się to tym, że w pierwszym etapie działania programu, kiedy czekam na satelity, i nie wykonuję analogRead, GPS łapie wymagane minimum satelit. Kiedy jednak w kolejnym etapie dochodzą odczyty analogowe, raz na jakiś czas GPS gubi wszystkie satelity. Usunięcie delay(50) przed odczytami naprawia GPSa, ale obawiam się, że znowu uszkodzę ADC. Ktoś ma jakiś pomysł o co może chodzić? Dla chętnych kod do wglądu tutaj https://bitbucket.org/karambolis8/gpslogger/src/master/LoggerV2/LoggerV2.ino Mam już zakupioną płytkę STM32, ale kupiłem w pakiecie czasu na przeprotowanie kodu PS. Zrezygnowałem z tworzenia "sensor huba" z MAVLinkiem. Przy cenie Pixhawka i podobnych w okolicach 150zł nie ma to dla mnie sensu, a możliwości ArduPlane są strasznie kuszące Pzdr Adam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
czarobest Opublikowano 7 Czerwca 2019 Udostępnij Opublikowano 7 Czerwca 2019 Ja bym spróbował wykorzystać funkcję millis(), dzięki niej (choć pewnie wiesz ) można w pewien sposób zrobić "wielowątkowość". Mógłbyś wtedy wykonywać pomiar co jakiś określony czas nie blokując reszty programu. Mam na myśli coś takiego, nie ma niepotrzebnych delay() które zawieszają cały program: if(millis()-last>=1000) //wejście co minimum sekundę { //odczyt z czujników, wyświetlenie itp. last=millis(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 7 Czerwca 2019 Autor Udostępnij Opublikowano 7 Czerwca 2019 Wiem o co chodzi, w ten sposób odświeżam OLED. Może to jest dobry trop, spróbuję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
japim Opublikowano 7 Czerwca 2019 Udostępnij Opublikowano 7 Czerwca 2019 Wystarczy przecież odczytywać sensory co 0.5 sek a nie koniecznie co 0.05 sek i spokojnie nie przeciążysz wejść adc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karambolis8 Opublikowano 16 Lipca 2019 Autor Udostępnij Opublikowano 16 Lipca 2019 Problem z analog read ogarnięty dzięki milis(), odczyty co 250. Do sensora prądu ACS758 wstawiłem stabilizator liniowy L7805-5V, dzięki czemu cały układ jest zasilany po podpięciu do lipola, nie trzeba osobnego 5V z odbiornika/ECS. Wczoraj odbył się pierwszy lot Mam pytanko do kogoś, kto trochę lepiej niż ja ogarnia komunikację z GPS. Mianowicie mam dwa moduły, które nieopatrznie podłączyłem do Pixhawka. Po tym przestały one współpracować z biblioteką NMEA w Arduino. Odpalałem kod diagnostyczny, który próbował się łączyć z modułem na każdym możliwym baud i za każdym razem odczytuje jakieś krzaki i jest nie do użytku. Natomiast Arduplane w Pixhawku, jak i program do konfiguracji ubloxa jakoś sobie z tym modułem rozmawiają i działa on poprawnie. Ktoś może ma jakiś pomysł co się mogło stać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi