Gostai URBI Power Swith



Podobne dokumenty
Spis treści. Opis urządzenia. Zawartość pudełka. Pierwsze użycie

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Pomoc do programu ISO Manager

Rysunek 1: Okno z lista

Electronic Infosystems

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

SERWER AKTUALIZACJI UpServ

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Ćw. I. Środowisko sieciowe, połączenie internetowe, opcje internetowe

SERWER AKTUALIZACJI UpServ

Kabel USB 2.0 do połączenia komputerów PCLinq2 (PL-2501) podręcznik uŝytkownika

Instrukcja aktualizacji oprogramowania (firmware) serwera DESKTOP 1.0 systemu F&Home RADIO.

Spis treści. 1 Moduł RFID (APA) 3

SERWER AKTUALIZACJI UpServ

Aktualizacja oprogramowania sprzętowego przekaźnika bezprzewodowego WT 7

Instalacja NOD32 Remote Administrator

Aktualizacja modemu LTE Speed 1000

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

Spis treści. Opis urządzenia. Pierwsze użycie

UCanlogUpdater INSTRUKCJA OBSŁUGI

Instrukcja instalacji usługi Sygnity SmsService

NPS-520. Serwer druku do urządzeń wielofukcyjnych. Skrócona instrukcja obsługi. Wersja 1.00 Edycja 1 11/2006

Uwaga: NIE korzystaj z portów USB oraz PWR jednocześnie. Może to trwale uszkodzić urządzenie ZyWALL.

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu MacOS

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

AKTUALIZACJA OPROGRAMOWANIA DO ROBOTA ODKURZAJĄCEGO KOBOLD

Rejestrator radiowy temperatury Arexx TL-500

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

1.Wstęp. 2.Generowanie systemu w EDK

MultiTool instrukcja użytkownika 2010 SFAR

Inwentarz Optivum. Jak wykorzystać kolektor danych do wypełniania arkuszy spisowych?

GRM-10 - APLIKACJA PC

INSTRUKCJA INSTALACJI PŁATNOŚCI TRANSFERUJ.PL

Instrukcja wgrywania aktualizacji oprogramowania dla routera Edimax LT-6408n

CENTRALA STERUJĄCA SMART CONTROL

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

Wykaz zmian w programie WinAdmin Replikator

Aktualizacja oprogramowania sprzętowego bezprzewodowych pilotów zdalnego sterowania WR-R10

CRUSB KONWERTER CAN / USB

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

GATE OPENER. Instrukcja Obsługi i Konserwacji. Sterownika GSM-21. Instrukcja obsługi sterownika GSM-21

AKTUALIZACJA AUTOMATYCZNA: TRYB ONLINE (Przykład: WINDOWS 7-32 bits):

Aktualizacja oprogramowania sprzętowego bezprzewodowych pilotów zdalnego sterowania WR-1/WR-R10

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Laboratorium - Zdalny pulpit i Zdalna Pomoc w systemie Windows 7

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows XP

F&F Filipowski Sp. J Pabianice, ul. Konstantynowska 79/81 tel KARTA KATALOGOWA

Instrukcja aktualizacji oprogramowania (firmware) serwera DIN2 systemu F&Home RADIO.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Utworzenie pliku. Dowiesz się:

Instalacja sterownika portu USB

Instalacja/aktualizacja Smart Module 5041

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Laboratorium - Zdalny pulpit i zdalna pomoc w systemie Windows Vista

Git, Bitbucket, IntelliJ IDEA

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

instrukcja instalacji modemu SpeedTouch 605s

Rozpocznijmy ten odcinek od rozwiązania problemu postawionego w poprzednim odcinku:

Nieskonfigurowana, pusta konsola MMC

Instrukcja instalacji połączenia sterownika PL11-MUT24 ze stroną internetową.

Zasady programowania Dokumentacja

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

SYSTEMY CZASU RZECZYWISTEGO (SCR)

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Instrukcja instalacji usługi Sygnity SmsService

Instrukcja logowania do systemu e-bank EBS

Podręcznik użytkownika

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

Instrukcja użytkownika ARSoft-WZ1

ibcslabel v2 Instrukcja instalacji systemu

Aktualizacja oprogramowania sprzętowego cyfrowego aparatu fotograficznego SLR

Programowanie procesora Microblaze w środowisku SDK

Instrukcja konfiguracji funkcji skanowania

w w w. m o f e m a. c o m

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Konfiguracja zapory ogniowej w trybie standardowym na module SCALANCE S623

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Acronis Backup & Recovery 10 Server for Windows, Acronis Backup & Recovery 10 Workstation. Instrukcja szybkiego rozpoczęcia pracy

Aktualizacja oprogramowania sprzętowego cyfrowego aparatu fotograficznego SLR

Aktualizacja oprogramowania sprzętowego aparatów bezlusterkowych, obiektywów NIKKOR Z i zgodnych akcesoriów

INSTRUKCJA OBSŁUGI TACHOTERMINAL PRO. Firmware

System zarządzający grami programistycznymi Meridius

Instrukcja instalacji usługi Sygnity Service

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Instrukcja instalacji usługi Sygnity Service

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

pozwala wydrukować kopię czarno-białą, a przycisku kopię kolorową. Kopiowanie przy użyciu szyby skanera

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi

61 Topologie wirtualne

ODCZYT PRZEZ ZŁĄCZE OBD

s FAQ: /PL Data: 29/08/2014

INSTRUKCJA DO OPROGRAMOWANIA KOMPUTEROWEGO

Aktualizacja oprogramowania sprzętowego aparatu fotograficznego

Transkrypt:

Wrocław, 14 czerwca 2012 Sterowniki Robotów Projekt Gostai URBI Power Swith Michalina Kotyla 180460 Opiekun projektu mgr inż. Jan Kędzierski 1 Cel projektu Celem projektu było utworzenie modułu dla URBI obsługującego istniejący już projekt Power Swith autorstwa Damiana Kowalskiego. Power Swith to urządzenie pozwalające na zdalne sterowanie stanem 8 diod. Zadanie polegało na dostosowaniu do wymogów UObjectów posiadanych kodów źródłowych projektu i przetestowanie gotowego UObjectu na platformie Gostai URBI. 2 Środowisko programistyczne URBI to platforma programistyczna zorientowana obiektowo używana do tworzenia aplikacji dla robotyki oraz systemów złożonych. Jest to oprogramowanie typu multiplatform. Bazuje na UObjectach architekturze rozproszonych komponentów. Platforma URBI zapewnia użytkownikom język programowania umożliwiający równoległe zarządzanie zdarzeniami, stworzenie modułu zgodnego z jej wymogami oraz pozwala na wykorzystywanie go do różnych robotów bez znajomości dokładnej specyfikacji użytego kodu. 3 Hardware Obsługiwane urządzenie wyposażone jest w mikrokontroler ATmega8A ze złączem zgodnym ze standardem KANDA służącym do jego programowania. Użytkownik ma możliwość sterownia jedną z 8 diod, ostatnia dziewiąta dioda sygnalizuje podłączenie i pracę urządzenia, nie ma możliwości sterowania jej stanem. Urządzenie komunikuje się z komputerem za pomocą standardu USB (Universal Serial Bus). Szczegółowa specyfikacja techniczna sprzętu dostępna jest w dokumentacji projektu Power Swith utworzonej przez Damiana Kowalskiego. 1

Rysunek 1: Urządzenie Power Swith i rozmieszczenie diod 4 Oprogramowanie projektu bazowego Twórca projektu dostarczył aplikację umożliwiającą sterowanie urządzeniem. Sterowniki niezbędne do poprawnej komunikacji między urządzeniem a komputerem to ogólnodostępne w internecie drivery Libusb dla systemu Windows. Po instalacji powyższego oprogramowania można rozpocząć testowanie urządzenia. Autor projektu dostarczył kod źródłowy programu, zatem utworzenie modułu URBI zostało znacznie ułatwione. Pierwszym etapem realizacji projektu było utworzenie UObjectu. 5 Jak stworzyć nowy UObject? Pracując z URBI w środowisku Windows można skorzystać z Visual Studio (2008 lub 2005), które podczas instalacji URBI zostaje wyposażone w szablon UObjectów. Poszczególne kroki tworzenia nowego UObjectu oraz otrzymany szablon przedstawiono poniżej. 2

Rysunek 2: Pierwszy krok tworzenie nowego Projectu Visual Studio Rysunek 3: Wybór typu nowego projektu 3

#include <urbi / uobject. hh> Listing 1: Szablon nowego UObjectu class ULedy : public urbi : : UObject { public : ULedy( const std : : s t r i n g& s t r ) ; int i n i t ( ) ; } ; ULedy : : ULedy( const std : : s t r i n g& s ) : urbi : : UObject ( s ) { UBindFunction (ULedy, i n i t ) ; } ; int ULedy : : i n i t ( ) { return 0 ; } ; UStart (ULedy ) ; 6 Modyfikacja funkcji autora na funkcje rozpoznawane przez URBI Pierwszym o czym należy pamiętać przy tworzeniu UObjectu dla Power Swith jest dodanie do projektu libusb.lib, czyli biblioteki odpowiedzialnej za obsługę portu USB oraz jej pliku nagłówkowego usb.h (koniecznie trzeba przekopiować go do folderu projektu). Tworząc nową funkcję dla URBI trzeba zadeklarować ją w klasie tworzonego UObjectu. Następnie każdą funkcję należy zbindować, tak jak funkcję init(), po to by można z niej później korzystać. Aby zrealizować wszystkie cele projektu należało zapewnić w URBI pełną funkcjonalność projektu bazowego. 6.1 myusbopendevice Funkcja odpowiadająca za otwarcie portu. Zmiana wprowadzona w stosunku do funkcji oryginalnej wymagała zmiany wartości zwracanej przez funkcję ze wskaźnika na void. Po analizie kodu okazało się, że wszystkie parametry wywoływane przez tę funkcje są zdefiniowane na sztywno w pętli głównej programu, zatem można zmienić to tak by można było ją wywoływac bez żadnych parametrów. Funkcja była oryginalnie wywoływana z parametrami: int vendor = 0x16C0; const char *vendorname = DamKow - company ; 4

int product = 0x05DC; const char *productname = USBeSwith ; Używany jest licencjonowany przez OBdev identyfikator dostawcy (vendor) i produktu (product) dane pozostają bez zmian, jak podane na stronie OBdev. Dostosowano nazwę producenta (vendorname) oraz produktu(productname). 6.2 usb c ontrol m sg Funkcja z biblioteki libusb. Wysyła wiadomość kontrolną do urządzenia. Wywołanie funkcji z parametrami: dev wskaźnik do urządzenia USB, do którego trzeba wysłać wiadomość, pipe punkt końcowy do wysyłania wiadomości, request komunikat USB, żądana wartość, requesttype komunikat USB, żądany typ wartości, value wartość komunikatu USB, index komunikat USB, wartość indeksu, data wskaźnik do danych do wysłania, size długość w bajtach danych do wysłania, timeout czas w ms czekania na wiadomość do zakończenia przed upływem czasu(jeżeli 0 to czekanie w nieskończoność). 6.3 usbgetdescriptor Funkcja pomocnik, odpowiedzialna za pobieranie deskryptorów służacych do identyfikacji urządzenia. 6.4 logo Funikcja odpowiada za wyświetlanie zdefiniowanych komunikatów/nagłówków w postaci loga zamiast zwykłego tekstu. Wywoływana jest z jednym parametrem numerem loga, którego chcemy użyć. 6.5 on Funkcja odpowiada za włączenie danego portu. Funkcja wywoływana jest z jednym parametrem numerem diody, która ma zostać włączona. 6.6 off Funkcja odpowiada za wyłączenie danego portu. Funkcja wywoływana jest z jednym parametrem numerem diody, która ma zostać wyłączona. 5

6.7 opoznij Funkcja odpowiada za wyłączenie danego portu i włączenie go z zadanym parametrem. Funkcja wywoływana jest z dwoma parametrami numerem diody, która ma zostać załączona z opóźnieniem oraz czasem opóźnienia podanym w sekundach. 6.8 zapisz Funkcja zapisująca w urządzeniu obecne stany portów, wywoływana bez żadnego parametru. Po wyłączeniu i ponownym podłączeniu urządzenie znajduje się w ostatnoi zapamiętanym stanie. 6.9 help Funkcja wyświetlająca pomoc, wywoływana bez żadnego parametru. 6.10 koniec Funkcja odpowiadająca za bezpieczne odłączenie urządzenia. Wywoływana z parametrem : 1 stan diod jest zapamiętywany(zapisywany w pamięci urzadzenia), 0 zamknięcie portu bez zapamiętywania stanu. 7 Kompilacja i ładowanie modułu Po utworzeniu potrzebnych funkcji należy skompilować projekt w trybie Release. Po kompilacji zakończonej sukcesem należy otworzyć folder zawierający plik projektu, odnaleźć folder Release a w nim plik z rozszerzeniem.dll i nazwie zgodnej z nazwą projektu. Plik kopiuje się do folderu zawierającego URBI. Po przekopiowaniu modułu uruchamia się serwer URBI. Dobrym pomysłem jest zainstalowanie oprócz serwera URBI aplikacji Gostai Console. Pozwala ona w łatwy sposób komunikować się z serwerem. Po odpaleniu serwera włącza się konsolę, która domyślnie ma ustawiony adres i port do komunikacji z serwerem, następnie należy kliknąć połącz (przycisk z zieloną kropką znajdujący się na prawo od paska adresu serwera, po ustanowieniu połączenia przycisk zmienia barwę na czerwoną). 6

Rysunek 4: Włączony serwer URBI oraz połączona z nim konsola Po ustanowieniu połączenia można przejść do załadowania modułu za pomocą komendy: => loadmodule ( NazwaModulu ) ; Należy pamiętać o średniku na końcu komendy (średnik oznacza sekwencyjny tryb wykonywania komend). 8 Zdalne sterowanie urządzeniem Po załadowaniu modułu do URBI oraz podłączeniu urządzenia do portu USB komputera można przystąpić do sterowania. Pierwszą czynnością jaką należy wykonać jest stworzenie zmiennej służacej do komunikacji z modułem, np.: => var l = ULedy.new ( ) ; Teraz należy otworzyć port wywołując funkcje myusbopendevice: => l. myusbopendevice ( ) ; Po wykonaniu tych czynności można przystąpić do zapalenia i gaszenia wybranych diod, zapamiętywania stanów i bezpiecznego odłączania urządzenia. Diod jest 8, a wybranie opcjii 11 tyczy się do wszystkich. => l. on ( 1 1 ) ; 7

Rysunek 5: Wywołanie komend z konsoli Rysunek 6: Efekt po wywołaniu komend Poniższy kod spowoduje zgaszenie co drugiej diody. => l. o f f ( 7 ) ; => l. o f f ( 5 ) ; => l. o f f ( 3 ) ; => l. o f f ( 1 ) ; Rysunek 7: Co druga dioda zgaszona Poniższy kod zaświeci diody nr 1 i 3 oraz bezpiecznie odłączy urządzenie zapamiętując stan. Po ponownym podłączeniu urządzenia obserwuje się stan, w którym diody nr 1 oraz 3 są włączone. 8

=> l. o f f ( 1 1 ) ; => l. on ( 1 ) ; => l. on ( 3 ) ; => l. koniec ( 1 ) ; Rysunek 8: Stan diod po ponownym włączeniu zasilania W analogiczny sposób wywołuje się pomoc, która wyświetlana jest w terminalu URBI. => l. pomoc ( ) ; Rysunek 9: Wyswietlanie menu pomocy w terminalu URBI Poniższy kod powoduje wyłączenie diody nr 5(jeśli jest włączona) oraz jej załączenie po 10s. => l. o p o z n i j (5, 1 0 ) ; 9

9 Podsumowanie Realizacja projektu zakończyła się pełnym sukcesem. Utworzono moduł URBI dedykowany dla systemu Windows, obsługujący pełną funkcjonalność urządzenia. Projekt pozwolił na poszerzenie własnej wiedzy programistycznej. Wystąpiły pewne problemy przy dołączaniu zewnętrznych bibliotek jednak zostały one rozwiązane co pozwoliło ukończyć postawione zadanie. 10 Bibliografia 1. Dokumentacja projektu Power Swith autorstwa Damiana Kowalskiego czerwiec 2012 2. http://www.gostai.com/downloads/urbi/2.x/doc/urbi-sdk.pdf kwiecień czerwiec 2012 3. http://codeandlife.com/2012/01/29/avr-attiny-usb-tutorial-part-3/ czerwiec 2012 4. http://www.learncpp.com/cpp-tutorial/a2-using-libraries-with-visual-studio-2005-express/ czerwiec 2012 5. http://en.wikipedia.org/wiki/urbi marzec 2012 6. http://www.gostai.com/doc/urbi-quickstart-1.5.pdf kwiecień czerwiec 2012 7. http://forum.urbiforge.org/ kwiecień czerwiec 2012 8. http://www.obdev.at/products/vusb/index-de.html czerwiec 2012 10