logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega8][C] samochód bluetooth - dwa moduły btm222

Zygfryt 21 Gru 2011 17:35 3273 4
REKLAMA
  • #1 10288412
    Zygfryt
    Poziom 9  
    Witam. Parę dni temu wykonałem projekt na studia - samochód sterowany bluetooth. Użyłem w tym celu avr - atmega8 w samochodzie i kontrolerze oraz dwóch modułów bluetooth btm222. Oba moduły są sparowane za pomocą rs232 (podpięte wcześniej pod komputer) oraz mają wyłączony tryb widoczności. Po załączeniu kontrolera i samochodu moduły łączą się ze sobą w pełni poprawnie i całość działa nienagannie. Powstaje jednak pewien 'kosmetyczny' problem, mianowicie w pilocie zamontowałem diodę, która ma sygnalizować połączenie między dwoma modułami. Wiem, że gdy btm222 połączy się z urządzeniem to wysyła przez swój TX komunikat "CONNECT '0012-6F-09B70B'" (oczywiście to tylko przykładowy adres) w razie przerwania połączenia odpowiednio DISCONNECT. Problem w tym, że moja atmega8 nie chce odebrać tego komunikatu. Ustawiłem przerwanie z wektorem od Rx z USART i nie jest ono nawet wywoływane. Wlutowałem 'nasłuch' pod bluetooth żeby sprawdzić czy faktycznie przesyła te informacje i wszystko jest tip-top (btm222 przesyła CONNECT i DISCONNECT ale bez efektu od avr). Załączam schemat ideowy pilota oraz kod w C do tej atmegi na pokładzie pilota.

    [ATmega8][C] samochód bluetooth - dwa moduły btm222

    Kod nie jest 100% release ponieważ w przerwaniu dla wektora rx dałem tylko włączenie diody bez rozpoznawania czy to CONNECT czy DISCONNECT, lecz jest to zabieg specjalny (z rozpoznawaniem już próbowałem) ponieważ gdyby przerwanie zostało wywołane to mój problem automatycznie znalazłby rozwiązanie.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10622853
    Zygfryt
    Poziom 9  
    Mimo wszelkich prób nadal nie znalazłem rozwiązania tego problemu. Postuję żeby odświeżyć temat bo zaginął w otchłani forum.
  • REKLAMA
  • #3 10622952
    mirekk36
    Poziom 42  
    Po pierwsze to CONNECT i DISCONNECT mogą być włączone/wyłączone za pomocą komend AT do BTM'a (być może masz wyłączone).

    Po drugie to przetestuj sobie to najpierw na zwykłym kablu RS232 zamiast na BTM'ach, bo możesz mieć błędy w kodzie do obsługi tego RS232.
  • REKLAMA
  • #4 10626353
    Zygfryt
    Poziom 9  
    CONNECT i DISCONNECT jest włączone na bank, ponieważ nasłuchiwałem rs-em podpiętym do komputera. A jeżeli chodzi o podpięcie rs232 zamiast btm222 to muszę to przetestować w ten sposób (chociaż sam transfer już działa jak trzeba) ale warto sprawdzić. Dzięki za pomoc, niestety testował będę dopiero od niedzieli, jak coś ruszy/nie ruszy dam znać.
  • #5 10707256
    rzuczek
    Poziom 17  
    Czy próbowałeś wysłać "magiczne" CONNECT z drugiego modułu jako dane?
    Wykrywa wtedy transmisje?
    P.S. BTM-222 ma wyjście do LED pełniącą dokładnie funkcje którą potrzebujesz...
REKLAMA