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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 8 cze 2025, o 08:23


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 22 lis 2014, o 19:45 
    Offline
    Użytkownik

    Dołączył(a): 02 lut 2014
    Posty: 38
    Pomógł: 0

    Witam wszystkich forumowiczów. Sytuacja wygląda następująco. Wymyśliłem sobie jakiś czas temu projekt samochodu sterowanego przez bluetooth. Nie od razu Kraków zbudowano :) jestem na etapie mielenia Blue Booka i chciałbym zaświecić diodę przez telefon. Mam aplikację na androidzie z trzema przyciskami która wysyła 1,2 lub 3 w zależności od wciśniętego klawisza. W terminalu wygląda to następująco: 1111222333221112233 , nie będę umieszczał screena bo każdy pewnie będzie wiedział o co chodzi. Zmontowałem sobie ostatnio układ na płytce stykowej z L293D. Z programem , który cyklicznie zapala daną diodę nie było problemu. Teraz chciałbym zapalić to przez bluetooth i napisałem poniższy kod dla Atmegi32. Wykorzystuję Atnelowski BTM-222. Podpowiedzcie co może być nie tak, bo póki co nie udało mi się zapalić diody;/
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lis 2014, o 21:02 
    Offline
    Użytkownik

    Dołączył(a): 22 sie 2013
    Posty: 64
    Pomógł: 1

    Sprawdź połączenie Btm 222 z uC, zaprezentuj schemat może coś źle podłączone.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2014, o 00:27 
    Offline
    Użytkownik

    Dołączył(a): 02 lut 2014
    Posty: 38
    Pomógł: 0

    Jutro odpalę Eagla i zrobię schemat. Chociaż tak jak pisałem wcześniej, jak sobie programowo steruję tymi diodami przez L293D to jest ok, problem pojawia się przy zdalnej transmisji, więc wydaje mi się, że raczej w kodzie coś nie gra. W ogóle to jak procesor pobiera dane z rejestru DDR? Jeżeli np chcę odebrać liczbę 200, to jak to się ma do 8bitów danych? Procesor sam sobie pobiera 8 bitów, czyli przekształca liczbę 200 do postaci 11001000? A co gdybym chciał przesłać liczbę 2000?
    Np. If (input=='2000') LED_ON; na logikę powinienem wyciągać z rejestru po jednej cyfrze i zapisać to jako:
    2*1000+0*100+0*10+0*1, żeby otrzymać wartość dziesiętną? Generalnie powinienem założyć chyba osobny wątek, ponieważ nie jestem w stanie sobie wyobrazić jak się mają te 8bitów do tego co się faktycznie dzieje w tym rejestrze. Ale tak jak mówię, jutro zrobię schemat to będziemy dalej rozmawiać. Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2014, o 09:40 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27407
    Lokalizacja: Szczecin
    Pomógł: 1043

    obejrzyj sobie to: http://mirekk36.blogspot.com/2014/06/ja ... ascii.html

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2014, o 16:49 
    Offline
    Użytkownik

    Dołączył(a): 02 lut 2014
    Posty: 38
    Pomógł: 0

    W powyższym kodzie, który umieściłem zmieniłem wzór na UBRR( z forum p Mirka).
    Nie wiem dlaczego było coś nie tak, na szybko wziąłem kalkulator, błąd nie przekraczał 2%. W wolnej chwili na pewno to zgłębię i podzielę się wnioskami.

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


    Wszystko ruszyło. Póki co nie wsadzam schematu połączeń, na razie układ jest ubogi. Na płytce nie mam nawet kondensatorów filtrujących, przy zapalaniu diod nie są chyba aż tak konieczne.
    Ale jest oczywiście jedno ale :) Po połączeniu z modułem bluetooth świeci się dioda na OUTPUT2 (L293D), który jest sterowany przez PC1. Czy to może wynikać z faktu, że coś tam w buforze zostaje? Przecież zgodnie z kodem , który wcześniej zamieściłem obydwie diody powinny się zapalać przy starcie programu i czekać na to co przyjdzie z uarta (tak się dzieje przy niepodłączonym btm, tzn obydwie są zapalone) Jak pózniej wciskam klawisze na telefonie to pięknie się zmieniają i jest ok, tylko problem przy samej inicjalizacji- świeci się tylko jedna. Tak jakby program zaczynał działanie od : if(input=='2')



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2014, o 23:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2012
    Posty: 777
    Lokalizacja: Karpicko k. Wolsztyna
    Pomógł: 197

    kitonQ napisał(a):
    Po połączeniu z modułem bluetooth świeci się dioda na OUTPUT2 (L293D), który jest sterowany przez PC1. Czy to może wynikać z faktu, że coś tam w buforze zostaje?


    Pewnie dzieje się tak dlatego, że w module BTM masz włączoną opcję "result codes". Dzięki tej opcji moduł odpowiada na komendy AT, które do niego wyślesz. I tak np. na komendę "AT" moduł odpowiada "OK". Podczas nawiązywania połączenia jaki i podczas rozłączania moduł również o tym informuje.
    U mnie wysyłane są takie komunikaty
    Kod:
    CONNECT  '0C60-76-BD1021'
    DISCONNECT  '0C60-76-BD1021'


    Za włączenie "result codes" odpowiada komenda ATQ0 a za wyłączenie - ATQ1.

    W tym poradniku http://mirekk36.blogspot.com/2012/12/bt ... -do-z.html
    Mirek pokazuje m.in. jak skonfigurować BTM-a za pomocą komend AT.

    Również w tym poradniku do modułu ATB-USB-RS232 http://www.youtube.com/watch?feature=pl ... qNU#t=3092
    jest pokazane jak skonfigurować BTM-a za pomocą jednego z narzędzi mkAVRCalculatora.

    Spróbuj wyłączyć "result codes" i wtedy zobacz czy program będzie działał poprawnie. Albo napisz go tak aby nie reagował na jakieś przypadkowe dane odbierane z BTM-a.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2014, o 23:05 
    Offline
    Użytkownik

    Dołączył(a): 02 lut 2014
    Posty: 38
    Pomógł: 0

    Zdaje się, że pomogło. Tak czy tak muszę jeszcze pomyśleć o filtracji zasilania, bo przy podłączeniu silnika się zwiesza. Dzięki za podpowiedź! :) pozdrawiam



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

    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