APPLICATIEBOUW 5E COLLEGE: LEJOS DEEL 2. Onderdeel van SmartProducts

Vergelijkbare documenten
APPLICATIEBOUW 6E COLLEGE: HET ONTWERPEN VAN EEN KLASSE, LEJOS DEEL 3. Onderdeel van SmartProducts

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Extra oefening Probeer de voorbeeldprogramma s uit de LeJOS tutorial en de samples die bij de LeJOS software geïnstalleerd zijn.

APPLICATIEBOUW KENNISMAKING LEJOS, LEGO NXT PROGRAMMEREN IN JAVA. Onderdeel van SmartProducts

APPLICATIEBOUW KENNISMAKING LEJOS, LEGO NXT PROGRAMMEREN IN JAVA. Onderdeel van SmartProducts

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Opdracht 7a. Applicatiebouw 2014/2015

Mindstorms NXT practicum

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

APPLICATIEBOUW 6E COLLEGE: GEBRUIKERSINTERFACES, ANIMATIES & TIMERS, LEJOS DEEL 3. Onderdeel van SmartProducts

APPLICATIEBOUW 7E COLLEGE: DPU3, OEFENEN TOETS. Onderdeel van SmartProducts

Mindstorms NXT practicum

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden -

Programmeren (1) Examen NAAM:

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

IMP Uitwerking week 13

Lego Mindstorms NXT practicum Middag 1

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Tentamen in2705 Software Engineering

1e college Introductie Applicatiebouw. Applicatiebouw{ } Onderdeel van SmartProducts

Objectgeoriënteerd programmeren in Java 1

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Programmeren in Java 3

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Programmeren in Java les 3

Vakgroep CW KAHO Sint-Lieven

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

Lego Mindstorms NXT practicum Middag 1

Modelleren en Programmeren

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is


Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Modulewijzer Tirdat01

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Zelftest Programmeren in Java

Modelleren en Programmeren

Programmeren met lego mindstorms.

Lessen Java: Reeks pag. 1

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

NAAM: Programmeren 1 Examen 29/08/2012

SI-Profinet. Unidrive M700 en Siemens S7-300 PLC (Step 7)

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Modelleren en Programmeren

Modulewijzer tirprog02/infprg01, programmeren in Java 2

Over Betuwe College. Lego Mindstorm project

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

In BlueJ. Doe onderstaande met muis/menu s:

Labo 2 Programmeren II

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Ontwerp van Informatiesystemen

VAN HET PROGRAMMEREN. Inleiding

Academie voor ICT en Media 2013/2014

BEGINNER JAVA Inhoudsopgave

Kleine cursus PHP5. Auteur: Raymond Moesker

Modelleren en Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

TENTAMEN Programmeren 1

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Nascholing voor leerlingen. Software-ontwikkeling met behulp van Lego Mindstorms

Objectgericht programmeren 1.

In dit lespakket maken we gebruik van de studentenversie van LabVIEW 7.1

Modelleren en Programmeren

g. Je kan nu door op de play knop te drukken je programma versturen naar de EV3 brick waarna het zal uitgevoerd worden.

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Modelleren en Programmeren

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Introductiekaart Niveau B Installatie software

Zelfstudie Boek: Hoofdstuk 1 tm. 3.5 uit het boek Aan de slag met Java (Gertjan Laan).

Programmeren met Arduino-software

Javascript oefenblad 1

Vermogen snelheid van de NXT

Veel succes! 1. Gegeven is de volgende klasse:

Werkbladen voor Arduino workshop 1

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur

Ingebouwde klassen & methodes

VI. Klassen en objecten

Deeltentamen Grammatica s en ontleden 22 december 2005

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Tentamen Imperatief Programmeren

Programmeren in C# Samenvatting van C#

Extra oefening Boek: Neem de opgaven van hoofdstuk 1 en 2 door om je de stof beter eigen te maken. Programmeer zelf voorbeeld 0204.

Overerving & Polymorfisme

Abstracte klassen & Interfaces

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

APPLICATIEBOUW 7E COLLEGE: OEFENEN VOOR DE TOETS. Onderdeel van SmartProducts

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

Scala. Korte introductie. Sylvia Stuurman

Transcriptie:

APPLICATIEBOUW 5E COLLEGE: LEJOS DEEL 2 Onderdeel van SmartProducts

INHOUD COLLEGE 5 Bespreking opdrachten & DPU2 LeJOS deel 2 Opdracht 5 Vanmiddag review DPU2 module4.io.utwente.nl/applicatiebouw Applicatiebouw, Industrieel Ontwerpen 20-6-2016 2

PROTOTYPE VS. UITEINDELIJK PRODUCT DPU S 2 EN 3 APPLICATIEBOUW: ONTWERPEN EN BOUWEN SOFTWARE PROTOTYPE DPU1: Specificaties voor uiteindelijk product DPU2 en 3: Ontwerp & bouw voor prototype Met prototype toon je werking aan en demonstreer je functies voor (potentiele) opdrachtgevers Prototype kan subset van functies uiteindelijk product hebben Niet vergeten: materiaal DPU2 inleveren! BlackBoard: Applicatiebouw > DPU's/opdrachten inleveren Applicatiebouw, Industrieel Ontwerpen 20-6-2016 3

Vanmiddag review DPU2 DPU2 : TESTVERSIE APPLICATIE DPU 2 Realiseer eerste testversies* van: De Userinterface (kan ism. Ergonomie) Het proefmodel (Lego model) Applicatie voor de systeembesturing (Java) DPU 1 Software specificaties Classontwerp + pseudocode Programma regels (code) { boek: 4.8-4.11, 6.1-6.4 } * Resultaat: eerste versie applicatie die enkele basisfuncties van het proefmodel demonstreert. Deze hoeven dus nog niet volledig functioneel (af) te zijn, maar tonen de werking/het plan aan. Applicatiebouw, Industrieel Ontwerpen 20-6-2016 4

BESPREKING OPDRACHTEN Zelf declareren van variabelen Wat is het type? (basis typen, classes zijn ook typen!) Denk aan afwerking: formatteer code, geef applicatie een titel (JFrame), voeg commentaar toe Type variabele Naam variabele Object // Voorbeelden declaratie basis typen: int x; double getal; // Voorbeelden waarbij type een class is: String s; Bal b; DifferentialPilot pilot; LightSensor l; Applicatiebouw, Industrieel Ontwerpen 20-6-2016 5

BESPREKING OPDRACHTEN OPDRACHT 4 Besturen robot: methoden Motor-class gebruiken: Motor.C.forward(); Delay.msDelay(200); Motor.C.flt(); Methoden voor aansturen robot bedenken Naam? Waarde terug? Parameters? public void methode( ) { // ga vooruit draaien // wacht even // stop met draaien Wel waarde terug: boolean void: Geen waarde terug public boolean methode( ) { return... } Booleaanse expressie: levert waar of niet waar op Applicatiebouw, Industrieel Ontwerpen 20-6-2016 6

BESPREKING OPDRACHTEN OPDRACHT 4 Declareren objecten Initialisatie in constructor Declareer een object voor de lichtsensor en initialiseer deze. public class Catapult { Declaratie object lichtsensor Constructor van de class Catapult LightSensor lichtsensor; public Catapult() {... lichtsensor = new LightSensor(SensorPort.S2);... } Initialisatie object lichtsensor Applicatiebouw, Industrieel Ontwerpen 20-6-2016 7

BESPREKING OPDRACHTEN OPDRACHT 4 Meten lichtwaarde Wat is de lichtwaarde? Declareer een variabele voor lichtwaarde en vraag lichtwaarde aan sensor. Heeft de lichtwaarde een bepaalde waarde? Variabele: lichtwaarde int lichtwaarde=lichtsensor.getlightvalue(); if (lichtwaarde>20) {... } Van een object kan je een methode aanroepen Als lichtwaarde groter dan 20, dan code { } uitvoeren Applicatiebouw, Industrieel Ontwerpen 20-6-2016 8

HET ONTWERPEN VAN EEN KLASSE HOOFDSTUK 6 BOEK Stappen (College 3): 1. Object analyseren 2. Klasse ontwerpen (wat is wat kan hoe?) 3. Klasse uitwerken (types attributen, parameters & resultaat methoden) 4. Methoden invullen (body) wat is... Vergelijking: Class = recept voor object Boek: bouwtekening wat kan... een object Boek: wat zijn de verantwoordelijkheden? en hoe? Applicatiebouw, Industrieel Ontwerpen 20-6-2016 9

ONTWERPMETHODEN VOOR SOFTWARE HST 5, 6 EN 7 Klasse diagram, mbv UML Andere: Functie decompositie Data flows State diagram (toestands overgang diagram) Flow chart (stroomschema) {5} Applicatiebouw, Industrieel Ontwerpen 20-6-2016 10

UML DIAGRAMMEN HOOFDSTUK 6.2 BOEK - dag:int - maand:int - jaar:int Datum + getdag():int + getmaand():int + setdag( dag:int ) Naam class class-variabelen (eigenschappen) Methoden + public - private type achter de : Applicatiebouw, Industrieel Ontwerpen 20-6-2016 11

UML: UNIFIED MODELING LANGUAGE VOORBEELDEN VAN UML DIAGRAMMEN Applicatiebouw, Industrieel Ontwerpen 20-6-2016 12

IN ECLIPSE: OBJECTAID CLASS DIAGRAM PLUGIN 1. Kies Help > Install New Software uit menu 2. Vul update site http://www.objectaid.net/update in bij Work with 3. Expand ObjectAid UML Explorer, selecteer 1e 2 opties, Druk op Next (2x) 4. Accepteer licentie, Finish 3) 2) Gebruik: File > New > Other, kies Object Aid UML Diagram > Class Diagram More info: objectaid.com/installation Applicatiebouw, Industrieel Ontwerpen 20-6-2016 13

OBJECTAID CLASS DIAGRAM MAKEN Class diagram is verplicht bij inleveren DPU3 (bijlage verslag) Sleep met muis classes vanuit Package Explorer in het diagram: Klaar? Diagram opslaan als afbeelding: klik met rechtermuisknop in diagram > Save Image objectaid.com/class-diagram Applicatiebouw, Industrieel Ontwerpen 20-6-2016 14

THEORIE: VAN DOMEINKLASSE TOT IMPLEMENTATIE HOOFDSTUK 7 BOEK Boek: voorbeelden van ontwerp tot uiteindelijk resultaat (programma) Domeinmodel: relaties tussen set klassen Relaties kan je weergeven in UML mbv. klassendiagram Applicatiebouw, Industrieel Ontwerpen 20-6-2016 15

LIJSTEN: ARRAY Lijst van primitive typen Bijv. int, double Altijd initialiseren met new Class voor het bijhouden van universele lijsten: ArrayList // declaratie lijst van 4 integers: int[] dout = new int[4]; // eerste element in lijst krijgt een waarde: dout[0] = 0; // Test de LED's door ze 1 voor 1 aan te doen: for (int i = 0; i < 4; i++) { dout[i] = 1; superpro.write(dout); Tools.delay(1_000); // wacht 1 sec. } Applicatiebouw, Industrieel Ontwerpen 20-6-2016 16

ARRAYLIST PARAGRAAF 7.3, 7.4 BOEK Opdracht 4b: stuiterende ballen Lijsten van objecten bijhouden Opdracht 6: zie Controller Methoden: add(object) get(int) size() // Lijst met alle ballen in het Panel: ArrayList<Bal> ballen; // Maak een nieuwe bal: Bal b = new Bal(); // Voeg de Bal toe aan de lijst met ballen: ballen.add(b); // Haal bal nummer 5 uit de lijst: Bal b = ballen.get(5); In deze lijst mogen alleen objecten van type Bal // Hoeveel ballen zitten er in de lijst?: System.out.println("Aantal ballen: "+ballen.size() ); Applicatiebouw, Industrieel Ontwerpen 20-6-2016 17

ARRAYLIST VOORRAADBEHEER: CONTROLLER OPDRACHT 6 ArrayList<Product> producten; // lijst van producten // voeg nieuw Product toe aan de lijst: producten.add(new Product(name, prijs)); private boolean controleerbetaling() { // Haal het product uit de lijst: Product p = producten.get(gekozenitem); // Als het saldo hoger of gelijk aan de prijs van het gekozen items is, // geven we accoord voor de betaling: if (saldo >= p.getprijs()) { return true; } gui.displaymessage("onvoldoende saldo"); return false; In opdracht: check methoden van de class Product om de naam en de prijs van een product op te vragen Applicatiebouw, Industrieel Ontwerpen 20-6-2016 18

ARRAYLIST Opdracht 4b: stuiterende ballen Lijst doorlopen mbv for-each lus: public void paintcomponent(graphics g) { super.paintcomponent(g); // Teken alle ballen door van elke bal // de paintcomponent() aan te roepen: } for (Bal b : ballen) { // for-each b.paintcomponent(g); // teken de bal } for-each lus: paragraaf 7.3.8 boek Applicatiebouw, Industrieel Ontwerpen 20-6-2016 19

JAVA VOOR LEGO MINDSTORMS NXT Sensoren, events Rijdende robots besturen DifferentialPilot class Ritgegevens Gedrag Classes Behavior en Arbitrator lejos.org: tutorial en API documentatie Applicatiebouw, Industrieel Ontwerpen 20-6-2016 20

VOORBEELDEN LEJOS Samples-project van lejos: File > Import Uitleg samples voor Eclipse Zoeken in voorbeelden: 21

SENSOREN: ULTRASOON Class: UltrasonicSensor Methode: public int getdistance() In samples-project van lejos: UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1); int afstand = 0; while (!Button.ESCAPE.isDown()) { afstand = sensor.getdistance(); LCD.clear(3); LCD.drawInt( afstand, 0, 3); Delay.msDelay(1_000); // 1 sec wachten } 20-6-2016 22

SENSOREN: TOUCH Class: TouchSensor Methode: public boolean ispressed() Levert true als de touchsensor is ingedrukt, anders false TouchSensor touch = new TouchSensor(SensorPort.S1); // wacht zolang touchsensor niet is ingedrukt: while (!touch.ispressed()) ; LCD.drawString("Finished", 3, 4); Leeg Java statement: spatie+; = doe niets Applicatiebouw, Industrieel Ontwerpen 20-6-2016 23

SENSOREN: LICHT Class: LightSensor Methode: public int readvalue() Levert percentage tussen gekalibreerde waarden (er zijn meer methoden) LightSensor light = new LightSensor(SensorPort.S1); while (Button.ENTER.isUp()) { // zolang niet op Enter is gedrukt LCD.drawInt( light.readvalue(), 4, 0, 0); Delay.msDelay(1_000); // 1 sec wachten } Applicatiebouw, Industrieel Ontwerpen 20-6-2016 24

EVENTS IN LEJOS OPDRACHT 5 Listener: luistert naar events EventHandler voor een button-press Button.ESCAPE.addButtonListener(new ButtonListener() { public void buttonpressed(button b) { LCD.drawString("ESCAPE pressed", 0, 0); // stoppen door snelheid op 0 te zetten } // gereden afstand bepalen // gereden afstand weergeven // even wachten // stop het programma: System.exit(1); public void buttonreleased(button b) { } }); Thread: is taak die parallel loopt aan je programma Een Listener is een speciale taak: luistert naar events Applicatiebouw, Industrieel Ontwerpen 20-6-2016 25

RIJDENDE ROBOTS Voor robots met 2 aangedreven wielen Alleen voor aansturing motoren Rekent met afstanden De DifferentialPilot class Eenheid parameters bepaald eenheid waarmee gerekend wordt! Parameters: Wieldiameter Trackbreedte Motoren DifferentialPilot p = new DifferentialPilot(5.6f, 12.3f, Motor.A, Motor.C ); trackbreedte Trackbreedte (cm) Wieldiameter (cm) Applicatiebouw, Industrieel Ontwerpen 20-6-2016 26

RIJDENDE ROBOTS: RIJDEN DIFFERENTIALPILOT CLASS Basis commando s net als bij motoren Afstand afleggen: travel( ) Snelheid instellen setrotatespeed( ) settravelspeed( ) DifferentialPilot p = new DifferentialPilot(5.6f, 12.3f, Motor.A, Motor.C ); p.setrotatespeed(360); p.settravelspeed(20); p.forward(); p.stop(); p.travel(200); // snelheid in graden per seconde // snelheid in cm per seconde // rijd een afstand van 2 m Applicatiebouw, Industrieel Ontwerpen 20-6-2016 27

RIJDENDE ROBOTS: STUREN DIFFERENTIALPILOT CLASS Om eigen as draaien rotate( ) Sturen, cirkelvormig pad afleggen steer(int turnrate) steer(int turnrate, int angle) p.steer(-100, 90); // stuur naar rechts p.steer(100, 90); // stuur naar links Motor L -200-100 0 100 200 turnrate turnrate = -200 turnrate = 0 turnrate = 200 Motor R Applicatiebouw, Industrieel Ontwerpen 20-6-2016 28

RIJDENDE ROBOTS: RITGEGEVENS METHODEN DIFFERENTIALPILOT CLASS Nodig eind opdracht 5 Starten met meten, teller op nul: reset() Wat is de snelheid? float gettravelspeed() Gereden afstand? float getmovement().getdistancetraveled() Hoek waaronder de robot nu staat? // verlaat methode als snelheid ingesteld op 0: if ( p.gettravelspeed() == 0 ) return; int getmovement().getangleturned() Applicatiebouw, Industrieel Ontwerpen 20-6-2016 29

GEDRAG GEDRAG VAN EEN ROBOT BESCHRIJVEN EN REGELEN Definitie van gedrag: Behavior Gedrag regelaar (bemiddelaar): Arbitrator Applicatiebouw, Industrieel Ontwerpen 20-6-2016 30

BEHAVIOR CLASS class Behavior is een interface = abstracte class die voorschrijft hoe een afgeleide class er uit moet zien Behavior gedrag1 = new DriveForward(); class implements Behavior Object van type (class) DriveForward Interface: Hoofdstuk 11 van het boek Applicatiebouw, Industrieel Ontwerpen 20-6-2016 31

METHODEN BEHAVIOR CLASS takecontrol() bepaald wanneer dit gedrag geactiveerd wordt (levert true als conditie vervuld wordt) action() bepaald wat er moet gebeuren als dit gedrag geactiveerd wordt suppress() bepaald wat er moet gebeuren als dit gedrag onderdrukt moet worden Dit zijn verplichte methoden voor een Behavior class Applicatiebouw, Industrieel Ontwerpen 20-6-2016 32

BEHAVIOR CLASS public class HitWall implements Behavior { TouchSensor touch; DifferentialPilot pilot; public HitWall(DifferentialPilot p) { // constructor touch = new TouchSensor(SensorPort.S2); pilot = p; } Object aangemaakt in hoofdprogramma, wordt doorgegeven aan dit object public boolean takecontrol() { return touch.ispressed(); } // wanneer wordt dit gedrag actief? public void suppress() { // wat doen als dit gedrag wordt onderdrukt? pilot.stop(); } } public void action() { // dit doen als we geactiveerd worden pilot.travel(-10); // 10cm terug pilot.steer(100, -90); // bochtje achteruit } Applicatiebouw, Industrieel Ontwerpen 20-6-2016 33

BEHAVIOR CLASS takecontrol(): gedrag wordt actief als voorwaarde waar (true) wordt Voorwaarde = Sensor: vergelijk sensorwaarde Touch: is ingedrukt? Ultrasoon: is dichtbij? Of: is ver weg? public boolean takecontrol() { // we worden actief als er een obstakel dichtbij is... return ultrasoon.getdistance() < 45; } Methode levert true op als afstand < 45 Applicatiebouw, Industrieel Ontwerpen 20-6-2016 34

ARBITRATOR CLASS = BEMIDDELAAR Slaat alle Behavior-objecten op Laat ze aan de beurt komen (action) als de voorwaarde (takecontrol) vervuld wordt Prioriteiten zijn niet mogelijk Zelf goed ontwerpen Niet dezelfde/concurrerende voorwaarden Voorbeelden in Samples project lejos: LineFollower: lijn volger BumperCar: eenvoudige versie Explorer Applicatiebouw, Industrieel Ontwerpen 20-6-2016 35

PROJECT: EXTRA ELEKTRONICA ARDUINO/NXSHIELD/RFID MODULE Dit is allemaal te leen bij docent Arduino: extra elektronica gebruiken, bouwen NXT-Shield: Arduino combineren met NXT Voorbeeld: RFID module icm. Arduino Nano, gebruiken in Java App Met NX-shield/Ev-shield kan je arduino gebruiken ipv NXT voor aansturen Lego-motoren, en gebruiken Lego sensoren Tutorials! Applicatiebouw, Industrieel Ontwerpen 20-6-2016 36

VOLGENDE WEEK NODIG VOOR OPDRACHT 6 VUL INDIEN NODIG BIJ ELEKTRONICA JE KIT AAN! Het SuperPro board, Bijbehorende componenten: minimaal 4 leds, 4 schakelaars, een potmeter, 4 weerstanden van 10K en 4 van 220 Ohm en voldoende draadjes Het externe LCD display Een volle accu, minimaal 2 uur aan oplader geweest Volgend college is dinsdagochtend! Applicatiebouw, Industrieel Ontwerpen 20-6-2016 37

AAN DE SLAG OPDRACHT 5 Explorer programmeren Bouwgids: nxtprograms.com/nxt2/explorer Bouwen: iets dikkere accu => kleine aanpassingen maken Uitvoeren in groepjes van 2, of individueel Doe je geen SmartProducts: opdracht 5b Explorer nxtprograms.com Volgend college is as. dinsdagochtend! Vanmiddag gesprekken DPU2 module4.io.utwente.nl/applicatiebouw Applicatiebouw, Industrieel Ontwerpen 20-6-2016 38