Autor Wątek: Kontrolery Arduino  (Przeczytany 53276 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Odp: Kontrolery Arduino
« Odpowiedź #165 dnia: Sierpnia 08, 2016, 21:53:59 »
Zaprojektowałem płytkę jako mały moduł dla jednej osi. Może być wpięty pomiędzy potencjometr albo czujnik, a wejście ADC.

Zaraz, bo się pogubiłem. To jest płytka takiego filtro/wmacniacza sygnału? Jaki koszt? 4szt by mi się przydały na początek.

Odp: Kontrolery Arduino
« Odpowiedź #166 dnia: Sierpnia 08, 2016, 22:07:56 »
Coraz częściej słyszę właśnie o OSHPark - jak tam z cenami i wysyłką do Polski? Bo jeżeli cenowo faktycznie jak w opisie to lepiej niż w polsce z dokumentacjami do pojedyńczych pcn

Odp: Kontrolery Arduino
« Odpowiedź #167 dnia: Sierpnia 09, 2016, 04:54:43 »
Gdzie mogę pobrać biblioteki AnalogScanner.h oraz resp.h.

Odp: Kontrolery Arduino
« Odpowiedź #168 dnia: Sierpnia 09, 2016, 05:37:41 »
Znalazłem brakujące biblioteki AnalogScaner.h oraz resp.h  mam nadzieję, że są dobre. Widzę, że resp.h jest zablokowana w programie.
Kompilacja jest ok sprawdzę później mój model i dam znać.


Odp: Kontrolery Arduino
« Odpowiedź #169 dnia: Sierpnia 09, 2016, 08:12:48 »
Sprawdziłem program na moim modelu. MCP23017 adres 20 działa, osie działają zgodnie z założeniami tzn. A0->X, A1->Y, A2-> Z oraz A3->obr Z. Przejście przez środek jest logarytmiczne z wyjątkiem osi Z (przejście liniowe).

Odp: Kontrolery Arduino
« Odpowiedź #170 dnia: Sierpnia 09, 2016, 08:58:29 »
Zaraz, bo się pogubiłem. To jest płytka takiego filtro/wmacniacza sygnału? Jaki koszt? 4szt by mi się przydały na początek.
Tak jest, w zamierzeniu miał to być mały pojedynczy moduł, którym można udoskonalić również już istniejące kontrolery.
Zanim udostępnię projekt, chciałbym go sprawdzić w działaniu. Niby prosty układ i raczej nie powinno być niespodzianek, ale pan Murphy rzadko chodzi spać.
Po zweryfikowaniu projektu udostępnię go w bazie OSHpark. Będzie można jednym klikiem od razu zamówić sobie płytki w setach po 3 szt. Za jeden set wyszło coś koło 6$. W wersji podstawowej przesyłka jest darmowa jako list w kopercie bąbelkowej. Jak z jej przebiegiem do PL, niestety nie miałem okazji sprawdzać, rzadko bywam obecnie. Nie powinno być problemów.
OSHPark używam do niewielkich płytek, gdyż płaci się u nich od cala^2. W tej kategorii są nawet tańsi od Chin. Jakość płytek jest bardzo dobra, a do tego są po prostu ładne. Firma wywodzi się od jednego zapaleńca hobbysty, który chciał stworzyć tańszą opcję profesjonalnych płytek dla takich jak on. I muszę przyznać, że sporego rozwoju ciągle są aktywni w tych rejonach. Już za to mają u mnie plus :)
Np. jakiś czas temu udostępniłem na ich stronie jeden z moich projektów. Tak im się spodobał, że wylądował na ich blogu, a na drugi dzień w skrzynce znalazłem kupon na 10$! Przydał się wczoraj.
Znalazłem brakujące biblioteki AnalogScaner.h oraz resp.h  mam nadzieję, że są dobre. Widzę, że resp.h jest zablokowana w programie.
Kompilacja jest ok sprawdzę później mój model i dam znać.
 
#include "resp.h" można spokojnie usunąć. To pozostałość po testach, nie jest żadną biblioteką, tylko dodatkowym plikiem z tablicą wartości dla funkcji log. Końcowo użyłem prostszej metody.

Odp: Kontrolery Arduino
« Odpowiedź #171 dnia: Sierpnia 09, 2016, 23:05:11 »
Mam już moduł XM-15 odpowiednik HC05. Różni się tym, że posiada konwerter napięć. Kupiłem go na Allegro http://allegro.pl/show_item.php?item=5756899669
 Mam też moduł bluetooth 2.1 na USB po stronie pc kupiony także na Allegro http://allegro.pl/show_item.php?item=5229707460&snapshot=MjAxNi0wOC0wN1QxMToxNjozNFo7YnV5ZXI7NDE0ZjFkZDVhNjExZTc3MGVmOTZhMGU1ODE1NjI2YmQxZjgwNjQ2OWU1M2VkYzZmOGI4NTkzMTYxZjAxM2Y5Yg==
Przy pomocy kolegi 3.14ter udało się sparować XM-15 z pc. W Internecie pod linkiem http://www.braesidewebdesign.com/electroblog/XM-15B jest przykład połączenia modułu XM-15 z Arduino UNO oraz prosty przykład szkicu do komunikacji z pc.
#include <SoftwareSerial.h>
SoftwareSerial Bluetooth(10, 11); // (RX, TX)
void setup()
{
pinMode(9, OUTPUT);  // this pin will pull the XM-15B CE pin HIGH to enable the module
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println("AT Command:");
Bluetooth.begin(9600);  // XM-15B default speed
}

void loop()
{

// read from XM-15B ==> Serial Monitor
if (Bluetooth.available())
Serial.write(Bluetooth.read());

// read from Serial Monitor ==> XM-15B
if (Serial.available())
Bluetooth.write(Serial.read());
}

Po uruchomieniu tego przykładu zgłasza się na monitorze szeregowym napis AT Command: zgodnie z setup. Wpisanie komendy AT i jej wysłanie nie powoduje żadnej reakcji (powinno być OK). Pytanie czy faktycznie mój moduł XM-15 komunikuje się z pc. Jak to można sprawdzić.


Odp: Kontrolery Arduino
« Odpowiedź #172 dnia: Sierpnia 10, 2016, 09:36:54 »
Mam problem co dalej z moja komunikacją przez bluetooth. Zagadnienie jest dla mnie nowe, dlatego błądzę. Wiem, że niektórzy mają u siebie ten rodzaj komunikacji i może coś doradzą. Zrobiłem zrzuty na 3 obrazkach. Wydaje się, że moduły powinny się komunikować. Pytanie dlaczego w szkicu (przykładzie) z mojego poprzedniego post nie ma odpowiedzi na komendę AT czyli OK.  Niebieska dioda LED w XM-15 migoce zgodnie z opisem na monitorze szeregowym jest napis "AT Command:" , ale brak odpowiedzi na AT. Testy wykonałem na UNO.







Nie jestem pewny czy ma sens przejście na Leonardo i testowanie programu MegaJoy z modułem XM-15 jeśli są problemy w UNO i prostym szkicu testowym.  Przy okazji pytanie do 3.14ter. Jak połączyć pin CE/CLR z XM-15, czy z Leonardo (jaki pin) czy do VCC. Co do pozostałych pinów w XM-15 to RXD z pin TX (1) oraz TXD z  RX(0) w Leonardo. Czy ostatnia wersja MegoJoy ma komunikację przez putty. Mam nadzieję, że  w końcu bluetooth zadziała.




Odp: Kontrolery Arduino
« Odpowiedź #173 dnia: Sierpnia 10, 2016, 09:41:37 »
Adaptery Serial/Bluetooth, jak HC05, HC06, XM-15 pracują w dwóch trybach:
- normalny tryb komunikacji, połączenia:
Adapter TX - badany układ RX
Adapter RX - badany układ TX
GND - GND
VCC - VCC
i nic więcej. Zakładam, że jest już sparowany z PC i widoczny w systemie jako dodatkowe jeden/dwa porty COM. Po włączeniu zasilania dioda miga dość szybko. Uruchamiamy PuTTy, czy inny terminal w PC i wybieramy numer COM wykrytego wcześniej adaptera, prędkość transmisji (fabrycznie 9600) i resztę parametrów jeśli potrzeba. Po ustanowieniu połączenia dioda moga dwukrotnie co jakiś czas. (tak jest w HC05, XM-15 może mieć inaczej). Układ jest gotowy do pracy.

- tryb komend AT. Jest to jakby wejście w ustawienia adaptera. W tym trybie przyjmuje on tylko zestaw komend, których wykaz można znaleźć w sieci. Ustawia się np. standardową prędkość transmisji, czy nazwę adaptera z jaką pojawi się on po przeskanowaniu otoczenia przez Bluetooth. Żeby ten tryb odpalić potrzebna jest zazwyczaj jakaś dodatkowa operacja. W HC05 musiałem zewrzeć jeden z pinów do masy i przeresetować adapter. W XM-15 jest to chyba ta linia CE. Ale, ale... jak to bywa z chińskimi producentami, wcale tak nie musi być, często istnieje kilka wersji sprzętowych pod tą samą nazwą. Najlepiej zajrzeć do dokumentacji, która niestety napisana jest w czystym Chinglish prosto z translatora.
W zasadzie użycie tego trybu nie jest potrzebne do normalnej pracy, używamy go jedynie, gdy chcemy zmienić jakieś ustawienia.

Do przetestowania komunikacji PC<-->XM-15 należy:
1. Zewrzeć TX z RX w XM-15, utworzy to pętlę.
2. Uruchomić program terminala na PC. Nie wiem czy to wina mojego systemu, czy programu, ale nie udało mi się jeszcze poprawnie nawiązać połączenia przy pomocy Terminal1.9b. Listuje wszytkieg porty COM, ale w rozwijanym menu są tylko dwa, nie te co trzeba oczywiście. Oprócz PuTTy używam i polecam również Termite, jest nawet w polskiej wersji językowej.
3. Prosto z fabryki XM=15 ustawiony jest na 9600baud, 8N1, itd. Standardowe ustawienie.
4. Wpisujemy cokolwiek i wysyłamy. To samo powinno wrócić z powrotem.

Jeszcze odnośnie numerów COM. Po wykryciu adaptera przez Win pojawiają się u mnie dwa nowe numery. Jeden z nich nie działa. Trzeba spróbować obydwóch lub zajrzeć głębiej w ustawienia sprzętowe XM-15. Gdzieś tam powinien pojawić się właściwy numer.

Jeśli tak jest, to komunikacja działa. Zostawiamy już to 9600 i w programie joysticka zmieniamy linijkę
Serial1.begin(115200); na Serial1.begin(9600);


Odp: Kontrolery Arduino
« Odpowiedź #174 dnia: Sierpnia 10, 2016, 12:18:21 »
Dzięki 3.14ter za informacje. U mnie jest tak jak na obrazku COM12 i COM13 gdzie COM12 jest tym do komunikacji. Po wpisaniu w PuTTy COM12 program jest gotowy do działania. W XM-15 dioda z migającej świeci ciągle.
 Z komendami AT na razie daję sobie spokój i instaluję XM-15 do Leonardo. Następnie odpalę program MegaJoy. Jeśli nie potrafię zmienić komendami AT ustawienia fabrycznego 9600 na 115200 to faktycznie zrobię to w programie MegaJoy. Dam znać jak poszło.

Odp: Kontrolery Arduino
« Odpowiedź #175 dnia: Sierpnia 10, 2016, 12:34:54 »
3.14ter wspomniałeś o ile się nie mylę, że w ostatniej wersji MegaJoy wyłączyłeś transmisję, czy możesz to sprawdzić. U mnie kursor w putty jest na początku i czeka.

Odp: Kontrolery Arduino
« Odpowiedź #176 dnia: Sierpnia 10, 2016, 12:53:40 »
W starszej wersji MegaJoy działa komunikacja po bluetooth. W najnowszej jest transmisja wyłączona. Dzięki 3.14ter za pomoc, teraz zobaczę co z tymi komendami AT. Dobrze byłoby zwiększyć transmisję na 115200

Odp: Kontrolery Arduino
« Odpowiedź #177 dnia: Sierpnia 10, 2016, 13:05:37 »
Odkomentowanie linii:
#define DEBUG_UART
w nowszej wersji włączy ponownie nadawanie raportu przez UART.

Jedna rzecz jeszcze z trybem AT. HC05 i XM-15 wymagają, żeby na końcu komunikatu automatycznie dołączać znaki CR+LF. Trzeba to zaznaczyć w ustawieniach terminala. Może w tym był problem.

Odp: Kontrolery Arduino
« Odpowiedź #178 dnia: Sierpnia 10, 2016, 13:23:00 »
Dzięki za informacje. Na koniec pytanie. Chcę próbować  testować te komendy AT.
W jakim układzie testowym czy ten mój stary z UNO czy może z Leonardo. Jak połączyć czy przez porty TX, TX w Arduino czy dowolny port tak jak w moim przykładzie. Jaki użyć do tego szkic. Może jest gdzieś jakiś opis jak to zrobić.

Odp: Kontrolery Arduino
« Odpowiedź #179 dnia: Sierpnia 10, 2016, 14:00:50 »
Na tyle, na ile udało mi się zrozumieć translatorowy angielski, to XM-15 działa nieco inaczej niż HC05.
Wejście CE to chip enable, główny włącznik modułu. Pin jest podwieszony do VCC, więc domyślne ustawienie jest ON. Możemy go zostawić w spokoju i nie podłączać, albo podłączyć do VCC.
Wg dokumentacji, XM-15 póki nie nawiąże połączenia przez Bluetooth z hostem, pozostaje w trybie AT. Po nawiązaniu połączenia przechodzi automatycznie do trybu DATA. Dlatego należy wyłączyć wszystkie inne terminale, które mogą próbować podłączyć się przez Bluetooth i przestawić moduł z AT na DATA.
Do nadawania komend AT potrzebujemy drugi adapter. Akurat w tym przykładzie z linku było to UNO.
Skrypt tworzy drugi programowy port serial, stąd można użyć innych pinów niż sprzętowe RX i TX.
XM-15 TX -> UNO 10 (RX)
XM-15 RX <- UNO 11 (TX)
GND - GND
VCC - VCC
Schemat jest poprawny i powinien działać. SerialMonitorem z Arduino łączysz się z Uno. Upewnij się tylko, żeby na końcu dołączał NL+CR, te dwa dodatkowe znaki, nowa linia i powrót karetki.