Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'ble'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 5 wyników

  1. Wstęp Bluetooth Low Energy pozwala wygodnie sterować urządzeniami z poziomu komputera, telefonu lub własnej aplikacji. Samo przygotowanie usługi BLE, charakterystyk, obsługi pakietów i ponownego uruchamiania transmisji po rozłączeniu potrafi jednak zająć więcej czasu niż właściwa logika projektu. Biblioteka BLECommand upraszcza ten proces, udostępniając interfejs przypominający komunikację szeregową. Zamiast ręcznie przetwarzać surowe dane BLE, programista może rejestrować polecenia tekstowe i przypisywać im odpowiednie funkcje. Projekt został przygotowany głównie dla mikrokontrolerów ESP32 korzystających z Arduino Framework i środowiska PlatformIO. Jak działa BLECommand? Po uruchomieniu biblioteka tworzy jedną usługę BLE zawierającą trzy charakterystyki: TX – odbiera polecenia wysyłane do urządzenia, RX – przesyła odpowiedzi na odebrane polecenia, NX – wysyła niezależne zdarzenia i powiadomienia generowane przez urządzenie. Wszystkie dane są przesyłane w czytelnym formacie ASCII. Pojedyncze polecenie ma następującą postać: POLECENIE:DANE0:DANE1; Przykładowo polecenie: Rotate:10; może oznaczać obrót silnika o określoną wartość. Polecenia niewymagające parametrów można zapisać prościej: Start; Biblioteka potrafi obsługiwać polecenia podzielone pomiędzy kilka zapisów BLE, jak również kilka poleceń przesłanych jednocześnie. Nazwy komend nie rozróżniają wielkości liter, chociaż zalecaną konwencją jest zapis PascalCase. Dodawanie biblioteki do projektu Folder biblioteki należy umieścić w projekcie PlatformIO pod ścieżką: lib/BLECommand/. Następnie w programie można dołączyć jej plik nagłówkowy i uruchomić usługę BLE: #include <Arduino.h> #include <BluetoothCommandAPI.h> void on_start(const char * const * data) { BluetoothCommandAPI::send("OK"); } void setup() { if (BluetoothCommandAPI::begin("MyDevice") == bluetooth_command_result_ok) { BluetoothCommandAPI::register_command("Start", on_start); } } void loop() { BluetoothCommandAPI::loop(); } Po odebraniu polecenia Start; zostanie wywołana funkcja on_start(), a urządzenie odeśle odpowiedź OK;. Wywołanie funkcji loop() jest konieczne, ponieważ biblioteka wykorzystuje ją do przetwarzania odebranych danych i wysyłania przygotowanych odpowiedzi. Odpowiedzi i zdarzenia Do komunikacji zwrotnej służą dwie funkcje. send() wysyła odpowiedź związaną z poleceniem klienta, natomiast notify() pozwala zgłosić zdarzenie powstałe niezależnie, na przykład zmianę stanu wejścia, zakończenie pomiaru lub wykrycie alarmu. Przykładowe powiadomienie może wyglądać następująco: const char *const speed[] = {"10"}; BluetoothCommandAPI::notify( "Rotate", speed, 1u ); Domyślnie transmisja odbywa się z częstotliwością do 20 razy na sekundę. Wartość tę można zmienić przed rozpoczęciem właściwej pracy urządzenia: BluetoothCommandAPI::set_transmit_rate_hz(10u); Odpowiedzi i zdarzenia są kolejkowane, a następnie łączone w większe powiadomienia BLE. Ogranicza to liczbę wykonywanych transmisji i upraszcza obsługę kilku komunikatów wygenerowanych w krótkim odstępie czasu. Przewidywalna praca urządzenia BLECommand korzysta ze statycznego interfejsu i podczas analizowania oraz wysyłania pakietów nie wykonuje dynamicznej alokacji pamięci. Domyślnie obsługuje między innymi: 16 zarejestrowanych poleceń, pakiety o długości do 256 bajtów, 16 pól danych, osobne bufory odpowiedzi i zdarzeń o pojemności 512 bajtów. Wartości te można zmienić za pomocą flag kompilatora w konfiguracji PlatformIO. build_flags = -D BLUETOOTH_COMMAND_API_MAX_PACKET_LENGTH=512 -D BLUETOOTH_COMMAND_API_MAX_COMMANDS=32 -D BLUETOOTH_COMMAND_API_MAX_TRANSMIT_BUFFER_LENGTH=512 -D BLUETOOTH_COMMAND_API_MAX_DATA_FIELDS=32 Po rozłączeniu klienta kolejki są czyszczone, dzięki czemu stare komunikaty nie zostaną wysłane do kolejnego połączonego urządzenia. Reklamowanie usługi BLE uruchamia się ponownie automatycznie, więc ESP32 może oczekiwać na następne połączenie bez dodatkowej obsługi w programie użytkownika. Gdzie można wykorzystać BLECommand? Biblioteka sprawdzi się przede wszystkim w urządzeniach sterowanych za pomocą prostych komend, takich jak roboty mobilne, sterowniki oświetlenia, panele automatyki, urządzenia pomiarowe czy własne akcesoria do komputerów i gier. Największą zaletą projektu jest oddzielenie transportu BLE od właściwej logiki urządzenia. Programista definiuje polecenia i reakcje na nie, natomiast biblioteka zajmuje się składaniem pakietów, rozdzielaniem parametrów, wysyłaniem powiadomień oraz obsługą ponownego połączenia. Kod źródłowy, przykładowy program i instrukcja instalacji są dostępne w repozytorium projektu H1M4W4R1/BLECommand.
  2. Witam czcigodne forum! Mam ciekawy problem - potrzebuję zrobić zdalne powiadomienie o naruszeniu strefy (na zasadzie - klient wszedł do biura, gdy pracownik jest na zapleczu) - ale rozwiązanie, które nie jest wyjcem na fotokomórkę. 2x stacjonarnie nie ma problemu: dwa ESP32 spięte BT/Zigbee, jedno z PIR albo detektorem 40GHz, drugi z diodą i głośniczkiem. Wolałbym jednak odbiornik/sygnalizator zrobić "wearable" np opaska albo breloczek. Na myśl przychodzą mi tanie breloki trackingowe BLE (np Blow-a) albo opaski (jakiś najtańszy smartband z Ali) - ale nie mają opublikowanych protokołów. Pewnie byłbym w stanie wystrugać coś samemu w rozmiarze pudełka papierosów (coś typu XIAO ESP32C3, wibrator i głośniczek ze starej komórki, akumulatorek li-po), ale wolałbym coś gotowego. Czy ktoś z szanownych Forumowiczów zna jakieś bateryjne/akumulatorowe urządzenie BLE/Zigbee ze znanym/otwartym protokołem wyzwolenia sygnalizacji, zasięg ok. 15m? Pozdrawiam
  3. Cześć, chciałbym prosić o pomoc w kwestii podpięcia modułu Pmod BLE do płytki Zybo Z7-10. Opis projektu Chciałbym podłączyć Pmod BLE do płytki Zybo Z7-10. Chciałbym by testowa aplikacja mogła wysyłać i odbierać dane po bluetooth (do testowania chciałbym użyć jakiejś aplikacji z AppStore). Na początku mogłoby to być wysyłanie zwykłego ciągu znaków, jak np: "Cześć Zybo" i "Cześć telefon" czy coś podobnego. Próby podłączenia Znalazłem podobny przykład w intrnecie (tutaj -> link autorstwa osoby o nicku: ralphjy). Próbowałem odtworzyć projekt, który opisał w tym artykule jednak nie udało mi się to. Poniżej zamieszczam swój block diagram, który jest podobny do tego który prezentuje ralphjy. Dołączam jeszcze constraints mojego projektu. Niestety nie wiem jak dokładnie powinny być one podpięte. Na końcu problemu zamieszczam link do constraint dla Zybo. Oczywiście próbowałem wygenerować bitstreama, ale bezskutecznie :(. Może ktoś z Was miał już do czynienia z modułem Pmod BLE i byłby w stanie pomóc :)? Btw. dzięki wielkie za jakiekolwiek wskazówki! Sprzęt Zybo Z7-10 -> link Pmod BLE -> link Software Zybo-Z7 Constraints -> link pliki źródłowe Pmod BLE-> link
  4. Cześć wszystkim, Chciałbym przetestować pewien program który znalazłem na internecie, niestety pojawia się problem przy instalacji biblioteki na Raspberry Pi , czy ktoś jest w stanie pomóc?
  5. Cześć! Skończyłem budowę mojego pierwszego robota. Jest to też mój pierwszy większy projekt, więc proszę o wyrozumiałość, komentarze, porady mile widziane. Z racji tego, że posiadam jeszcze dwa komplety lego, postanowiłem je wykorzystać do budowy pojazdu. Początkowo miały być silniki lego, ale stwierdziłem, że lepiej będzie zrobić to na zwykłych, uniwersalnych częściach. Konstrukcja miała być mała, zwinna, sterowana przez WIFI. Przednia oś, jak widać, sterowana za pomocą micro serwa. Nie było większych oporów, serwo bez problemów sobie radziło ze sterowaniem. Zacząłem szukać jakiegoś ciekawego i małego silnika DC. Postanowiłem wybrać silnik z podwójnym wałem. Kolejnym zadaniem było przebudowanie konstrukcji tak, żeby silnik się zmieścił i nie wadził w poruszaniu się robota. Z racji tego, że wolałem zaoszczędzić kilkanaście złotych na przejściówkę lego-wał, rozwierciłem otwory w częściach które miałem. Zacząłem myśleć jak wyglądałoby połączenie iPhone - ESP, ale w międzyczasie na uczelni dziekan zapowiedział nam dodatkowy projekt na zajęciach z mikrokontrolerów ( pierwsze takie zajęcia na drugim roku studiów ) - dowolny robot na platformie Arduino lub STM. Chłopaki na Facebookowej grupie Arduino uświadomili mi, że nie ma sensu robić projektu na ESP, bo musiałbym się łączyć tylko przez sieć i lepszym wyborem byłby bluetooth. Tak też się stało, zakupiłem moduł HM-10, który współpracuje z używanym przeze mnie iOS. Do tego całość przeniosłem na klona płytki Arduino. Jako aplikacji sterującej użyłem ArduinoBlue, wraz z biblioteką. Inne aplikacje nie chciały działać. W dodatku albo na iOS nie ma żadnych popularnych aplikacji do sterowania przez BLE albo nie udało mi się znaleźć. Możecie polecić ciekawe aplikacje na iOS, na pewno sprawdzę! Można zauważyć, że na breadbordzie zainstalowałem jakąś płytkę. Jest to sterownik silników DC, polecany, łatwy w użyciu. Dobra, silnik jest, działa, serwo jest, łączność przez BLE również. Wypadało by odpiąć wszystko od zasilania z gniazdka i zastosować akumulatory, baterie. Z początku była to dla mnie czarna magia, większe napięcie, jakieś ampery, przetwornice. Czytałem różne artykuły, oglądałem poradniki, pytałem na Facebookowej grupie. Ostatecznie, zgodnie z zasadami: Arduino + sekcja logiczna zasilana z powerbanka + wyprowadzenie zasilania bezpośrednio do serwa, silnik DC zasilany przez dwa ogniwa litowo-jonowe połączone szeregowo z BMS, napięcie zmniejszane przez przetwornicę Żeby szybko podpinać ogniwa do robota albo ładować, przylutowałem wtyki/gniazda DC 5.5mm. BTW. Bardzo długo męczyłem się z lutowaniem ogniw na 30-watowej lutownicy kolbowej. Metodą prób i błędów wszystko się złączyło. Przed podłączeniem każdego elementu lutowanego, sprawdzałem miernikiem czy nie ma zwarcia! Dodatkowo pokusiłem się o popularny czujnik odległości oraz mała prowizorka - dwie diody z opornikami schowane w obudowie po serwie (spaliło się), informujące o przeszkodzie w danej odległości. Wersja finalna, kilkukrotnie większa i cięższa niż pierwotna wersja. Wzmocniony układ kierowniczy. Jeździ, skręca, hamuje, cofa. Trzymany pod kocem Wszelkie komentarze mile widziane! A tutaj krótki filmik (musiałem zdemontować czujnik odległości, ponieważ powodował zakłócenia całego układu: Tak wygląda sterowanie za pomocą joysticka:
×
×
  • Utwórz nowe...