Raspberry Pi Gaming 4 Kids - Dutch Version

15,163 views
15,134 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
15,163
On SlideShare
0
From Embeds
0
Number of Embeds
10,848
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Raspberry Pi Gaming 4 Kids - Dutch Version

  1. 1. Raspberry Pi Gaming 4 Kids Stephen Chin (@steveonjava) Monday, 28 October 13
  2. 2. Wat draait er op Java? Monday, 28 October 13
  3. 3. Wat draait er op Java? Monday, 28 October 13
  4. 4. Java en 3G in een Klein Pakketje > Cinterion EHS5 Monday, 28 October 13
  5. 5. Heel Klein.... 18.8mm 27.6mm Monday, 28 October 13
  6. 6. http://upload.wikimedia.org/wikipedia/commons/3/3d/Cloud_forest_Ecuador.jpg Monday, 28 October 13
  7. 7. Neem wat Java bij je toetje Raspberry Pi = Monday, 28 October 13
  8. 8. Pi’s zijn Betaalbaar €35 Monday, 28 October 13
  9. 9. Pi’s zijn Betaalbaar Een Luxe Taart Een Fiets (alleen het wiel) €35 Monday, 28 October 13 3/4 Pak Luiers
  10. 10. Chalkboad Electronics Touchscreen § 10" or 7" Form Factor § Verbind via HDMI/USB § Getest met JavaFX 8 § 10% Exclusieve Korting: G1F0U796Z083 Monday, 28 October 13
  11. 11. Hoe installeer je jouw Pi > Stap 1: Installeer Linux > Stap 2: Download/Copieer Java 8 voor ARM EA > Stap 3: Deploy and Run JVM Language Apps http://steveonjava.com/ javafx-on-raspberry-pi-3-easy-steps/ Monday, 28 October 13
  12. 12. Wat zit er in jouw Lab Kit Touch Screen SD Card Toetsenbord Gele Doos: 1. 2. 3. 4. l l l l l Stroom Adapter LVDS Kabel/Bord Raspberry Pi Model B Mini-USB Kabel (stroom) Micro-USB Kabel (toetsenbord) AUB: Bewaar de verpakking voor later! Monday, 28 October 13
  13. 13. Electriciteit en Veiligheid! > Stekker uit de muur voordat je begint > Verwijder statische electriciteit door een metaal oppervlak aan te raken > Raak onbeschermde snoeren/metaal niet aan > Nooit de SD Kaart verwijderen of aansluiten als er stroom op staat 13 Monday, 28 October 13
  14. 14. Aansluiten van de Pi (Deel 1) Belangrijk: Sluit alles eerst aan voordat je er stroom op zet! Plaats de SD Kaart in de Pi 1. l Lijkt ondersteboven van boven af bekeken Plaats het HDMI bord in de HDMI plug van 2. de Pi Verbind de Pi stroom kabel aan het HDMI 3. bord l Gebruik de Micro USB Kabel (de kortere) 14 Monday, 28 October 13
  15. 15. Aansluiten van de Pi (Deel 2) Schuif de LCD kabel aan de achterkant van het scherm 4. l l De kant met gouden aansluiters moet boven Voorzichtig, de aansluiting is kwetsbaar! Sluit de USB uitgang aan een van de USB ports van de Pi 5. l Dit is voor de touch input Sluit het toetsenbord aan 6. 1. Gebruik de Mini USB kabel (de langere) Controleer de verbindingen en sluit de stroom aan 15 Monday, 28 October 13
  16. 16. Werkt het nu? > Als het goed is zie je een aantal LED lampjes oplichten, dit geeft aan dat de Pi aan het opstarten is l > Het LCD scherm zou nu moeten aangaan l > Opstarten duurt ongeveer 30 seconden 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
  17. 17. Inloggen Bij login, type je gebruikersnaam: > pi En voer het wachtwoord in: > raspberry Monday, 28 October 13
  18. 18. Draai je eerste Programma Verander de map naar de project map > cd MaryHadALittleLambda Run(=uitvoeren van) het script > ant Monday, 28 October 13
  19. 19. 19 Monday, 28 October 13
  20. 20. Hack de Code Run(=uitvoeren van) de Nano tekst editor: > nano src/sample/MapObject.java Bewaar je aanpassingen: > Control-O Enter Verlaat Nano: > Control-X Compileer/Run: > ant Monday, 28 October 13
  21. 21. Mary Had a Little Lamb(da) Dit is een Engels Kinderliedje over een meisje met een Lammetje! Mary had a little lambda Whose fleece was white as snow And everywhere that Mary went Lambda was sure to go! https://github.com/steveonjava/MaryHadALittleLambda Monday, 28 October 13
  22. 22. 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
  23. 23. 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. 24. 24 Monday, 28 October 13
  25. 25. 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
  26. 26. 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. 27. 27 Monday, 28 October 13
  28. 28. Filteren van Collections (=verzamelingen) Collection.removeIf > Verwijdert alle elementen die voldoen the ‘if’ expressie List.replaceAll > Filteren en vervanging met gebruik van 1 input ObservableCollection.filtered > Geeft een lijst terug van het gefilterde 28 Monday, 28 October 13
  29. 29. 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. 30. 30 Monday, 28 October 13
  31. 31. 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
  32. 32. Single Map (enkele map) s.getAnimals().setAll(s.getAnimals()        .stream()        .map(sv  -­‐>  new  Eggs(sv.getFollowing())        .collect(Collectors.toList()) ); 32 Monday, 28 October 13
  33. 33. 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. 34. 34 Monday, 28 October 13
  35. 35. 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
  36. 36. Broedeieren s.getAnimals().setAll(s.getAnimals()        .stream()        .flatMap(SpriteView.Eggs::hatch)        .collect(Collectors.toList()) ); 36 Monday, 28 October 13
  37. 37. 37 Monday, 28 October 13
  38. 38. 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
  39. 39. 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. 40. 40 Monday, 28 October 13
  41. 41. Mary Had a Little Lambda Project > > Open-source project om lambda kenmerken te demonstreren Visuele representatie van streams, filters en maps https://github.com/steveonjava/MaryHadALittleLambda 41 Monday, 28 October 13
  42. 42. NightHacking Tour Stephen Chin (@steveonjava) http://steveonjava.com/ Real Geeks Live Hacking nighthacking.com Monday, 28 October 13
  43. 43. 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

×