Jean-François Cauche Upcycle Commons /...

16
1 Jean-François Cauche Upcycle Commons / Trezorium

Transcript of Jean-François Cauche Upcycle Commons /...

Page 1: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

1

Jean-François CaucheUpcycle Commons / Trezorium

Page 2: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

2

HELLOWORLD !

Page 3: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

3

PourquoiCoder ? Compréhens ion du monde

numérique / Lire, écrire, compter,coder... / Mode d’apprentissagealternatif / Ouverture technique,sc ien t i f i que e t cu l tu re l le /Citoyenneté numérique / Fun !

Page 4: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

4

Que pour les enfants ?

Page 5: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

5

CODE

// Trig lookup tables borrowed from Toxi; cryptic but effective.float sinLUT[];float cosLUT[];float SINCOS_PRECISION=1.0;int SINCOS_LENGTH= int((360.0/SINCOS_PRECISION)); // System databoolean dosave=false;int num;float pt[];int style[];

void setup() { size(1024, 768, P3D); background(255); // Fill the tables sinLUT=new float[SINCOS_LENGTH]; cosLUT=new float[SINCOS_LENGTH]; for (int i = 0; i < SINCOS_LENGTH; i++) { sinLUT[i]= (float)Math.sin(i*DEG_TO_RAD*SINCOS_PRECISION); cosLUT[i]= (float)Math.cos(i*DEG_TO_RAD*SINCOS_PRECISION); } num = 150; pt = new float[6*num]; // rotx, roty, deg, rad, w, speed style = new int[2*num]; // color, render style // Set up arc shapes int index=0; float prob; for (int i=0; i<num; i++) { pt[index++] = random(PI*2); // Random X axis rotation pt[index++] = random(PI*2); // Random Y axis rotation pt[index++] = random(60,80); // Short to quarter-circle arcs if(random(100)>90) pt[index]=(int)random(8,27)*10; pt[index++] = int(random(2,50)*5); // Radius. Space them out nicely pt[index++] = random(4,32); // Width of band if(random(100)>90) pt[index]=random(40,60); // Width of band pt[index++] = radians(random(5,30))/5; // Speed of rotation // get colors prob = random(100); if(prob<30) style[i*2]=colorBlended(random(1), 255,0,100, 255,0,0, 210); else if(prob<70) style[i*2]=colorBlended(random(1), 0,153,255, 170,225,255, 210); else if(prob<90) style[i*2]=colorBlended(random(1), 200,255,0, 150,255,0, 210); else style[i*2]=color(255,255,255, 220);

if(prob<50) style[i*2]=colorBlended(random(1), 200,255,0, 50,120,0, 210); else if(prob<90) style[i*2]=colorBlended(random(1), 255,100,0, 255,255,0, 210); else style[i*2]=color(255,255,255, 220);

style[i*2+1]=(int)(random(100))%3; }} void draw() { background(0); int index=0; translate(width/2, height/2, 0); rotateX(PI/6); rotateY(PI/6); for (int i = 0; i < num; i++) { pushMatrix(); void arcLineBars(float x,float y,float deg,float rad,float w) { int a = int((min (deg/SINCOS_PRECISION,SINCOS_LENGTH-1))); a /= 4; beginShape(QUADS); for (int i=0; i<a; i+=4) { vertex(cosLUT[i]*(rad)+x,sinLUT[i]*(rad)+y); vertex(cosLUT[i]*(rad+w)+x,sinLUT[i]*(rad+w)+y); vertex(cosLUT[i+2]*(rad+w)+x,sinLUT[i+2]*(rad+w)+y); vertex(cosLUT[i+2]*(rad)+x,sinLUT[i+2]*(rad)+y); } endShape();}}

CODAGE

Page 6: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

6

OpenSCAD

Page 7: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

7

OpenStreetMap

Page 8: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

8

Robotique / Électronique

Page 9: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

9Fabrication numérique

Page 10: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

10

Scratch

Page 11: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

11

Séquencer

Page 12: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

12

ScratchX

Page 13: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

13

Deep code (random, text…)

Page 14: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

14

Tutoriels

https://dl.dropboxusercontent.com/u/179079/Tutoriels_Scratch.zip

Page 15: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

15

Merci !jfcauche@gmail.comsecouezlecours.comupcyclecommons.comtrezorium.com

Page 16: Jean-François Cauche Upcycle Commons / Trezoriumjeia.fil.univ-lille1.fr/slides/ateliers/scratch/cauche_scratch.pdf · 3 Pourquoi Coder ? Compréhension du monde numérique / Lire,

16

Crédits Photos

ReSurge International (CC BY-NC-ND 2.0)

Daniel Lombraña González (CC BY-SA 2.0)

Adam Greig (CC BY-SA 2.0)

Christiaan Colen (CC BY-SA 2.0)

Jean-François CAUCHE