Zanim...
Zanim...



Polskie Forum FPV

Forum modelarzy i pilotów FPV
Dzisiaj jest piątek 16 lis 2018, 23:59


Strefa czasowa UTC+1godz.




Nowy temat Odpowiedz w temacie  [ Posty: 12 ] 
Autor Wiadomość
Post: niedziela 17 gru 2017, 15:35 
Offline
Awatar użytkownika

Rejestracja: środa 26 maja 2010, 21:40
Posty: 2507
Lokalizacja: Poznań
Mam problem z wgraniem softu GRBL do arduino nano. Zbudowałem ploter CoreXY z serwem do rysowania pisakiem i znalazłem przygotowaną wersję GRBL pod serwo.
https://github.com/robottini/grbl-servo

Obrazek


Póki nie odkomentowałem linii #define COREXY w config.h było ok. Po odkomentowaniu arduino wyświetla że program ma 102% możliwości procesora i na tym się kończy.

Obrazek


Czy można trochę "odchudzić" GRBLa żebym mógł załadować program do arduino nano?

_________________
...i tak nie skończysz na jednym ani na dwóch :-)


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 16:20 
Offline
Awatar użytkownika

Rejestracja: niedziela 07 lut 2010, 15:24
Posty: 9168
Lokalizacja: Bytom
Możesz spróbować zakomentować "#define MESSAGE_PROBE_COORDINATES". Jak dalej będzie za duży to odkomentuj "// #define REPORT_GUI_MODE". Tylko wtedy do GUI trzeba cośtam doinstalować (jakąś tabelę kodów błędów).

Jak to nie pomoże to możesz zyskać 1.5kB miejsca na kod (będzie max 32256 bajtów) zmieniając bootloader w arduino ze standardowego na Optiboot. Ale wymaga to też dopisania jego obsługi w arduino w pliku "boards.txt". Tu musisz pogrzebać po necie co i jak, ale za to możesz syskać 1.5kB placu w każdym arduino na mega328p w którym zmienisz bootloader.

_________________
Pzdr. -----MIŚ-----


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 16:39 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6620
Lokalizacja: Polska
miś pisze:
Ale wymaga to też dopisania jego obsługi w arduino w pliku "boards.txt".

Zamiast modyfikowac boards.txt wystarczy wybrac Arduino Uno jako platforme.


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 20:08 
Offline
Awatar użytkownika

Rejestracja: niedziela 07 lut 2010, 15:24
Posty: 9168
Lokalizacja: Bytom
pawelsky pisze:
Zamiast modyfikowac boards.txt wystarczy wybrac Arduino Uno jako platforme.
Ooo, tego nie wiedziałem. Dzięki za hinta !

_________________
Pzdr. -----MIŚ-----


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 21:51 
Offline
Awatar użytkownika

Rejestracja: środa 26 maja 2010, 21:40
Posty: 2507
Lokalizacja: Poznań
Zrobiłem Pawelsky jak napisałeś. Zmieniłem w wyborze płytki z nano na uno ale kończy się takimi błędami :

Szkic używa 31 600 bajtów z (97%) pamięci programu. Maksimum to 32 256 bajtów.
Globalne zmienne używają 1 633 bajtów z (79%) dynamicznej pamięci, pozostawiając 415 bajtów dla lokalnych zmiennch. Maksimum to 2 048 bajtów.
Niski poziom dostępnej pamięci, mogą wystąpić problemy z stabilnością.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0d
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0a
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x47
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x72
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x62
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x6c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x31
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x2e
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x31

Chyba jednak nie da się go oszukać

_________________
...i tak nie skończysz na jednym ani na dwóch :-)


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 22:02 
Offline
Awatar użytkownika

Rejestracja: niedziela 07 lut 2010, 15:24
Posty: 9168
Lokalizacja: Bytom
bo oprócz zmiany płytki na uno musisz wgrać do płytki bootloader od uno. Weź programator USBASP i przy pomocy softu arduino i usbasp zrób "wypal bootloader" do tej płytki.
I wszystko działa. Przed chwilą potraktowałem tak dwie płytki arduino promini i już działają jako Uno i soft się wgrywa przy ustawieniu na Uno.

_________________
Pzdr. -----MIŚ-----


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 22:15 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6620
Lokalizacja: Polska
Dokladnie jak Mis napisal. Optiboot ma jeszcze te zalete ze jest szybszy :)


Na górę
 Wyświetl profil  
 
Post: niedziela 17 gru 2017, 23:17 
Offline
Awatar użytkownika

Rejestracja: niedziela 07 lut 2010, 15:24
Posty: 9168
Lokalizacja: Bytom
I ma jeszcze jedną - ważniejszą zaletę. Umożliwia normalne używanie watchdoga w arduino.

_________________
Pzdr. -----MIŚ-----


Na górę
 Wyświetl profil  
 
Post: poniedziałek 18 gru 2017, 01:31 
Offline
Awatar użytkownika

Rejestracja: środa 26 maja 2010, 21:40
Posty: 2507
Lokalizacja: Poznań
Dzięki Pawelsky użyłem usbasp i zrobiłem z nano, arduino uno :) i po tym program załadował się bez problemu, podłączyłem do plotera HC-05 i steruję nim z komórki. Jedyne co mam do wyczajenia to znaleźć dla serwa w kodzie odpowiednik z aparatury modelarskiej - travel adjust i subtrim. Bo teraz ośka serwa chce wyskoczyć z orbity :) ustawia się prawie na skrajnej pozycji powiedzmy 0 i zamiast iść w stronę 180st chce iść na minus 180 gdzie już nie ma zakresu.

Próbowałem sztuczek z githuba :

define RC_SERVO_SHORT 15 // Timer ticks for 0.6ms pulse duration (9 for 0.6ms)

define RC_SERVO_LONG 32 // Timer ticks for 2.5 ms pulse duration (39 for 2.5ms)

define RC_SERVO_INVERT 1 // Uncomment to invert servo direction

Zakomentowałem pierwszą linijkę bo mam zwykłe serwo SG90 i odkomentowałem invert ale nic nie dało. Ustawienia są w spindle_control.c ale dla mnie czarna magia.

_________________
...i tak nie skończysz na jednym ani na dwóch :-)


Na górę
 Wyświetl profil  
 
Post: poniedziałek 18 gru 2017, 15:48 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6620
Lokalizacja: Polska
mikun pisze:
Zakomentowałem pierwszą linijkę

Ale dlaczego zakomentowales RC_SERVO_SHORT? Bez tego #define to tam sie beda cuda dziac (jesli sie w ogole skompiluje). Jesli juz to powinienes co najwyzej zmienic wartosc...


Na górę
 Wyświetl profil  
 
Post: wtorek 19 gru 2017, 14:14 
Offline
Awatar użytkownika

Rejestracja: środa 26 maja 2010, 21:40
Posty: 2507
Lokalizacja: Poznań
Byłem pewien że tu wybiera się jedno z dwóch trybów pracy dla serw szybkich i standard.

Funkcja inwersji serwa nie działa. Jedno serwo już spaliłem/przegrzałem bo wygląda jakby program chciał je obrócić poza mechaniczną blokadę serwa. Nie wiem gdzie ustawić zakres pracy serwa, czy to się robi w spindle_control.c czy w jakimś pliku h?

_________________
...i tak nie skończysz na jednym ani na dwóch :-)


Na górę
 Wyświetl profil  
 
Post: wtorek 19 gru 2017, 14:28 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6620
Lokalizacja: Polska
mikun pisze:
Byłem pewien że tu wybiera się jedno z dwóch trybów pracy dla serw szybkich i standard.

Nie, w ten sposob ustawiasz gorny i dolny zakres dlugosci pulsow (co zreszta opisano w komentarzach). Nie powinienes tego zakomentowywac bo zrobisz w kodzie kaszane.


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 12 ] 

Strefa czasowa UTC+1godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Technologię dostarcza phpBB® Forum Software © phpBB Group

Strona korzysta z plików cookie w celu realizacji usług zgodnie z . Polityką prywatności
Możesz określić warunki przechowywania lub dostępu do cookie w Twojej przeglądarce lub konfiguracji usługi.