Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Podobne dokumenty
Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)

KATEDRA SYSTEMÓW MULTIMEDIALNYCH SEMINARIUM MULTIMEDIALNE SYSTEMY MEDYCZNE

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Przegląd rozwiązań z oferty firmy 4D Systems

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Techniki mikroprocesorowe i systemy wbudowane

ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM

Zgrana para - NerO i CleO

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

OPIS PRZEDMIOTU ZAMÓWIENIA. Część nr 4.3

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Android - wprowadzenie. Łukasz Przywarty

Słowa kluczowe jak góry lodowe

tel. (+48 81) /22 fax (+48 81) Cel przedmiotu

ASEM UBIQUITY PRZEGLĄD FUNKCJONALNOŚCI

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

Zrób to sam : generowanie ruchu, światła i dźwięku za pomocą Arduino i Raspberry Pi / Simon Monk. Gliwice, Spis treści

ActiveXperts SMS Messaging Server

Michał Olejnik. 22 grudnia 2009

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Konspekt pracy inżynierskiej

Zaawansowane programowanie w języku C++

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Zestaw Startowy EvB. Więcej informacji na stronie:

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Politechnika Śląska Wydział Elektryczny Katedra Mechatroniki. Koncepcja przyłączania mikroinstalacji prosumenckich (gniazd) do laboratorium ilabepro

Tworzenie oprogramowania

Elektroniczna Legitymacja Studencka jako narzędzie wielofunkcyjne Oberthur Technologies

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

SYSTEMY CZASU RZECZYWISTEGO (SCR)

Temat: Narzędzia do wspomagania projektowania układów elektronicznych Data: Przeredagowano: Autor: Piotr Kierat

W semestrze letnim studenci kierunku Aplikacje Internetu Rzeczy podczas ćwiczeń z programowania CAD/CAM

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

URZĄDZENIE DO BEZPRZEWODOWEGO STRUMIENIOWANIA MULTIMEDIÓW

Dokumentacja kompilacji źródeł aplikacji 1.0

CMS, CRM, sklepy internetowe, aplikacje Web

Projekt inżynierski uwagi

Instytut Systemów Elektronicznych. Specjalność Systemy Informacyjno-Pomiarowe

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

KARTA KURSU. Projektowanie aplikacji mobilnych

SPECYFIKACJA TECHNICZNA OPROGRAMOWANIA

Kurs wybieralny: Zastosowanie technik informatycznych i metod numerycznych w elektronice

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

System akwizycji danych na bazie platformy Arduino

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

Process Automation Toolkit (PAT)

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Programator procesorów rodziny AVR AVR-T910

Specjalność uzupełniająca

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

POLITECHNIKA LUBELSKA

Nowości zakupione dla Biblioteki Elektrotechniki w I półroczu 2014 r. w języku polskim

PRZEWODNIK PO PRZEDMIOCIE

Egzamin / zaliczenie na ocenę*

Wprowadzenie do narzędzia MAVEN

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

PROGRAMOWALNE STEROWNIKI LOGICZNE

[Junior Developer - pierwsza praca jako programista - JavaDevMatt] 1. Sponsorzy Partnerzy projektu O czym i dla kogo jest ta książka?

Podstawy Techniki Komputerowej. Temat: BIOS

Tworzenie, odtwarzanie i zdalne zarządzanie treścią

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Programowanie aplikacji mobilnych

Inżynieria systemów mobilnych

Android tworzenie aplikacji mobilnych

SYLABUS/KARTA PRZEDMIOTU

NASZA MISJA. wszystkie nasze dzialania sfokusowane sa na efektywną, partnerską współprace.

RAPORT KOŃCOWY PROJEKTU

SYLABUS/KARTA PRZEDMIOTU

Wstęp do Informatyki. Klasyfikacja oprogramowania

SYLABUS/KARTA PRZEDMIOTU

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

ABIX Cyfrowa edukacja z oprogramowaniem Open Source

Co już można, a co będzie można zrobić w e-podręczniku technologicznie?

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Openbox AS1 HD CXCI+ Dual Core Android, Kodi

Specjalność Systemy Aplikacyjne Grafiki i Multimediów. Wydział Informatyki, Politechnika Białostocka

INSTRUKCJA OBSŁUGI.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Apokalipsa zombie nadchodzi! : obroń swoją bazę za pomocą prostych obwodów, Arduino i Raspberry Pi / Simon Monk. Gliwice, cop

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

edycja 1 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

OpenLaszlo. OpenLaszlo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

MECHATRONIKA według. ch!

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Transkrypt:

Instytut Informatyki Politechnika Poznańska

Dokumentowanie projektu Freemind http://freemind.sourceforge.net Ułatwia dokumentowanie pomysłów, analizowanie zależności między nimi, pozwala na ich ocenę i selekcję Fritzing http://fritzing.org/ Pozwala dokumentować prototypy, dzielić się nimi, tworzyć schematy poglądowe, schematy ideowe i płytki drukowane projektowanych aplikacji zawiera wsparcie dla Arduino Inkscape http://inkscape.org Prosty w użyciu program do tworzenia grafiki wektorowej. Mimo że oprogramowanie Inkscape skierowany jest głównie do grafików, dzięki precyzyjnym narzędziom doskonale nadaje się do szkicowania pomysłów związanych z projektami 01-2014 2

Fritzing http://fritzing.org/download/ 01-2014 3

Fritzing http://fritzing.org/download/ 01-2014 4

Fritzing http://fritzing.org/download/ 01-2014 5

Fritzing http://fritzing.org/download/ 01-2014 6

Fritzing http://fritzing.org/download/ 01-2014 7

Firmata http://firmata.org/wiki/ Uniwersalny protokół komunikacyjny, umożliwiający sterowanie mikrokontrolerami z poziomu komputera może sterować pracą Arduino Może sterować takimi urządzeniami jak silniki, serwomechanizmy czy wyświetlacze 01-2014 8

Firmata Program Firmata_test http://firmata.org/wiki/ http://www.pjrc.com/teensy/firmata_test/firmata_test/firmata_test.exe http://firmata.org/wiki/examples https://github.com/firmata/arduino 01-2014 9

Firmata http://firmata.org/wiki/ Najważniejsze funkcje biblioteki Firmata 01-2014 10

Firmata http://firmata.org/wiki/ Firmata to projekt zainicjowany przez Hansa Christopha Steinera Jest prostym systemem operacyjnym dla Arduino, kontrolowanym za pośrednictwem transmisji szeregowej Firmata jest ładowany do Arduino, a następnie z pomocą innego języka można kontrolować stan modułu Arduino i połączonych z nim układów, bez aktualizacji kodu Oprogramowanie Firmata jest wykorzystywane w środowiskach Processing, openframeworks, Cinder, Python, Ruby, Pd i innych platformach programistycznych 01-2014 11

Processing www.processing.org Processing - multimedialne środowisko programowania, oparte na języku Java, stworzone dla projektantów, artystów i innych osób, które bez zagłębiania się w szczegóły dotyczące programowania chcą tworzyć grafikę, animacje i interakcje. Można używać klas i metod z Javy. Działa w systemach Windows, Linux i Mac OS X Niewielka ilość Processing umożliwia realizację złożonych zadań, jak połączenie z zewnętrznym urządzeniem przez port szeregowy lub sterowanie kamerą Istnieje również Processing dla urządzeń z Androidem i Processing dla języka JavaScript 01-2014 12

Processing www.processing.org 01-2014 13

Techniki testowania kodu Metodyka wytwarzania sterowanego testowami (ang. Test-Driven Development) Artykuł : Ian Dees, Testing Arduino Code, PragPub, 2011 (https://pragprog.com/magazines/2011-04/testing-arduino-code) Ben Rady i Rod Coffin, Continuous Testing: with Ruby, Rails, and JavaScript, The Pragmatic Bookshelf, Raleigh i Dallas, 2011 Np. podczas pisania skryptów języka Python warto przygotować testy jednostkowe (np. przy użyciu narzędzia py.test) Dla Ruby i Rails warto rozważyć użycie Rspec (David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp i Dan North, The RSpec Book,The Pragmatic Bookshelf, Raleigh i Dallas, 2009 01-2014 14

Techniki testowania kodu Dla Arduino: https://pragprog.com/magazines/2011-04/testing-arduinocode https://code.google.com/p/arduinounit/ https://github.com/mmurdoch/arduinounit https://code.google.com/p/arduino/wiki/arduinotestsuite http://puredata.wikispaces.com/ Brak oficjalnego emulatora dla Arduino, m.in. dla tego, że sprzętowa platforma Arduino jest tania W systemie Windows są dostępne emulatory: Virtual Breadboard (http://www.virtualbreadboard.net), Emulare (http://emulare.sourceforge.net/) 01-2014 15

Biblioteka ArduinoTestSuite Projektowanie sterowane testami (ang. Test-Driven Development, TDD) W metodzie TDD projekt programistyczny dzielony jest na niewielkie fragmenty, dla których przygotowywane są testy sprawdzające działanie każdej funkcji. Programowanie rozpoczyna się dopiero po przygotowaniu testów. Biblioteka ArduinoTestSuite stała się kluczowym narzędziem projektowania dla Arduino. ArduinoTestSuite udostępnia standardowe metody i funkcje, które można wykorzystać do przetestowania szkicu przed załadowaniem go do Arduino co pozwala uniknąć ewentualnych uszkodzeń zewnętrznych urzadzeń. Biblioteka jest ciągle rozwijana 01-2014 16

Biblioteka ArduinoTestSuite Aktualnie dostępne testy ATS_begin ATS_end ATS_PrintTestStatus ATS_Test_DigitalPin ATS_Test_PWM ATS_Test_AnalogInput ATS_Test_EEPROM ATS_Test_Serial_LoopBack ATS_GetFreeMemory Inicjuje proces testowania Kończy proces testowania Wydruk statusu testu Testuje dany port wyjściowy Testuje wyjście z generatora PWM Testuje wejście analogowe Testuje obsługę pamięci EEPROM Testuje ruch wchodzący i wychodzący na portach szeregowych Zwraca ilość wolnej pamięci dostępnej dla Arduino 01-2014 17

Platformy W przypadku realizacji rozwiązań typu Internet przedmiotów (ang. Internet of Things) pojawia się problem komunikacji z tymi urządzeniami operatorzy Internetu czasem blokują porty wychodzące aby uniemożliwić instalowanie serwerów dedykowanych na popularnych portach, jak FTP, HTTP (i HTTPS) czy SMTP Warto zwrócic uwagę na platformy dostępne za pośrednictwem prostych interfejsów API usług sieciowych np.: Pachube Exosite Yaler A także Xively, http://www.pachube.com, http://www.exosite.com, http://www.yaler.org. 01-2014 18

Yaler 01-2014 19

Android Ważny system m.in. dla systemów wbudowanych Pakiet Android Open Accessory Kit ADK (2011 r.), umożliwia obsługę takich funkcji jak aparat, GPS, Bluetooth, WiFi (http://developer.android.com/guide/topics/usb/adk.html) Wielu producentów elektroniki wprowadza na rynek urządzenia zgodne z ADK Projekt Google: Android@Home propagowanie Android jako bazowej technologii dla inteligentnych domów Android SDK zestaw narzędzi (SDK, ang. Software Development Kit) dla programistów przeznaczony do tworzenia aplikacji na platformę Android (http://developer.android.com/sdk) 01-2014 20

Android Narzędzia ADK składają się z dwóch części: protokołu oraz sprzętu dla wybranego urządzenia pojawiły się płyty Arduino (zgodne z ADK) wykorzystujące układ ATMega 2560 Istotą oprogramowania ADK jest możliwość zaprogramowania urządzenia z interfejsem USB w taki sposób, że samo nawiązuje połączenie z chwilą podłączenia do komputera. W płycie Arduino Mega efekt ten osiąga się dzięki zastosowaniu procesora USB z interfejsem SPI. Dostępne są nakładki umożliwiające dodawanie nowych funkcjonalności ADK do innych płyt Arduino, np. UNO Urządzenie, które ma współpracować z ADK (np.tablet) musi być wyposażone w wersję 2.3.4 systemu Android lub nowszą, lecz nie stanowi to jeszcze gwarancji powodzenia. Aby ostatecznie potwierdzić zgodność, należy wyszukać na stronie Google Play ADK demo kit. 01-2014 21

Android Brak wyników wyszukiwania oznacza, że urządzenie nie ma zainstalowanych niezbędnych bibliotek. Przed rozpoczęciem programowania należy skonfigurować środowiska Android i Arduino. W środowisku Arduino potrzebna jest jeszcze biblioteka obsługująca protokół ADK. Jest ona dostępna na stronie Arduino labs (plik http://labs.arduino.cc/uploads/adk/gettingstarted/ard uinoadk-beta-001.zip). 01-2014 22

Android W spakowanym pliku ZIP znajdują się pliki aplikacji Processing i biblioteki Arduino. Aplikacje dla systemu Android można tworzyć w środowiskach Processing (http://processing.org) lub Eclipse (http://eclipse.org). Programowanie w środowisku Processing jest podobne do Arduino. Środowisko Eclipse oferuje więcej funkcjonalności. Podczas tworzenia kodu dla systemu Android w środowisku Eclipse musisz pamiętać o dwóch różnych stylach programowania: Java i XML. Java jest głównym językiem programowania i podstawą każdej aplikacji Android. Natomiast kod XML służy do określenia wyglądu aplikacji, wyświetlanych obiektów i tekstu. 01-2014 23

Android Korzystanie z ADK Arduino jest podobne do użycia bibliotek do transmisji szeregowej. Biblioteka dodana do środowiska Arduino IDE jest oparta na bibliotekach Circuit@Home i w odróżnieniu od innych dostępnych bibliotek oferuje łatwy sposób deklarowania i inicjowania połączenia z urządzeniem. 01-2014 24

openframeworks www.openframeworks.cc Oprogramowanie openframeworks jest zbiorem bibliotek języka C++, przeznaczonych do prostej obsługi audio, wideo i grafiki Biblioteki zawierają mechanizmy do łatwego łączenia komputera z zewnętrznymi urządzeniami i modułami Arduino Biblioteki umożliwiają rozwijanie pomysłu bez konieczności programowania na najniższym poziomie. Dostępny jest kod źródłowy, który może być używany jako wzorzec do dalszej rozbudowy. Zastosowanie bibliotek openframeworks i Arduino pomaga w budowaniu środowiska testowego dla sprzętu i oprogramowania Wada należy zdawać sobie sprawę, że tworzone w ten sposób rozwiązania nie oferują produkcyjnej jakości i nie są na tyle niezawodne i zoptymalizowane, aby mogły być używane masowo. 01-2014 25

Uber Home Automation w/arduino & Pi http://www.instructables.com/id/uber-home-automation/ 01-2014 26

openhab Otwarte oprogramowanie dla automatyzacji domu Pracuje w Windows, MacOS Xlub Linux z Java 1.7 lub nowsze Współpracuje z platformami wbudowanymi: Raspberry Pi, BeagleBone Black, UDOO, Cubietruck 01-2014 27

openhab Otwarte oprogramowanie dla automatyzacji domu Pracuje w Windows, MacOS Xlub Linux z Java 1.7 lub nowsze Współpracuje z platformami wbudowanymi: Raspberry Pi, BeagleBone Black, UDOO, Cubietruck 01-2014 28

openhab Komunikacja w openhab 01-2014 29

SmartHome http://www.eclipse.org/smarthome/ Otwarte oprogramowanie dla automatyzacji domu 01-2014 30

Literatura 1. Riley M.: Inteligentny dom. Automatyzacja mieszkania za pomocą platformy Arduino, systemu Android i zwykłego komputera, Helion, 2013. 2. Igoe T.: Spraw, by rzeczy przemówiły. Programowanie urządzeń elektronicznych z wykorzystaniem Arduino, Helion, 2013. 3. Anderson R., Cervo D.: Arduino dla zaawansowanych, Helion, 2014. 4. Evans M., Noble J., Hochenbaum J.: Arduino w akcji, Helion, 2014. 01-2014 31

Książki dotyczące Arduino aktualnie (10.2014) dostępne w j.polskim 1. Riley M.: Inteligentny dom. Automatyzacja mieszkania za pomocą platformy Arduino, systemu Android i zwykłego komputera, Helion, 2013. 2. Igoe T.: Spraw, by rzeczy przemówiły. Programowanie urządzeń elektronicznych z wykorzystaniem Arduino, Helion, 2013. 3. Anderson R., Cervo D.: Arduino dla zaawansowanych, Helion, 2014. 4. Evans M., Noble J., Hochenbaum J.: Arduino w akcji, Helion, 2014. 5. Boxall J.: Arduino. 65 praktycznych projektów, Helion, 2013. 6. Banzi M.: Wprowadzenie do Arduino, Helion, 2014. 01-2014 32

Książki dotyczące Arduino aktualnie (10.2014) dostępne w j.polskim, cd. 7. Gertz E., Di Justo P.: Monitorowanie otoczenia z Arduino, Helion, 2014. 8. Monk S.: Arduino dla początkujących. Podstawy i szkice, 2014. 9. Monk S.: Arduino i Android. Niesamowite projekty. Szalony geniusz, Helion, 2014. 10. Jon L.: Arduino i projekty LEGO. Zadziwiające projekty LEGO sterowane przez Arduino, Helion, 2013. 11. Westerfield M.: Projekty elektroniczne na iphone i ipad. Niekonwencjonalne gadżety z technologią Arduino i techbasic, Helion, 2014. 12. Monk S.: Zabawy z elektroniką. Ilustrowany przewodnik dla wynalazców i pasjonatów, Helion, 2014 01-2014 33

Dziękuję 34 09-2006