• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Modelarski sterownik silnika DC na Atmega8 według projektu AVT
#1
Jako ze jestem modelarzem a ostatnio szkutniczym zacząłem poszukiwać sterowania silnikami DC a ze produkty majfrendów maja osobliwe oprogramowanie wiec koledzy podesłali mi plik bas pisany w bascomie ktory niestety jakas nie działa z jakiego powodu nie wiem ale kompletnie sfrustrowany zaczynam działać w Airduino  płytke i bibloteke pod atmege juz mam a nawet programator działa ( linux )
W jaki sposób mierzyć szerokość impulsu przychodzącego z nadajnika RC ?
Jeżeli ktoś chce mi pomoc to materiały podeśle takie jak plik .bas
 
Odpowiedź
#2
W Arduino zazwyczaj nie trzeba wymyślać koła od nowa. Jak wpiszesz to co robisz w Google, po angielsku, zaczynając od słowa Arduino to pewnie znajdziesz gotowca, albo przynajmniej podobną bibliotekę.
Może akurat działasz na 433MHz, to jest gotowa biblioteka do prostych modułów i większość robi kod programu, VirtualWire, albo:
http://www.airspayce.com/mikem/arduino/RadioHead/.
https://randomnerdtutorials.com/rf-433mh...h-arduino/
Jest gotowa funkcja do pomiaru impulsu, https://www.arduino.cc/reference/en/lang...o/pulsein/ ale to tak średnio jest do komunikacji radiowej, to bardzo prymitywna funkcja i nie warto na jej bazie tworzyć czegoś dalej.
Jest też biblioteka do pilotów IR, gdzie jest opcja odczytu sygnału RAW, czyli wypluwa na serial czasy trwania impulsów niskich i wysokich, można to wprost zapisać sobie i odtworzyć w nadajniku w ogóle bez znajomości protokołu transmisji. Jest na jej bazie stworzona biblioteka IR do pilotów klimatyzacji, gdzie nadawane są bardziej złożone transmisje IR, jednym kliknięciem jest wysyłany cały set do klimy - ustawienie trybu, wentylatora, timerów,itp.
Kolejny pomysł to podpytanie na https://rctruck.pl/forum/viewtopic.php?f=77&t=3950, skoro rc w nazwie to pewnie jest tu tego też trochę, a stamtąd mam fajny program do wgrywania wsadów HEX spoza Arduino IDE.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
Nie o to mi chodziło bo impulsy pochodzą z typowego odbiornika RC a wiec w zakresie od 1ms do 2 ms gdzie położenie neutralne to 1,5 ms, mam tez listing podobnego programu ale w bascomie który dziwnie się zachowuje. Moj angielski jest słaby niestety. Nie mam problemu z zapisem danych do mikrokontrolera w linuksie jest Burn-o-mat i USBasp.
Jeżeli to coś pomoże to mogę załączyć listing z bascoma, nie bardzo rozumiem jak wstawka asemblerowa pozwala na zapis w eeprom wartości szerokosci impulsu podczas kalibracji a potem odczyt impulsu
Czytałem forum RC Truck i nic tam dla mnie ciekawego nie ma a może z tego powstać ciekawy temat z dziale DIY bo te chińskie programy są do kitu
 
Odpowiedź
#4
Ale na RC forum pewnie by wiedzieli, że chcesz mierzyć sygnał PWM. Hasłem do Gooogle jest: "arduino rc pwm read", angielski nie musi być na poziomie komunikatywnym, bo są ruchome obrazki: https://www.youtube.com/watch?v=UZKxUFkw...BoredRobot , a pisane tutoriale można wrzucić w translator: https://programming.vip/docs/three-ways-...eiver.html
Potem po sznurku znajdziesz rozbudowany projekt, który robi to co chcesz osiągnąć, może chodzi o bibliotekę https://www.arduino.cc/reference/en/libraries/ibusbm/ IBusbm, a sposób jej użycia jest pokazany tu: https://www.youtube.com/watch?v=BACBNgaC...otWorkshop
Jeśli te przykładowe nie zawierają tego czego szukasz to jest jeszcze ze 100k podobnych z wykorzystaniem Arduino.
Dlatego zabawę z BASCOM zakończyłem po 2 miesiącach prób, gdy zabrakło 4kb na kod, właściwie trzeba było już kupić program, książkę i bibliotekę, liczyć na wsparcie kilkunastu osób w PL, które w tym języku programują i udzielają się na forum Elektrody.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#5
Zaczynałem przygodę z mikrokontrolerami z Bascomem kilka układów powstało nawet ciekawych ale dla jednego projektu nie kupie programu ok będę kombinował posiłkując sie kodem z bascoma. Ale OK zaczynamy od początku czyli test1 polegający na tym ze odczytamy jakaś zmienną informująca o szerokości impulsu ktora potem bede przetwarzał. Napisze to zobaczymy czy zadziała
 
Odpowiedź
#6
Gdy Angielski nie bardzo polecam 

https://www.deepl.com/
 
Odpowiedź
#7
Jednak nie dam rady choć algorytm programu jest dla mnie jasny raczej poddam się bez walki niestety,

Program jak pisałem sterować mostkiem H , w układzie jest przycisk którym w każdej chwili wywołuje się procedure kalibracji której wartości zostają zapisane w wartości eeprom.  po zakończeniu kalibracji program już wylicza sobie wartości min i max i neutrum. Znalazłem taki przykład ale niewiele z tego rozumiem. przykład
Nie wiem jak robić podprogramy np. jeżeli nacisnę przycisk to skocz do label kalibracja a po jej zakończeniu zapisz w eeprom
 
Odpowiedź
#8
Mam płytkę Nano ale mam problem z wgraniem czegokolwiek bo ciągle pojawia się błąd dotyczący programatora a chce programować poprzez USB co robię źle ?
Arduino:1.8.20 Hourly Build 2021/12/20 07:25 (Linux), Płytka:"Arduino Nano, ATmega328P"

Szkic używa 1912 bajtów (6%) pamięci programu. Maksimum to 30720 bajtów.
Zmienne globalne używają 210 bajtów (10%) pamięci dynamicznej, pozostawiając 1838 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Problem uploading to board.  See https://support.arduino.cc/hc/en-us/sect...0003198300 for suggestions.


Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
 
Odpowiedź
#9
Przez USB wygrywa się z użyciem znajdującego się w NANO bootloadera. Może płytka to chiński klon ze starym bootloaderem, aktualnie nano ma bootloader ustawiony na 115200 baud. Stary miał 57000baud. W opcjach jest możliwość wybrania "OLD BOOTLOADER".
Jak masz programator to możesz też wypalić aktualny bootloader.
Pisałeś, że umiesz wgrywać z USBasp, jak raz wgrasz program programatorem to kasujesz bootloader, trzeba potem ponownie wybrać opcję "wypal boodloader", po wgraniu schować głęboko programator i używać bootloadera.
A co do programowania to opcji jest kilka:
1. Znajdujesz gotowca, tak jak jest wgrywasz do Arduino i używasz, z całym dobrodziejstwem...
2. Uczysz się programować, kursów jest na pęczki, np. tu: https://forbot.pl/blog//kurs-arduino-pod...rsu-id5290
3. Chodzisz po forach i piszesz by ktoś zrobił za friko, bo nie chce Ci się uczyć.
4. Piszesz specyfikację wymagań do programu i w dziale zlecenia stawiasz temat ile na to możesz przeznaczyć, może się ktoś skusi.

Nie wiem jakie programy pisałeś w Bascomie, ale ani w basicu ani w C/C++ nie robi się żadnych skoków. W głównej pętli programu umieszcza się funkcje (w basicu również procedury, w C to jest funkcja bez argumentów, "wojd"), które się wykonuje lub nie. W szczególności jakiś zapis kalibracyjny, który się wykona jeśli został wciśnięty konkretny przycisk.
Jeśli jednak piszesz jednostkowy program, to nie wiem czy jakaś kalibracja dostępna dla użytkownika jest w ogóle potrzebna, ustalasz sobie to przecież raz dla danego zestawu sprzętu, no chyba że on się tak ciągle rozjeżdża? Nawet jeśli kiedyś coś się zmieni to sobie ten program wgrasz na nowo z nowym zestawem danych.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#10
Tak to wiem bo wgrałem już bootloader i mogę wgrywać programy, natomiast nie wiem jeszcze do czego i jak używać kreslarki ( polska wersja)
1. tylko znalazłem 4 silnikowego łazika na dwa kanały ale go nie rozumiem podałem w linku
2. A mam kursy ale jak to na początku wszystko jest niejasne.
3. nie do końca mi się uczyć nie chce raczej brak nauczycieli a kursy to sa wskazówki i omówienie prostych przykładów
4. no raczej nie bo gdzie bedzie radocha ?
A parę ich było np. sterowanie podgrzewaniem reduktora LPG żeby nie było konieczności uruchamiania zimnego silnika, sterowanie światłami sekwencyjnymi w Fordach mustangach ale żaden nie odczytywał impulsów RC . W przykładzie z linku autor napisał szkic do kalibracji czy to konieczne ? może i nie ale przydać by się mogło. w Arduino wszystko jest inaczej nawet do przycisku trzeba biblioteki albo może obecnie tak mi się wydaje
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości