Elektroda.pl
Elektroda.pl
X
Deimic Smart Home
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Moduł TTMSB sterowany przez port USB

kolgreen 23 Lut 2014 20:51 6819 6
  • Moduł TTMSB sterowany przez port USB

    Witam forumowiczów,
    jestem autorem modułu TTMSB, którego szerszy opis zamieściłem na swojej
    stronie internetowej http://noweenergie.org/index.php?0/Article/19.

    Nazwa modułu TTMSB jest akronimem stworzonym z nazw jego podstawowych funkcjonalności: Time, Temperature, Motor, Switch, Beeper.

    1. Cele
    Celem projektu była budowa modułu który za pośrednictwem otrzymanych z portu USB lub UART instrukcji będzie realizował następujące funkcje:

    - sterowanie dwoma silnikami DC,
    - włączanie i wyłączanie dwóch urządzeń dużej mocy,
    - odczyt temperatury otoczenia,
    - udostępnianie czasu rzeczywistego (niezależny RTC),
    - sygnalizacja dźwiękowa.

    Zasilanie urządzenia realizowane jest z portu USB, natomiast silników opcjonalnie z portu USB bądź z zewnętrznego źródła (możliwość dostarczenia wyższego napięcia i mocy).

    2. Zastosowanie
    Prezentowany układ został zainstalowany w stacji monitorującej. Jednym z jej zadań jest transmisja obrazu z kamery przez sieć internet. Początkowo stacja zbudowana była na bazie komputera klasy PC, obecnie zastąpionym przez Raspberry Pi.

    Moduł TTMSB sterowany przez port USB
    Rys. 1 Moduł TTMSB podłączony do Raspberry Pi.


    Zadaniem układu jest sterowanie silnikami kamery, które obracają ją w pionie i poziomie.
    Zegar RTC dostarcza informacje o aktualnym czasie minikomputerowi Raspberry Pi (który nie posiada zegara czasu rzeczywistego) zanim zostanie nawiązane połączenie z internetem.
    Moduł steruje dwoma urządzeniami (możliwość włączenia i wyłączenia).
    Moduł odczytuje temperaturę z czujnika.

    Na minikomputerze Raspberry Pi zostało zainstalowane dedykowane oprogramowanie obsługujące kamerę podłączoną do portu USB oraz moduł TTMSB.
    Jest to serwer prezentujący interface sterujący stacją w przeglądarce internetowej podłączonemu klientowi.
    Prezentuje on aktualny obraz z kamery, temperaturę oraz zawiera przyciski sterujące kamerą i uruchamiające pozostałe funkcje modułu TTMSB.

    Moduł TTMSB sterowany przez port USB




    Rys. 2 Aplikacja sterująca.


    Dostęp do stacji z uwagi na to, że nie posiada ona na stałe przydzielonego publicznego adresu IP dokonywany jest przez VPN.

    3. Budowa i działanie
    Głównym podzespołem modułu TTMSB jest mikrokontroler PIC18F4550 o mocy obliczeniowej 12 MIPS. Został wyposażony przez producenta w sprzętowy port USB 2.0, UART oraz magistralę I2C oraz SPI. Pracuje w przedziale napięć od 2V do 5,5V. Oddaje do dyspozycji 32KB pamięci programu typu Flash i 2048 B pamięci RAM. Posiada 10 bitowy przetwornik analogowo cyfrowy, timer 8 bitowy i trzy timery 16 bitowe.

    3.1. Podzespoły urządzenia

    Moduł TTMSB sterowany przez port USB
    Rys. 3 Moduły urządzenia.


    3.2. Komunikacja
    Komunikacja z modułem może odbywać się na dwa sposoby:
    Za pomocą bezpośredniego podłączenia innego mikrokontrolera do portu UART umieszczonego na płycie modułu TTMSB.
    Po podłączeniu modułu TTMSB do portu USB komputera z systemem operacyjnym Linux lub Windows jest on automatycznie rozpoznawany jako wirtualny port UART (zaimplementowano USB CDC) i instalowany w systemie. Dalsza komunikacja z urządzeniem odbywa się na takich samych zasadach jak by był on podłączony do portu COMx komputera. By wydawać polecenia modułowi można użyć programu Hypertimernal wchodzącego w skład systemu operacyjnego Windows, CuteCom w systemie Linux lub używając dedykowanego oprogramowania.

    Instrukcje sterujące
    Moduł TTMSB sterowany przez port USB

    3.3. Złącza modułu


    Moduł TTMSB sterowany przez port USB
    Rys. 4 Złącza modułu.


    UART - Szeregowy port komunikacyjny do wymiany danych z innymi urządzeniami
    USB - Port komunikacyjny z urządzeniem sterującym
    I2C - Szeregowa magistrala danych I2C
    1W - Magistrala 1Wire
    ICSP - Łącze programatora mikrokontrolera
    A/C - Port przetwornika analogowo-cyfrowego
    R1 - Wyjście pierwszego przekaźnika, włącz/wyłącz urządzenie zewnętrzne
    R2 - Wyjście drugiego przekaźnika, włącz/wyłącz urządzenie zewnętrzne
    M1 - Gniazdo pierwszego silnika DC
    M2 - Gniazdo drugiego silnika DC
    Z - Zwora wyboru źródła zasilania silników (zewnętrzne / USB)
    V1 - Gniazdo zewnętrznego zasilania silników

    4. Załączniki i odnośniki
    Załączniki wygenerowane zostały 26-sty-14 12:29.
    Osoby zainteresowane pobraniem ich najbardziej aktualnej wersji zapraszam do odwiedzin strony internetowej modułu TTMSB.

    ttmsb_board.pdf - projekt płytki
    ttmsb_elements.pdf - rozmieszczenie elementów
    uC_ttmsb.zip - wsad mikrokontrolera (obsługa jednego czujnika temperatury, brak obsługi UART).

    5. Zdjęcia

    Moduł TTMSB sterowany przez port USB Moduł TTMSB sterowany przez port USB Moduł TTMSB sterowany przez port USB Moduł TTMSB sterowany przez port USB


    Fajne!
  • Deimic Smart Home
  • #2 24 Lut 2014 13:01
    Euzebiusz23091998
    Poziom 15  

    Do czego wykorzystywany sygnał dźwiękowy i przekaźniki? Silniki jak mogę się domyślić do poruszania kamerą?

  • Deimic Smart Home
  • #3 24 Lut 2014 14:43
    kolgreen
    Poziom 14  

    Euzebiusz23091998 napisał:
    Do czego wykorzystywany sygnał dźwiękowy


    Z uwagi na to, że układ podłączony jest do minikomputera Raspberry Pi, który nie posiada wbudowanego głośnika, przydaje się właśnie ten dostępny na module. Pełni on głównie funkcję sygnalizacyjną (błędy programu pracującego na Raspberry Pi itp.).

    Euzebiusz23091998 napisał:
    i przekaźniki?


    Jednego z przekaźników używam do włączenia oświetlenia terenu który obserwuje kamera.
    Drugi używany jest do resetu, włączenia/wyłączenia kilku urządzeń sieciowych (switch, punkt dostępowy do sieci WiFi).

    Euzebiusz23091998 napisał:
    Silniki jak mogę się domyślić do poruszania kamerą?


    Tak, jeden silnik obraca kamerą w poziomie (prawo/lewo), drugi w pionie (góra/dół).
    Chwilowo używam tylko silnika poruszającego kamerą prawo/lewo.

  • #4 24 Lut 2014 19:06
    ralf13526
    Poziom 14  

    Projekt ciekawy, też planuje zrobic coś podobnego. Widze że korzystałeś z APN czy mając radiówke bez zewnetrznego ip można postawic serwer przez APN?

  • #5 24 Lut 2014 22:12
    kolgreen
    Poziom 14  

    ralf13526 napisał:
    Widze że korzystałeś z APN czy mając radiówke bez zewnetrznego ip można postawic serwer przez APN?


    Między innymi dość dobrze zdaje egzamin u mnie Hamachi. Minusem jest to, że dostęp mają tylko urządzenia z zainstalowanym Hamachi. W darmowej wersji jest to tylko pięć urządzeń w sieci VPN.
    Przez pewien okres czasu na serwerze ze stałym/publicznym adresem IP i należącym również do sieci Hamachi "wystawiałem" jej zawartość do internetu. Więc myślę, że odpowiedzią na Twoje pytanie jest - tak, ale nie wydaje się to racjonalne na dużą skalę.

  • #6 25 Lut 2014 16:31
    Sh44dow
    Poziom 16  

    Sam implementowałeś USB i urządzenie klasy CDC, czy może skorzystałeś z jakiejś istniejącej biblioteki?
    Jak rozpoznawane jest urządzenie (VID/PID)? Czy wymaga ono instalacji dodatkowego drivera wirtualnego seriala (indows/linux), czy może działa od kopa?

    Co do VPNa - trafiłem ostatnio na coś takiego - http://www.freelan.org/ . Jeszcze nie testowałem, ale wygląda ciekawie i być może mogłoby być alternatywą dla Hamachi.

  • #7 26 Lut 2014 18:38
    kolgreen
    Poziom 14  

    Sh44dow napisał:
    Sam implementowałeś USB i urządzenie klasy CDC, czy może skorzystałeś z jakiejś istniejącej biblioteki?


    Microchip dostarcza gotowe rozwiązania. Wyszedłem z założenia, że nie ma przecież potrzeby pisać od nowa czegoś co zostało już napisane przez mądrzejszych - drobna modyfikacja istniejącego kodu.

    Sh44dow napisał:
    Jak rozpoznawane jest urządzenie (VID/PID)? Czy wymaga ono instalacji dodatkowego drivera wirtualnego seriala (indows/linux), czy może działa od kopa?


    Działa w zasadzie "od kopa". VID/PID oczywiście nie rejestrowałem własnego - opierałem się o MCHPUSB.

    Jądro Linuxa ma już wszystko co potrzeba, po podłączeniu urządzenie jest dostępne w /dev/ttyAMA0

    Sprawdzałem działanie również na Windows XP. Urządzenie jest wykryte, system pyta o sterowniki. Z pomocą przychodzi znów Microchip, po kilku kosmetycznych zmianach pliku "mchpusb.inf" sterownik jest gotowy (w załączniku - "sterownik_cdc_windows.zip").

    Sh44dow napisał:
    Co do VPNa - trafiłem ostatnio na coś takiego - http://www.freelan.org/ . Jeszcze nie testowałem, ale wygląda ciekawie i być może mogłoby być alternatywą dla Hamachi.


    Wygląda ciekawie (dziękuję za podesłanie), muszę na to zerknąć w sobotę.