Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
NOVATEK-ELECTRO POLSKA SP. Z O.O.NOVATEK-ELECTRO POLSKA SP. Z O.O.
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Moduł TTMSB sterowany przez port USB

kolgreen 23 Feb 2014 20:51 7137 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/modul-ttmsb-usb/.

    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

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    kolgreen
    Level 15  
    Offline 
    kolgreen wrote 264 posts with rating 228, helped 11 times. Been with us since 2007 year.
  • NOVATEK-ELECTRO POLSKA SP. Z O.O.NOVATEK-ELECTRO POLSKA SP. Z O.O.
  • #2
    Euzebiusz23091998
    Level 15  
    Do czego wykorzystywany sygnał dźwiękowy i przekaźniki? Silniki jak mogę się domyślić do poruszania kamerą?
  • NOVATEK-ELECTRO POLSKA SP. Z O.O.NOVATEK-ELECTRO POLSKA SP. Z O.O.
  • #3
    kolgreen
    Level 15  
    Euzebiusz23091998 wrote:
    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 wrote:
    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 wrote:
    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
    ralf13526
    Level 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
    kolgreen
    Level 15  
    ralf13526 wrote:
    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
    Sh44dow
    Level 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
    kolgreen
    Level 15  
    Sh44dow wrote:
    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 wrote:
    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 wrote:
    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ę.