raspberry pi gaming 4 kids - dutch version

Post on 15-Jan-2015

11.796 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation on teaching Raspberry Pi and Java to kids 10 and up. This is the Dutch translated version used for Devoxx 4 Kids Netherlands.

TRANSCRIPT

Raspberry Pi Gaming 4 KidsStephen Chin (@steveonjava)

Monday, 28 October 13

Wat draait er op Java?

Monday, 28 October 13

Wat draait er op Java?

Monday, 28 October 13

Java en 3G in een Klein Pakketje> Cinterion EHS5

Monday, 28 October 13

Heel Klein....

27.6mm

18.8

mm

Monday, 28 October 13

http://upload.wikimedia.org/wikipedia/commons/3/3d/Cloud_forest_Ecuador.jpgMonday, 28 October 13

=Neem wat Java bij je toetjeRaspberry Pi

Monday, 28 October 13

Pi’s zijn Betaalbaar

€35Monday, 28 October 13

Pi’s zijn Betaalbaar

€35 3/4 Pak Luiers

Een Fiets(alleen het wiel)

Een Luxe Taart

Monday, 28 October 13

Chalkboad Electronics Touchscreen

§ 10" or 7" Form Factor§ Verbind via HDMI/USB§ Getest met JavaFX 8§ 10% Exclusieve Korting:

G1F0U796Z083

Monday, 28 October 13

Wat zit er in jouw Lab Kit

1. Touch Screen2. SD Card3. Toetsenbord4. Gele Doos:

l Stroom Adapterl LVDS Kabel/Bordl Raspberry Pi Model Bl Mini-USB Kabel (stroom)l Micro-USB Kabel (toetsenbord)

AUB: Bewaar de verpakking voor later!

Monday, 28 October 13

Electriciteit en Veiligheid!> Stekker uit de muur voordat je begint

> Verwijder statische electriciteit door een metaal oppervlak aan te raken

> Raak onbeschermde snoeren/metaalniet aan

> Nooit de SD Kaart verwijderen ofaansluiten als er stroom op staat

13

Monday, 28 October 13

Aansluiten van de Pi (Deel 1)

1. Plaats de SD Kaart in de Pil Lijkt ondersteboven van boven af bekeken

2. Plaats het HDMI bord in de HDMI plug van de Pi

3. Verbind de Pi stroom kabel aan het HDMI bord

l Gebruik de Micro USB Kabel (de kortere)

14

Belangrijk: Sluit alles eerst aan voordat je er stroom op zet!

Monday, 28 October 13

Aansluiten van de Pi (Deel 2)

4. Schuif de LCD kabel aan de achterkant van het scherm

l De kant met gouden aansluiters moet bovenl Voorzichtig, de aansluiting is kwetsbaar!

5. Sluit de USB uitgang aan een van de USB ports van de Pi

l Dit is voor de touch input6. Sluit het toetsenbord aan

1. Gebruik de Mini USB kabel (de langere)

15

Controleer de verbindingen en sluit de stroom aan

Monday, 28 October 13

Werkt het nu?> Als het goed is zie je een aantal LED lampjes oplichten, dit geeft aan

dat de Pi aan het opstarten isl Opstarten duurt ongeveer 30 seconden

> Het LCD scherm zou nu moeten aangaanl Als de licht sensor belemmerd is, dan lijkt deze wat schemerig

> Als het goed is zie je een Linux opstart scherm met heel veel tekst

Hacking Time!

Monday, 28 October 13

Inloggen

Bij login, type je gebruikersnaam:> piEn voer het wachtwoord in:> raspberry

Monday, 28 October 13

Draai je eerste Programma

Verander de map naar de project map> cd MaryHadALittleLambdaRun(=uitvoeren van) het script> ant

Monday, 28 October 13

19

Monday, 28 October 13

Hack de Code

Run(=uitvoeren van) de Nano tekst editor:> nano src/sample/MapObject.javaBewaar je aanpassingen:> Control-O EnterVerlaat Nano:> Control-XCompileer/Run:> ant

Monday, 28 October 13

Mary Had a Little Lamb(da)

Mary had a little lambdaWhose fleece was white as snowAnd everywhere that Mary wentLambda was sure to go!

https://github.com/steveonjava/MaryHadALittleLambda

Dit is een Engels Kinderliedje overeen meisje met een Lammetje!

Monday, 28 October 13

Het genereren van “Streams”

Van een collection (=verzameling):> anyCollection.stream();Bekende reeks van objecten:> Stream.of("bananen",  "peren",  "appels");Numerieke reeks:> IntStream.range(0,  50)Iteratief:> Stream.iterate(Color.RED,  >    c  -­‐>  Color.hsb(c.getHue()  +  .1,  c.getSaturation(),  >                                                                    c.getBrightness()));

22

Monday, 28 October 13

Nu gaan we boerderij dieren maken!

SpriteView  tail  =  s.getAnimals().isEmpty()  ?    s  :  s.getAnimals().get(s.getAnimals().size()  -­‐  1);

Stream.iterate(tail,  SpriteView.Lamb::new)        .substream(1,  8)        .forEach(s.getAnimals()::add);

23

Monday, 28 October 13

24

Monday, 28 October 13

Het filteren van “Streams”

Predicate Expression (een soort gezegde)> public  interface  Predicate<T>  {>    public  boolean  test(T  t);> }

Filter de kinderen eruit> volwassenen  =  deelnemers.filter(a  -­‐>  a.getLeeftijd()  >=  18)

25

Monday, 28 October 13

Lammetjes in de kleuren van de regenboog!s.getAnimals().stream()    .filter(a  -­‐>  a.getNumber()  %  4  ==  2)    .forEach(a  -­‐>  a.setColor(Color.YELLOW));s.getAnimals().stream()    .filter(a  -­‐>  a.getNumber()  %  4  ==  3)    .forEach(a  -­‐>  a.setColor(Color.CYAN));s.getAnimals().stream()    .filter(a  -­‐>  a.getNumber()  %  4  ==  0)    .forEach(a  -­‐>  a.setColor(Color.GREEN));

26

Monday, 28 October 13

27

Monday, 28 October 13

Filteren van Collections (=verzamelingen)

Collection.removeIf> Verwijdert alle elementen die voldoen the ‘if’ expressieList.replaceAll> Filteren en vervanging met gebruik van 1 input

ObservableCollection.filtered> Geeft een lijst terug van het gefilterde

28

Monday, 28 October 13

Moeilijke eters…

Predicate<SpriteView>  pure  =    a  -­‐>  a.getColor()  ==  null;

mealsServed.set(mealsServed.get()  +    s.getAnimals().filtered(pure).size());

s.getAnimals().removeIf(pure);

29

Monday, 28 October 13

30

Monday, 28 October 13

Mapping Streams

Past een Map Functie toe op elk element:> Function<?  super  T,  ?  extends  R>

Resultaat: Lijst is even groot, maar kan van een ander type zijn.

31

Monday, 28 October 13

Single Map (enkele map)s.getAnimals().setAll(s.getAnimals()        .stream()        .map(sv  -­‐>  new  Eggs(sv.getFollowing())        .collect(Collectors.toList()));

32

Monday, 28 October 13

Of een Double Map! (dubbele map)s.getAnimals().setAll(s.getAnimals()        .stream()        .map(SpriteView::getFollowing)        .map(Eggs::new)        .collect(Collectors.toList()));

33

Monday, 28 October 13

34

Monday, 28 October 13

Flat Map (platte map)

Past een Een-op-Veel Map Functie toe op elk element:> Function<? super T, ? extends Stream<? extends R>>En maakt het dan weer plat naar een enkele map (single map).

Resultaat: De lijst kan langer worden en het type kan anders zijn.

35

Monday, 28 October 13

Broedeierens.getAnimals().setAll(s.getAnimals()        .stream()        .flatMap(SpriteView.Eggs::hatch)        .collect(Collectors.toList()));

36

Monday, 28 October 13

37

Monday, 28 October 13

Reduce (=verminderen)

Vermindert een lijst naar een enkel element:> Identity: T> Accumulator: BinaryOperator<T>

Resultaat: Lijst van hetzelfde type, maar slechts 1 element blijft over.

38

Monday, 28 October 13

En de (voorheen) kleine vos at ze allemaal op!Double  mealSize  =  shepherd.getAnimals()        .stream()        .map(SpriteView::getScaleX)        .reduce(0.0,  Double::sum);

setScaleX(getScaleX()  +  mealSize  *  .2);setScaleY(getScaleY()  +  mealSize  *  .2);shepherd.getAnimals().clear();

39

Monday, 28 October 13

40

Monday, 28 October 13

Mary Had a Little Lambda Project> Open-source project om lambda kenmerken te demonstreren> Visuele representatie van streams, filters en maps

41

https://github.com/steveonjava/MaryHadALittleLambda

Monday, 28 October 13

Stephen Chin (@steveonjava)http://steveonjava.com/

nighthacking.com

Real GeeksLive Hacking

NightHacking Tour

Monday, 28 October 13

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.

Monday, 28 October 13

top related