Podstawy programowania w lejos

Podobne dokumenty
Ćwiczenie 1. Przygotowanie środowiska JAVA

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Projektowanie aplikacji internetowych laboratorium

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Java. Programowanie Obiektowe Mateusz Cicheński

1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)?

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Aplikacje w środowisku Java

Aplikacja wielowątkowa prosty komunikator

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

package pakieta; import pakietb.b; package pakietb; public class B { B(){} public class A { private B b; A(B b) { this.b = b; } }

Kurs programowania. Wykład 8. Wojciech Macyna

Aplikacje w Javie- wykład 11 Wątki-podstawy

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Przykłady interfejsu TCP i UDP w Javie

Laboratorium Programowania Kart Elektronicznych

Wprowadzenie do języka Java

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Algorytmy z powrotami. Algorytm minimax

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Podstawy, środowisko JDK, kompilacja programów z linii poleceń

1. Co można powiedzieć o poniższym kodzie?

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

Podstawy języka Java. przygotował:

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Git, Bitbucket, IntelliJ IDEA

Zaawansowane aplikacje WWW - laboratorium

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie i projektowanie obiektowe

Aplikacja wielow tkowa prosty komunikator

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Programowanie obiektowe

Spis treści. 1 Java T M

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Programowanie obiektowe

Materiały do zajęć III

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie obiektowe zastosowanie języka Java SE

Wykład 1: Wprowadzenie do technologii Java

Aplikacje RMI

Język Java wątki (streszczenie)

Java Podstawy. Michał Bereta

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Podstawy współbieżności

JDK można pobrać ze strony

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Programowanie obiektowe i zdarzeniowe

Metody Metody, parametry, zwracanie wartości

Języki i metody programowania Java. Wykład 2 (część 2)

Systemy Rozproszone - Ćwiczenie 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

Składnia C++ Programowanie Obiektowe, część 3 Mateusz Cicheński

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

Programowanie obiektowe

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Programowanie obiektowe

1 Atrybuty i metody klasowe

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Kl 7-8 Szkoła Podstawowa

JAVA W SUPER EXPRESOWEJ PIGUŁCE

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie Obiektowe Ćwiczenie 4

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Java jako język programowania

Bezpieczne uruchamianie apletów wg

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

STWORZENIE PRZYKŁADOWEJ

Programowanie współbieżne Laboratorium nr 11

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

SYSTEMY CZASU RZECZYWISTEGO (SCR)

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Języki i metody programowania Java Lab2 podejście obiektowe

Programowanie obiektowe

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Transkrypt:

Podstawy programowania w lejos Plan wykładu 1. Prezentacja rozwiązań zadań domowych z pierwszych zajęć. 2. Maszyna wirtualna lejos: a. instalacja SDK lejos na komputerze, b. instalacja lejosa na kostce NXT, c. kompilacja i wgrywanie programów na NXT. nxjc HelloWorld.java nxjlink -v HelloWorld -o HelloWorld.nxj nxjupload HelloWorld.nxj 3. Pierwszy program a. struktura programu b. instrukcje sterujące: if ( ){ else { while ( ) c. podstawowe klasy w lejosie klasa Motor klasy LCD i Sound klasa Thread metoda sleep rzucanie wyjątków 8 listopada 2011

Ćwiczenia Wszystkie pliki źródłowe dostępne są również na stronie warsztatów oraz pod adresem: http://robotyka.wmi.amu.edu.pl/warsztaty/02_lejos/ Instalacja lejos Wgraj na kostkę najnowszą wersję lejosa (0.9.0). Zainstaluj sterowniki NXT na swoim komputerze Zainstaluj i skonfiguuruj lejosa Podłącz NXT do komputera za pomocą kabla USB Włącz kostkę pomarańczowym przyciskiem - poczekaj aż system rozpozna robota i doinstaluje odpowiednie sterowniki. Uruchom wiersz poleceń i wpisz: nxjflashg Postępuje zgodnie z instrukcjami na ekranie Hello World Skompiluj, wgraj i uruchom swój pierwszy program. public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Wykonaj po kolej: nxjc HelloWorld.java nxjlink -v HelloWorld -o HelloWorld.nxj nxjupload HelloWorld.nxj

Prosty program Skompiluj i uruchom poniższy program. public class ProstyProgram { System.out.println("Basic Motor Test!"); Motor.A.setSpeed(3000); Motor.B.setSpeed(500); Motor.A.forward(); Motor.B.backward(); Thread.sleep(1000); Motor.A.stop(); Motor.B.stop(); System.out.println("KONIEC!"); Klasy Button, Sound i LCD Sprawdź działanie klasy LCD, Sound i Button na poniższym przykładzie. public class ButtonSoundLCD { LCD.drawString("NXT ", 0,1); LCD.drawString("leJOS", 4,2); LCD.drawInt(2011,8,3); Sound.playTone(440, 100); // 440Hz, 100ms LCD.drawString("Cleared the screen...",0,3); LCD.drawString("Press button to continue!",0,4); Obsługa wątków Zapoznaj się z poniższym kodem i działaniem wątków. Skompiluj program i wgraj go na kostkę. Przeanalizuj jego przebieg, co się stanie, gdy odkomentujemy linie z poleceniem setdaemon()? public class ThreadExample {

Timer t = new Timer(); //t.setdaemon(true); Controler c = new Controler(); //c.setdaemon(true); t.start(); class Timer extends Thread { @Override public void run(){ int i = 10; Sound.playTone(440, 100); try { while(i>0) { LCD.drawString("Time left: ", 0, 0); LCD.drawInt(i, 10, 0); i--; this.sleep(1000); System.out.println("Timer - koniec!"); catch (Exception e) { class Controler extends Thread { @Override public void run() { try { Sound.playTone(660, 400); Motor.A.setSpeed(360); Motor.A.forward(); this.sleep(5000); Motor.A.stop(); System.out.println("Controller - koniec!"); catch (Exception e) { Obsługa wyjątków Spróbuj skompilować poniższy program. W razie potrzeby zmodyfikuj go tak, aby można go było uruchomić. public class ExceptionsExample { public static void main(string[] args) { System.out.println("Test the Exceptions"); Thread.sleep(500); Zadania Kwadrat (2 punkty) Zaprogramuj robota tak, aby podróżował po kwadracie. Robot powinien wykonać co najmniej

trzy okrążenia pod rząd. Dodatkowo powinien zaczynać i kończyć zadanie w tym samym punkcie. Koło (2 punkty) Jak wyżej, ale tor ma kształt koła o wyznaczonej średnicy. Koło plus (1 punkt) Jak wyżej ale robot musi na ekranie wyświetlać liczbę okrążeń jakie wykonał oraz co okrążenie wydawać dźwięk. Zadania domowe Ósemka (1 punkt) Podobnie jak w zadaniu Koło, ale robot podróżuje po kształcie cyfry 8. Katapulta (3 punkty) Przebuduj swojego robota na mobilną katapultę. Zaprogramuj go tak, aby w cykliczny sposób wyjeżdzał z bazy (gdzie będzie ładowany), ustawiał się na pozycji, oddawał strzał i wracał do bazy. Jego trasa za każdym razem powinna być trochę inna. Do obsługi katapulty wykorzystaj wątki. Katapulta+ (1punkt) Punkty przyznawane za ciekawe rozwiązania zadania Katapulta