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



Teraz jest 3 kwi 2026, o 11:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 3 maja 2017, o 16:32 
Offline
Nowy

Dołączył(a): 03 maja 2017
Posty: 7
Pomógł: 0

Witam.

Obecnie bawię się trochę z MQTT. Za pomocą modułu ESP8266 staram się nawiązać komunikację z Maorem.

Kody źródłowe jak i cały opis robota tutaj:
http://www.wobit.com.pl/produkt/7997/ro ... -minisumo/

W mainie znajduje się sterowanie Moarem, a mianowicie:

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


Interesują mnie dwie sprawy:

1. Chciałbym jeszcze dodać jeden case z wartościami niestandardowymi, ale tak aby były one odebrane przez uart z modułu. Coś na wzór:

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


2. Chciałbym, aby robot za pomocą uart skomunikował się z modułem wysyłając jakieś dane, np. wartość odczytu z jakiegokolwiek sonaru.

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


Teraz moje pytanie, jak wysłać jakieś dane z robota do modułu oraz czy możliwe jest takie ustawienie wartości funkcji motor_set_speed jak w punkcie 1. tak, aby wartości te były odebrane z uart? Istnieje jakieś proste rozwiązanie czy też wymaga to zaawansowanych funkcji? Dopiero zaczynam przygodę z AVR i szukam jakichś porad czy też przykładów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 21:32 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

Musisz skonfigurować moduł do pracy , via AT Command
dopiero potem możesz myśleć o komunikacji ...
moduł potrzebuje 3,3V do pracy i na takich też poziomach logicznych pracuje
musisz zapewnić Translację poziomów .. gdyż twory z wobitu pracują na TTL 5V

o module ... znajdziesz sporo u mnie na stronie wystarczy poszukać
Tu na forum na temat "tego modułu" nie rozmawiamy ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2017, o 09:02 
Offline
Użytkownik

Dołączył(a): 19 sty 2014
Posty: 83
Pomógł: 2

Taaa.
Opisz jeszcze jak masz komunikacje od strony ESP zrobioną , program w Arduino?
Tak jak wcześniej napisano potrzebny jest konwerter poziomów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2017, o 18:05 
Offline
Nowy

Dołączył(a): 03 maja 2017
Posty: 7
Pomógł: 0

Rozumiem, jednak interesuje mnie sam aspekt programistyczny. Jeżeli chodzi o obsługę modułu to używam skryptu napisanego w Lua. Swoje działanie opiera on o wiadomości nasłuchiwane z MQTT. Jeżeli data jest równa wiadomości "moveforw" to następuje zapis do uart znaku 2. Tak jak podałem w 1 poście, następuje przesłanie znaku do uart. Znaki odbierane są poprzez przypisanie zmiennej received do UDR. Jeżeli znak będzie równy 2 to wykonuje się odpowiedni case czyli ruch robota do przodu.

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


Mój problem polega na tym, że nie wiem jak wysłać dane z uart do modułu, bo powiedzmy, że odbieranie ich po stronie modułu mogę jakoś obsłużyć korzystając z funkcji uart.on

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


źródło: https://nodemcu.readthedocs.io/en/maste ... ules/uart/

Zakładam, że w punkcie 2. który przedstawiłem chodzi o odpowiednie przypisanie lub wykorzystanie UDR, który odpowiada za transmisję, tylko nie wiem jak to ugryźć. Chodzi mi tylko o fragment kodu na wysłanie jakiegoś pomiaru lub czegokolwiek, a moduł powinien sobie z tym poradzić. Skoro odbieram znaki poprzez

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


to czy wysyłanie ich nie będzie czymś na wzór tego :

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




Co do punktu 1. i niestandardowych wartości parametrów funkcji motor_set_speed to mógłbym wysłać więcej niż jeden znak np. 500 i 600, które mogłyby być wartościami parametrów funkcji, ale będą one wysyłane jako string.

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


Nie wiem jak je odebrać z uart tak, abym mógł ich użyć np jako zmienne typu signed int.

Nie jestem ekspertem w tej dziedzinie i mogę się mylić w jakiejś kwestii, więc proszę o wyrozumiałość



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2017, o 19:53 
Offline
Użytkownik

Dołączył(a): 19 sty 2014
Posty: 83
Pomógł: 2

Dobrze kombinujesz ale nie zadziała to z "500" ponieważ to już jest string a ogólnie twój program opiera się na odbieraniu znaków 'a'.
Musisz niestety doczytać np. w książkach mirka bądź po necie o parsowaniu stringów. Mirek ma fajną bibliotekę w książce .



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO