Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 23 kwi 2024, o 12:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 30 mar 2017, o 12:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2016
Posty: 26
Lokalizacja: Opolskie
Pomógł: 0

Witajcie serdecznie.
Mam pewien problem i nie wiem w którym kierunku pójść, bo w programowaniu AVR jestem żółtodziobem.
Mianowicie buduję robota, który ma poruszać się tak jak czołg. Sterowanie jest proste, tak jak wynika to z pozycji Joysticka. Przód, tył, prawo, lewo.
Nadmienię tylko, że skręcanie robotem odbywa się tak, że silniki kręcą się w przeciwnych kierunkach. Jeśli silnik nr 1 kręci się w prawo to silnik nr 2 kręci się w lewo i robot obraca się w miejscu.

Mikrokontroler to ATmega8, taktowanie 8MHz.

Napisałem program, który steruje silnikami w tak opisany sposób tylko, że wszystko odbywa się automatycznie. Instrukcja po instrukcji. Więc wiem, że sprzęt jest podpięty i dobrany prawidłowo.
Poniżej pokazuje Wam jak to wygląda:
Obrazek


Moim problemem jest to, że nie wiem jak rozwiązać sterowanie nim poprzez Joystick. Jak w powyższy kod wkomponować sterowanie analogowe.
Bawiłem się micro-switchami ale nic z tego nie wyszło. Bo jak trzymałem wciśnięty przycisk to silnik faktycznie się kręcił , ale następnie zatrzymywał i tak w kółko, bo w programie miałem pełno _delay_ms, które zatrzymywały program.

Chciałbym aby działało to na zasadzie takiej, że jak microkontroler wykryje na odpowiednim pinie stan wysoki do którego podłączony jest Joystick to włączy odpowiedni pin do którego jest podłączony L293D a ten uruchomi silnik. I stan wysoki będzie trwał do momentu powrotu dźwigni Joysticka do pozycji neutralnej.
Tutaj macie kod, który wykonuje po kolei wszystkie tryby jazdy (jazda przód, tył i skręcanie). Mam nadzieję, że dzięki komentarzom wszystko jest jasne.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.





Wiem, że można takie sterowanie zrobić bez użycia microkontrolera i jest to mega proste, ale ja chcę się nauczyć programować, dlatego zależy mi na tym.


Myślę, że takie sterowanie jest dość popularne i znajdzie się ktoś kto pomoże.
Z góry dziękuję za pomoc.
Rafał



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 13:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Witam,
Jeżeli sterowanie analogowe to raczej peerkami ,
Trzeba uruchomić adc i odczytując wartości na peerkach uzależnić od nich kierunek obrotu i dobrze by było
wypełnienie PWM, by silniki spowalniały i przyspieszały płynnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 13:20 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

To zależy od joystika.
A co do testów to jak najbardziej możesz pobawić się na mikroswitchach.
wystarczy wyrzucić delay'e.
potem robisz tak:
jeśli klawisz w lewo to włącz silniki_do_skretu_lewo();

jeśli klawisz w prawo to włącz silniki_do_skretu_prawo();

jeśli żaden klawisz nie wciśnięty silniki_stop;

To tak najprościej...

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 13:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2016
Posty: 26
Lokalizacja: Opolskie
Pomógł: 0

Daro69 napisał(a):
Witam,
Jeżeli sterowanie analogowe to raczej peerkami ,
Trzeba uruchomić adc i odczytując wartości na peerkach uzależnić od nich kierunek obrotu i dobrze by było
wypełnienie PWM, by silniki spowalniały i przyspieszały płynnie.


Zaraz poszukam co to ,,peerki" bo pierwszy raz z tym się spotykam.
Co do PWM i płynnego uruchamiania silników to od początku postanowiłem, aby zrobić to całkowicie analogowo poprzez regulator obrotów (może jak będę potrafił programować to w przyszłości to zmienię, ale na obecnym etapie nie ogarnę tego).
Nie chciałem stosować joysticka z potencjometrem, którym moglibyśmy regulować prędkość jazdy tylko chcę joystick taki, który uruchamiałby tryb jazdy a osobne pokrętło regulowało by prędkość. Wydaje mi się, że takie rozwiązanie będzie programistycznie łatwiejsze do zrozumienia dla mnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 14:25 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

O obsłudze przycisków poczytaj tutaj
http://mirekk36.blogspot.com/search?q=drgania+styk%C3%B3w

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 15:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

rafalsobek1 napisał(a):
Zaraz poszukam co to ,,peerki" bo pierwszy raz z tym się spotykam.
To potencjometry. Taki skrót myślowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 16:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

hejka, :)
Marhef napisał(a):
rafalsobek1 napisał(a):
Zaraz poszukam co to ,,peerki" bo pierwszy raz z tym się spotykam.
To potencjometry. Taki skrót myślowy

Tak, miałem na myśli potencjometryczne sterowanie bo zasugerowałem się
rafalsobek1 napisał(a):
Jak w powyższy kod wkomponować sterowanie analogowe.

:D a... i sorka za ten skrócik myślowy, taki stary sloganik zasłyszany :D
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 17:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Może coś tak jak kolega MirkoT podpowiada kilka postów wcześniej.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

jakoś tak na przykład. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 06:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2016
Posty: 26
Lokalizacja: Opolskie
Pomógł: 0

Dzięki chłopaki za pomoc. Dzisiaj będę miał wieczorem trochę czasu to sprawdzę czy zadziała :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO