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

Jak kontrolować moduł Bluetooth za pomocą 8051 lub AtMega?

Spiochu 09 Sty 2008 17:50 10968 26
  • #1 4675681
    Spiochu
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 1
    Witam.
    Buduję pewne urządzenie do szkoły, które trzeba będzie w jakiś sposób kontrolować, konfigurować. Mam pytanie, czy ktoś spotkał sie kiedyś z obsługą modułu bluetooth za pomocą 8051? ew. AtMega. Jeżeli użyję bluetooth, będę musiał skonstruować ręczny pilot, za pomocą którego będzie dokonywane sterowanie. Urządzenie będzie na stałe w 1 miejscu, więc w grę może wejść obsługa modułu ethernet. Czy zna ktoś jakieś prostsze, tańsze metody komunikacji z komputerem przez ethernet, bez kupowania bardzo drogich modułów?
    pozdrawiam.
  • #2 4676239
    EQU
    Poziom 12  
    Posty: 26
    Pomógł: 2
    Cytat:
    Jeżeli użyję bluetooth, będę musiał skonstruować ręczny pilot, za pomocą którego będzie dokonywane sterowanie.

    Propnuje wykonac taki pilot w javie na telefon komorkowy, a dokladnie w J2ME ( naprawde prosta i szybka sprawa). Oczywiscie taki telefon musi miec pakiet z jsr-082, a sam modul z ktorym chcesz sie komunikowac najlepiej zeby mial profil SPP ( serial Port Profile ). Wtedy ten caly bluettoh to porostu 'serial port'. W necie jest sporo przykladow. Jezeli bedziesz mial problemy, chetnie wespre wlasnym kodem.
  • #3 4676595
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    EQU mógłbyś rozwinąć temat tej javy?

    Jestem w trakcie robienia robocika sterowanego przez BT. Póki co mam wszystko przetestowane aby sterować nim z kompa za pomocą pada.

    Przyznam że możliwość sterowanie z komórki bardziej by mnie i interesowała.
    Czy to musi być telefon z symbianem czy nie? jak sprawdzić tą javę czy będzie dobra?
  • #4 4676701
    EQU
    Poziom 12  
    Posty: 26
    Pomógł: 2
    Cytat:
    Jestem w trakcie robienia robocika sterowanego przez BT. Póki co mam wszystko przetestowane aby sterować nim z kompa za pomocą pada.

    tez jestem na tym etapie :) tylko ze pad podczepiony do uC, a ten do modulu radiowego.
    Cytat:
    Przyznam że możliwość sterowanie z komórki bardziej by mnie i interesowała.

    tez sie zgadzam, bo tutaj jest komunikacja w obie strony mozna wysylac info z czujnikow robota do laptopa, telefonu:)
    Cytat:
    Czy to musi być telefon z symbianem czy nie?

    Nie musi miec symbiana, chociaz na symbianie tez napewno! jest API do bluetotha ( wtedy piszesz w C++ ). Moze byc tez telefon z symbianem oraz z java(j2me). Symbian odpala twoj midlet napisanyw javie. Nie zajmowalem sie pisaniem na symbiana w C++. Latwiej przebic sie z java na poczatku niz z symbianem ( jak dla mnie ). Wystarczy stworzyc midlet, wyszukac urzadzenia wokol, wyszukac usluge SPP ( COMx ), polaczyc sie i operowac na strumieniach (zapis/odczyt).
    Cytat:
    jak sprawdzić tą javę czy będzie dobra?

    poszukaj na necie czy twoj telefon ma JSR082, moze byc JSR082 ( no OBEX ).

    ..tutaj screen z laptopa polaczonego z telefonem:
    http://www.ee.pw.edu.pl/~kolakowd/fotoJ2ME.jpg
    COM-Terminal zrobiony w .NET
  • #5 4676855
    Spiochu
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 1
    Hmm, nie sądze żeby dyrektor był zbyt zadowolony gdyby musiał z komórką latać;)
    Nie przeszkadza mi potrzeba budowy dodatkowego urządzenia nadawczego, nie stanowi to raczej problemu, haczyk jest tylko przy obsłudze modułu bluetooth. Wiem że mogę to zrobić przez irdę, ale nie o to chodzi. IRDa nie przebije się przez ścianę. Głównie robie to w ten sposób bo chce sie nauczyć obsługi "sinego zęba", przyda się.

    Ewentualnie, gdybym musiał już użyć komórkę, najprostszym sposobem byłoby wysłanie smsa sterującego.
  • #6 4676888
    EQU
    Poziom 12  
    Posty: 26
    Pomógł: 2
    Cytat:
    Hmm, nie sądze żeby dyrektor był zbyt zadowolony gdyby musiał z komórką latać;)

    dlaczego?
    Cytat:
    haczyk jest tylko przy obsłudze modułu bluetooth.

    jakiego dokladnie?
    Cytat:
    Głównie robie to w ten sposób bo chce sie nauczyć obsługi "sinego zęba", przyda się.

    chcesz napisac wlasny stos/ obsluge dla bluetootha ? po co wywarzac otwarte drzwi ? i tak najprawdopodobniej ten modul bedziesz konfigurowal UARTem wysylajac komendy AT.
  • #7 4676998
    Spiochu
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 1
    Właśnie jeszcze nie wybrałem.
    Myślałem o BTM-330 z tme.pl

    http://tme.pl/katalog/?art=BTM-330

    Ze względu na cenę, chyba najtańszy w ofercie. Jeszcze sie zastanawiam czy nie wystarczył by moduł ze starego telefonu komórkowego np nokia 6310i?

    haczyk przy obsłudze bluetooth.. chodzi mi o to, że nie wiem narazie jak to obsłużyć z poziomu języka programowania(c, asm, bascom-obojętnie). Jeżeli jednak naprawdę będzie to sterowane jak zwykły UART to nie będzie większego problemu.
  • #8 4677003
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    Witam,

    kolego EQU widzę, że robisz fajne rzeczy w javie. Ja się tym jeszcze nigdy nie zajmowałem. Tzn programuję ale nie w javie - przynajmniej narazie. Ale prostota o jakiej mówisz jeśli chodzi o stworzenie sposobu komunikacji przez RS232 poprzez Bluetooth w komórce itp - hmmm fajnie brzmi....

    tylko, że widzę że dla ciebie to bułka z masłem i dlatego ludziska którzy nie mieli z tym do czynienia nie za bardzo czają o co chodzi.

    mógłbyś - to również moja prośba tak na przyczepkę do tego tematu - tak krok po kroku powiedzieć, co jak po kolei trzeba zrobić, skąd wziąć srodowisko programistyczne czy jak? - aby napisać jakiś właśnie taki prosty programik hmm sorry "midlet" jak mówisz - który by robił taką transmisję.

    Ja mam np Nokię N95 więc ona chyba obsługuje javę tą o której mówisz - sory za laicyzm moich pytań ale widać że nic a nic nie dotykałem tego tematu a zainteresował mnie do żywego

    pozdrawiam
  • #9 4677080
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    &Spiochu BTM 330 nie ma spp i chyba nie zrobisz łatwo na nim takiej komunikacji.
    ja mam BTM 112 . jest niewiele droższy. udało mi się go skomunikować z kompem ale tylko w trybie slave. w trybie master nie działają mi komendy nie wiem czemu. Tobie skoro chcesz zrobić 2 urządzenia komunikujące się za pomocą BT będzie jeden master potrzebny.

    @EQU mirekk36 ma rację. niewiele kumam z Twojej wypowiedzi odnoście tej javy. Mam też pytanie do tego pada. rozebrałeś go i wsadziłeś procek czy wykorzystujesz całego i stworzyłeś hosta usb na procku
  • #10 4677126
    EQU
    Poziom 12  
    Posty: 26
    Pomógł: 2
    Cytat:
    Ja mam np Nokię N95 więc ona chyba obsługuje javę tą o której mówisz

    ten telefon ma wszystko :), mozna nawet GPS'em sie pobawic:)

    Java™ MIDP 2.0; platforma CLDC 1.1; Advanced Multimedia Supplements (JSR-234); Bluetooth API (JSR-82); FileConnection and PIM API (JSR-75); JTWI (JSR-185); Location API (JSR-179); Mobile 3D Graphics API (JSR-184); Mobile Media API (JSR-135); Nokia UI API; Scalable 2D Vector Graphics API (JSR-226); Security and Trust Services API (JSR-177)
    SIP API (JSR-180); Web Services API (JSR-172); Wireless Messaging API (JSR-205)


    Moglbym stworzyc ten kurs krok po kroku ale nie mam czasu, a nie chce tego odwalic na odczep ( jak ktos sie wkreci to mozemy pogadac na GG:6328170 ). Uzywam IDE EclipseME ( ma uzupelnianie skladni i jest bardzo wygodne ). Na ich stronie jest kurs wprowadajacy do ktorego niecierpliwych odsylam:
    http://eclipseme.org/docs/installation.html

    Cytat:
    @EQU mirekk36 ma rację. niewiele kumam z Twojej wypowiedzi odnoście tej javy. Mam też pytanie do tego pada. rozebrałeś go i wsadziłeś procek czy wykorzystujesz całego i stworzyłeś hosta usb na procku

    java jest to jezyk programowania :) J2ME jest to platforma na urzadzenia mobilne. Uzywalem pada z gameportem :) Obsluga to przetwornik A/C do obslugi osi + pare pinow uC dla przyciskow pada
  • #11 4677725
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Witam
    Wejsć w bt fajna sprawa, ale nie wiem czy się nie rozczarujesz jeśli okarze się, że zasięg znikomy jest... Jak już wybierasz moduł to patrz na jego parametry (moc i czułość) Tak czy siak ściany są różne i na prawde może być duży problem z zasięgiem. Ja bym to zrobił na modułach z emode i miałbym 100m bez kombinowania z antenami.
    Pozdrawiam
  • #12 4678070
    EQU
    Poziom 12  
    Posty: 26
    Pomógł: 2
    Cytat:
    Wejsć w bt fajna sprawa, ale nie wiem czy się nie rozczarujesz jeśli okarze się, że zasięg znikomy jest... Jak już wybierasz moduł to patrz na jego parametry (moc i czułość)

    nie rozczaruje sie bo mam jasno postawione wymagania co do zasiegu i predkosci. Ponadto zalezy mi na dwukierunkowej komunikacji. Niewiem jak inni koledzy z watku.
    Cytat:
    Ja bym to zrobił na modułach z emode i miałbym 100m bez kombinowania z antenami.

    Tak zgadzam sie. Wszystko zalezy od tego jakie sie chce miec osiagi. Btw. co to sa za moduly? mozesz powiedziec cos wiecej ?
  • #13 4678170
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    EQU szukam coś o javie w K750i i piszą tylko że Java MIDP 2.0. Nada się to czy nie?
  • #15 4678391
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    Super.
    Temat wciąga coraz bardziej.

    Jak już wiem czego szukać to dla dalszych zainteresowanych tematem szersza lista telefonów
    http://www.i-droid.pl/faq.php?kid=7

    Nigdy w Javie nic nie tworzyłem i nie wiem czy temat mnie nie przerośnie ale może jakoś z czasem coś powstanie.
    Na początek myślę o wysyłaniu 1 bajtu po porcie szeregowym po naciśnięciu klawisza lub joysticka w telefonie. Bez żadnej szaty graficznej komunikacja tylko w stronę do modułu. Np naciskamy 1 to tel wysyła liczbę 1 itd.

    Jeśli można by kolegę EQU prosić o jakąś pomoc w wolnych chwilach.

    Wiadomo, najtrudniej wbić się w temat ale potem już może będzie z górki.

    Zapraszam chętnych do dyskusji. Ze swojej strony służę pomocą odnośnie użycia tanich modułów BTM-112.

    Pozdrawiam Sławek
  • #16 4678459
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    http://www.kamami.pl/?id_k1=52&id_k2=65
    serii CC nie polecam, bo to starsze prototypy, reszta jest unowoczesnioną wersją czyli TLX obsługującą sprzętowe kodowanie i inne bajery mocno ułatwiające prace.
  • #17 6798010
    Compiler
    Poziom 12  
    Posty: 98
    Pomógł: 1
    Ocena: 3
    Mam takie pytanko, a właściwie 2 :P
    1. Jak coś przesłać do btm 222 z uC np komendy AT lub coś do wysłania przez blue.. ?
    2. Oraz jak odebrać jeśli btm coś wysyła ? :)

    Jakoś nigdzie nie mogę tego znaleźć ;/
    Najlepiej w bascomie. Używam atmegi 32 i wszystko po podłączałem chyba dobrze :) rx-tx itd.
  • #18 6799126
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    1. po porcie szeregowym
    2. po porcie szeregowym
  • #19 6809142
    Adamu_s
    Poziom 11  
    Posty: 64
    Kolega Compiler nie pytał po jakim porcie tylko JAK?
    Ja w zasadzie tez zabrałem się do tego tematu. Wiem, że komendy wysłać należy po porcie szeregowym.
    A mógłby ktoś podać przykład wysłania komendy AT.
    Np. komenda "E" - włączanie i wyłączanie echa E1 - echo włączone, E0 - echo wyłączone.
    Czy jak chcę wyłączyć echo to mam wysłać UARTem kod litery "E" i cyfry "0"?
    Przzepraszam za głupie pytania ale nie miałem wcześniej do czynienia z komendami AT.
    Pozdrawiam
  • #20 6809981
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    nie podałeś w czym to chcesz więc podam w bascomie
    np" print "ATL0"
  • #21 6810147
    Adamu_s
    Poziom 11  
    Posty: 64
    Dzięki. W zasadzie nie chodziło mi o język programowania ale raczej o sposób wysłania komendy. Tu już widzę pewną ważną rzecz, o czym z resztą dziś przeczytałem, że komendę należy poprzedzić literkami "AT".
    Ale nawiązując do Twojej odpowiedzi Slawko_k mam pytanie: dlaczego "ATL0" a nie "ATE0" jak by się mogło wydawać...
    Pozdrawiam.
  • #22 6810183
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    Cytat:
    mam pytanie: dlaczego "ATL0" a nie "ATE0"

    w pdf'ie masz wszystkie komendy, poczytaj
  • #23 6810252
    Adamu_s
    Poziom 11  
    Posty: 64
    Cytat:
    w pdf'ie masz wszystkie komendy, poczytaj

    Dlatego ponawiam pytanie: dlaczego "ATL0" zamiast "ATE0" przy wyłączaniu echa?
    No chyba, że kolega ma innego PDFa, bo ja mam tego
    Pozdrawiam.
  • #24 6810313
    slawko_k
    Poziom 35  
    Posty: 2921
    Pomógł: 253
    Ocena: 233
    Cytat:
    dlaczego "ATL0" zamiast "ATE0" przy wyłączaniu echa?

    podałem przykład wysłania dowolnego polecenia i nigdzie nie mówiłem nic o tym że to wyłączanie echa.
    ja mam pdf'a bo btm 112
  • #25 8218900
    Coolkk
    Poziom 12  
    Posty: 20
    Pomógł: 3
    Ocena: 2
    1) A jak by zrobić coś takiego:
    - Zrobić jeden układ jako master - powiedzmy panel sterowania w pokoju.
    - Zrobić kilka układów na slave - powiedzmy sterowanie oświetleniem, roletami i i.t.p

    Jak coś takiego ogarnąć? Czy są szanse na to by jeden master współpracował jednocześnie z kilkoma slavemi.

    2) A jak by przy powyższej konstrukcji bylo jeszcze jedno urządzenie do sterowania całym domem które komunikuje się z panelami którymi jest master?
  • #26 9268073
    Tomekddd
    Poziom 23  
    Posty: 829
    Pomógł: 1
    Ocena: 35
    Ja mam pytanie odnośnie samej javy i sposobu komunikacji przez bluetooth, macie do tego jakieś opisy/książki/poradniki? Chciałbym napisać prościutką aplikacje na telefon do sterowania AVRem. Ze strony AVRa programuję trochę w bascomie ale co do javy to nie mam pojęcia jak sie za to zabrać.
  • #27 12006600
    syffon
    Poziom 7  
    Posty: 4
    Witam
    Mam następujące pytanie: Mam płytke z ATMEGA32 i dwoma modułami L923D do sterowania silnikami DC. Niedawno dokupiłem moduł BT BTM-222. Wykonuję projekt, który będzie sterował dwoma silnikami, za pomocą BT.
    I teraz pytanie: Czy ma ktoś może napisany jakiś program na ATMEGE32 do obbioru sygnałów przesyłąnych z telefonu za pomocą BT? Może być jakiś przykłądowy, bo kompletnie nie wiem od czego zacząć.

    Pozdrawiam.

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania modułami Bluetooth za pomocą mikrokontrolerów 8051 i AtMega, z naciskiem na praktyczne aspekty komunikacji i programowania. Użytkownicy omawiają wykorzystanie profilu SPP (Serial Port Profile) do prostego sterowania przez UART, co umożliwia dwukierunkową komunikację między mikrokontrolerem a urządzeniem Bluetooth. Proponowane są różne metody sterowania, w tym aplikacje J2ME (Java ME) na telefonach komórkowych z obsługą JSR-82, które pozwalają na tworzenie midletów do komunikacji Bluetooth. Wskazano, że nie jest konieczny system Symbian, wystarczy telefon z obsługą JSR-82. Podkreślono, że moduły Bluetooth zwykle konfiguruje się komendami AT wysyłanymi przez UART, a przykłady implementacji w Bascomie i innych językach są dostępne. Poruszono kwestie wyboru modułu Bluetooth, zwracając uwagę na obecność profilu SPP i parametry zasięgu (moc, czułość), co wpływa na stabilność połączenia. Wspomniano o popularnych modułach BTM-112 i BTM-222 oraz o możliwości wykorzystania modułów z telefonów komórkowych, np. Nokia 6310i. Dyskutowano także o architekturze systemu z jednym urządzeniem master i wieloma slave, co umożliwia sterowanie wieloma elementami (np. oświetleniem, roletami). Wskazano na dostępność środowisk programistycznych, takich jak EclipseME, oraz na potrzebę zapoznania się z dokumentacją komend AT dla danego modułu. Poruszono również temat ograniczeń zasięgu Bluetooth i alternatywę w postaci modułów emode o większym zasięgu. W końcowej części pojawiły się pytania o przykładowe programy do odbioru sygnałów Bluetooth na AtMega32, co wskazuje na zainteresowanie praktycznymi przykładami kodu do sterowania silnikami DC przez Bluetooth.
Wygenerowane przez model językowy.
REKLAMA