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 w 2025? 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 6 kwi 2025, o 04:13


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 29 sie 2018, o 04:04 
    Offline
    Nowy

    Dołączył(a): 08 lis 2017
    Posty: 4
    Pomógł: 0

    Witam wszystkich

    Więc problem jak w temacie.

    Zagadka powstała po tym jak zacząłem experymentować po lekturze poradników o "prostym Terminalu Bluetooth" autorstwa szanownego Mirka Kardasia (dzięki Mu niech będą i szacunek za to co robi)
    (#0245, #0246, #0247, #0248, #0250, #0251)
    Przerobiłem krok po kroku omawiany w poradnikach kod w B4A.

    Wsystko dziala super (!!!!!!!), ale:
    mój experyment polega na tym, że zamiast terminala PC używam AVR ATmega328P.

    I teraz:
    Terminal PC + FTDI + HC-05 <=> Android (app B4A) - konfiguracja działająca; komunikacja w obie strony bo obserwuję na terminalu i na telefonie
    Terminal PC + FTDI <= AVR ATmega328P - konfiguracja działająca; komunikacja w jedną stronę (na razie) bo obserwuję na terminalu to co wysyłam z procka (0x41 czyli literę "A" i to widzę na terminalu PC)

    AVR ATmega328P + HC-05 <=> Android (app B4A) - konfiguracja nie działa; litera "A" wysyłana z procka do telefonu nie dociera (a procek ją na pewno potrafi wysłać - nie wiem czy wysyła jak mu podłączę BT)

    Nie mam pojęcia dlaczego procek na terminal wysyła dane a przez BT już nie.

    w AVR transmisja wygląda tak :

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


    Natomiast w kodzie B4A zdarzenie NewText wygląda tak:

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


    Zatem z AVR wysyłam coś jako "hex" a w app oczekuję stringa - czy to może być powodem, że nic się nie pojawia w komponencie "edtLog" ???
    No moim zdaniem tu nie powino się to gryźć bo przecież terminal rozpoznaje 0x41 i pokazuje śliczne duże "A"
    Ale mogę się mylić...

    Ponieważ AVR jest zasilany 5V to na jego lini Tx stosuję najprostszy znaleziony w necie dzielnik rezystorowy aby stan wysoki ok 5V sprowadzić do poziomu ok 3,3V , który jest tolerowany przez moduł BT - przynajmniej takich połączeń z dzielnikiem można znaleźć dużo w necie i wg autorów różnej maści, taki dzielnik powinien wystarczyć.

    Robiłem też doświadczenie bez dzielnika na lini Tx, zasilając AVR napięciem 3,3V - efekt taki sam: osobno AVR z terminalem na PC działa (litera "A" pojawia sie w terminalu na PC) , również osobno moduł BT z terminalem na PC działa (efekty obserwuję na Androidzie)
    ale jeśli podłączę BT i AVR to na telefonie nie ma nic.


    Aha:
    z poziomu AVR testowane było tylko wysyłanie "A"
    Nie testowałem odbioru bo w kodzie asemblera utknąłem właśnie przy nadawaniu.

    Czy któryś z szanownych forumowiczów może udzielić jakieś wskazówki / sugestii?
    Może ktoś miał podobny problem?

    Będę wdzięczny za wszelkie odpowiedzi.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 sie 2018, o 07:38 
    Offline
    Moderator
    Avatar użytkownika

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

    Nie za bardzo jestem w stanie się wgryzać a temat ale tak na szybko co mi przychodzi na myśl - czytając ogólnie o problemie. To czy kolega nie zapomniał o specyficznej różnicy w znakach końca linii ? ;)

    toż Android w ogóle nie wysyła na końcu znaku ENTER czyli (13) .... trzeba ręcznie to robić. Chyba że na razie testujesz tylko wysyłanie samych pojedynczych znaków a nie stringów.

    _________________
    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: 29 sie 2018, o 16:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Czy konfiguracja HC-05 dla testu z PC i ATmega328 jest taka sama (włącznie z takim samym podłączeniem pinu KEY)?
    Czy na pewno masz odpowiednio ustawiona prędkość RS232 na procesorze?

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 sie 2018, o 04:45 
    Offline
    Nowy

    Dołączył(a): 08 lis 2017
    Posty: 4
    Pomógł: 0

    Bardzo dziękuję kolegom za reakcję i odpowiedzi.

    Już się odnoszę kolejno:

    @mirekk36:
    tak, najpierw chcę wysłać pojedynczy znak a potem - w ramach praktyki - chcę potrenować wysyłanie stringów. Na razie mam mgliste pojęcie jak to w assemblerze zrealizować ale to kwestia czasu kiedy się nauczę. - Owszem, wiem, że to zadanie jest banalnie proste w C. Na razie jednak zostaję przy assemblerze.

    @rskup:
    config HC-05:
    38400,0,0 - jest to odpowiedź na zapytanie AT+UART? (38400 bits/s, 1 bit STOP, bez bitu parzystości)

    config AVR:
    UCSR0A:
    U2X0=1 - podwójna prędkość transmisji

    UCSR0B:
    RXCIE0 = 1 - zezwolenie na obsługę przerwania po wykryciu ustawienia bitu RXC0
    TXCIE0 = 1 - zezwolenie na obsługę przerwania po wykryciu ustawienia bitu TXC0
    RXEN0 = 1 - wł. możliwości odbioru danych
    TXEN0 = 1 - wł. możliwości wysyłania danych

    UCSR0C:
    UMSEL0[1:0] = 00 - USART asynchroniczny
    UPM0[1:0] = 00 - bez bitu parzystości
    USBS0 = 0 - 1 bit STOPU
    UCSZ0[1:0] = 11 - dane 8-bitowe


    i nastawy prędkości transmisji:
    UBRR0H = 0x00 (d: 0)
    UBRROL = 0x2F (d: 47)
    - wg dokumentacji dla ATmega328P dla podwójnej prędk. transmisji (U2X0=1) przy fosc=14.7456MHz (a taki właśnie mam) , UBRR0 =74 dla 38400bps

    Tak więc raczej parametry transmisyjne AVR i BT są takie same (no chyba, że coś przeoczyłem)

    Natomiast nie bardzo rozumiem pytania o pin KEY:
    o ile w module BT jest przycisk, który na pin34 (KEY) podaje 3,3V aby włączyć komendy AT, o tyle w AVR takiego nie znalazłem ^^

    Trudno mi zatem odpowiedzieć, czy podłączenie pinu KEY jest takie samo :)

    No chyba, że słowo-klucz "pin KEY" odnosi się do czegoś innego.

    Pozdrawiam
    Sławek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 sie 2018, o 06:18 
    Offline
    Nowy

    Dołączył(a): 08 lis 2017
    Posty: 4
    Pomógł: 0

    Witam po króciutkiej przerwie... :)

    Dzięki wam udało mi się rozwikłać zagadkę:
    Kolega rskup przynaglił mnie do ponownej analizy mojego kodu asm, co uczyniłem dość skrupulatnie.
    Kolega mirekk36 naprowadził mnie na trop brakującego "ENTERA".

    I rzeczywiście: po analizie kodu, okazało się, że trzeba wykonać małą korektę co do kolejności niektórych rozkazów i każdorazowego powtórzenia transmisji znaku "ENTER" po każdej transmisji litery "A"
    Nie wiem czemu ale mnie nagle olśniło, że przecież ten "ENTER" to też znak i że można a nawet trzeba go wysłać tak jak każdy inny znak!!!
    Przerobiłem kod i zadziałało !!!!

    Temat zamknięty.

    Dziękuję za poświęconą uwagę i kilka słów odpowiedzi!!!

    Pozdrawiam
    Sławek



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