Slides for a Lego Workshop using Java coding via Lejos to create a wind turbine using the Lego EV3 core education set. Workshop was given at the Devoxx4Kids bay area chapter on May 2nd.
3. The Heart of the EV3
> TI Sitara AM1808
ARM9, 300Mhz
> 64MB RAM / 16MB Flash
> Analog to Digital Converter
> 4 Motor Ports
> 4 Sensor Ports
> Bluetooth / USB
> MicroSD
12. Windows USB Connection
Step 1: The wrong driver gets installed, so we need to fix this in the
Device Manager
13Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
13. Windows USB Connection
Step 2: In Device Manager, find your EV3’s RNDIS device. It is
under Network Adapters > USB Ethernet/RNDIS Gadget.
14Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
14. Windows USB Connection
Step 3: Double-click it and select the Drivers tab. Click Update
driver… to change the driver.
15Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
15. Windows USB Connection
Step 4: Select Browse my computer for driver software.
16Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
16. Windows USB Connection
Step 5: Click Let me pick from a list of device drivers on my computer.
17Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
17. Windows USB Connection
Step 6: Uncheck the box that says Show compatible hardware. In
the Manufacturer list, pick Microsoft Corporation (in Windows 8,
pick Microsoft). In the Network Adapter list, pick Remote NDIS
Compatible Device. Then click Next.
18Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
18. Windows USB Connection
Step 7: Windows thinks we don’t know what we are doing, but really
we do, so click Yes.
19Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
19. Windows USB Connection
Step 8: When it is done installing, click Close.
20Credit to the ev3dev team for the great screen captures and writeup: http://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-usb/?tabs-0=windows-7-8
20. Eclipse Setup
> Open Eclipse
> Go to "Preferences"
> Click on leJOS EV3
> Change the brick name to
the IP address of your brick
(default is 10.0.1.1)
21
21. Creating a New LeJOS Project
> Go to "File" > "New" > "Project…"
> Choose a LeJOS EV3 Project
22
22. Create a Class File
> Create a new class ("File" > "New"
> "Class")
> Give it a package (e.g. sample)
> Give it a name (e.g. LCDTest)
23
23. Simple LeJOS Application
public class EV3FirstProgram {
public static void main(String[] args) {
LCD.clear();
LCD.drawString("First EV3 Program", 0, 5);
Button.waitForAnyPress();
LCD.clear();
LCD.refresh();
}
}
46. Wind Turbine Wiring
> Port A – Medium Moto
Power Fan
> Port B – Large Motor
Rotate Wind Turbine
> Port 1 – Light Sensor
Track Ambient Light
47
49. Making the Wind turbine turn
public class WindTurbine {
public static void main(String[] args) {
EV3MediumRegulatedMotor fan =
new EV3MediumRegulatedMotor(MotorPort.A);
fan.setSpeed(1500);
fan.setAcceleration(150);
fan.backward();
Delay.msDelay(10000);
}
}
50. Making the Tower spin
public class WindTurbine {
public static void main(String[] args) {
EV3LargeRegulatedMotor base =
new EV3LargeRegulatedMotor(MotorPort.B);
base.setSpeed(80);
base.rotateTo(-90);
base.rotateTo(90);
}
}
51. Checking the Ambient Light
public class WindTurbine {
public static void main(String[] args) {
EV3ColorSensor light =
new EV3ColorSensor(SensorPort.S1);
float[] sample = new float[1];
SensorMode mode = light.getAmbientMode();
mode.fetchSample(sample, 0);
LCD.drawString("Light = " + sample[0], 0, 4);
Delay.msDelay(5000);
}
}
52. Putting it all together…
> Can you write a program that will:
1. Rotate the fan in a circle
2. Check the ambient light while rotating
3. Move back to the brightest angle
4. Spin the fan
http://commons.wikimedia.org/wiki/Wind_generator#mediaviewer/File:Eolienne_et_centrale_thermique_Nuon_Sloterdijk.jpg
54. Safe Harbor Statement
The preceding is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing
decisions. The development, release, and timing of any
features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.