Curriculum

Note: This curriculum is out dated, and has been heavily worked on to be more accessible and dynamic. Check out our new system here: https://www.techyeducators.com/map/

Video:

Basic Tutorial:

0:14 How to Plug in Thymio to Program and Charge
1:00 Opening Aseba Studio and Connecting Thymio
1:30 The Visual Programming Language (VPL)
2:00 If-Then Statements with VPL
2:05 How to Program the Touch Sensors
2:40 How to Delete lines of Code
2:55 Programming the Motors
3:10 Proximity Sensors
3:40 Changing the LED Color of Thymio, RGB
4:40 Bottom Proximity Sensors
5:00 Making sounds
5:25 Tapped, Using the Accelerometer to Detect Tap Event
5:45 Sound Sensor, and The looping effect of why your sound may repeat.
6:39 The Best Way to use the Sound Sensor
6:50 Viewing the Code beneath the VPL
7:10 Compilation Success vs. Line Error: Redeclaration of Event
7:48 Save Early and Save Often: Saving your Program
8:10 Saving VPL Program
8:26 Load and Run – Playing your program on Thymio
8:40 The Stop Button – Stopping Thymio
8:57 One line at a time – Good form in Programming, Test often!
9:30 Keeping your program on Thymio – Write the Program inside Thymio
9:59 How NOT to Open a program you’ve previously created
10:25 How to Open a program you’ve previously created

Challenge #1: Create an interactive pet!

Materials: LEGO, Blue Painter’s Tape, Cardstock paper, markers or colored paper.

Level: Easy

Objectives: Getting familiar with Thymio, programming behaviors with the VPL, Simple construction techniques

For K through 2nd Grade– this can be done using the preprogrammed behaviors, and letting the kids build off of the Thymio robot with legos, and coloring on paper and cardboard and attaching crafts to Thymio with blue painters tape for easy removal.

For 2nd Grade and Up– This is a great project to get students started with Thymio and start experimenting with programming with the VPL.  This is also a nice introduction to get students building off of the robot.

Further Exploration:  What happens when you connect a lego beam to each motor?

Example Project:

Challenge #2: Writing Code to Command Thymio with a Remote Control!

Materials: Universal Remote Control, Thymio, USB Cord, Aseba Studio, Computer
Level: Moderate, for 4th grade and up
Objectives: Understand basics of code, write code using editor, program thymio to react from remote control
Word of caution: Make sure that no students have remote controls in their hands and are pressing buttons, otherwise it will ruin your demonstration! Advise students to try and use different buttons than people around them so as to reduce confusion.
Hint: The sensors you use must be organized under the onevent for the same sensor.

0:20 When you use the VPL, you can see the code being composed in real time
0:40 Setting the Initial States
1:35 Onevent buttons
1:47 If-then statements
1:47 if button.forward == 1
1:50 1 is True, 0 is false
2:19 Call means ‘do’
2:25 leds.top(r,g,b) – Red, green blue
2:50 0 is minimum LED value, 32 is maximum led value
4:30 onevent tap
6:27 Saving written Code
6:42 Going over the patterns within code
7:20 Starting to Code for Remote Control
onevent rc5
7:30 if then end
7:43 looking at the variable list
7:52 Clicking Auto to see Sensor Data
8:15 Seeing Thymio RC5 sensor respond to Remote

#code for remote control
call sound.system(-1)
call leds.top(0,0,0)
call leds.bottom.left(0,0,0)
call leds.bottom.right(0,0,0)
call leds.circle(0,0,0,0,0,0,0,0)

onevent buttons
	if button.forward == 1 then
		call leds.top(32,32,0)
	end
	if button.right == 1 then
		call leds.top(0,32,32)
	end
onevent rc5
	if rc5.command == 1 then
		call leds.top(32,0,0)
	end
	if  rc5.command == 2 then
		call leds.top(0,32,0)
	end

Concept: Program Iterations

Iterations Tutorial:

var itera = 0 #all variables must be stated at very beginning of code
call leds.top(0,0,0)

onevent rc5
if rc5.command == 1 then
	itera=3
end

timer.period[0] = 1000 # 1000ms = 1s
onevent timer0
if itera > 0 then
	if itera==3 then
		call leds.top(0,0,32)
	end
	if itera==2 then
		call leds.top(32,0,32)
	end
	if itera==1 then
		call leds.top(0,32,32)
	end
itera = itera - 1 # else itera = 3
end

 

Challenge #3: Create your own Drawing Pattern

Follow the link to some sample drawing patterns:

flower drawingpattern 2

Have students use this code as a base and then modify it to generate their own patterns.

Further Exploration: What happens to the pattern when the time period is shorted?

What happens to the pattern with speeds are increased?

Challenge #4: Record your own sounds!

Follow the steps and Watch the tutorial found here to record your own sounds.

Challenge #5

Sound Record and Playback on Thymio

Challenge #6

Line Following

Challenge #7

Plotting a Pendulum https://aseba.wikidot.com/en:thymiopenduleplot

Challenge #8

Local Communication

Thymio can use its horizontal infrared distance sensors to communicate a value to peer robots within a range of about 15 cm. This value is sent at 10 Hz while processing the distance sensors. Thymio sends an 11-bit value (but future firmware could use one of the bits for internal use, thus it is better to stay within 10 bits). To use the communication, call the prox.comm.enable(state)function, with 1 in state to enable communication or 0 to turn it off. If the communication is enabled, the value in the prox.comm.tx variable is transmitted every 100 ms. When Thymio receives a value, the event prox.comm is fired and the value is in the prox.comm.rx variable.

Challenge #9

Accelerometer- Balancing on a ball

Thymio contains a 3-axes accelerometer. An array of 3 variables, acc, holds the values of the acceleration along these 3 axes:

  • acc[0] : x-axis (from right to left, positive towards left)
  • acc[1] : y-axis (from front to back, positive towards the rear)
  • acc[2] : z-axis (from top to bottom, positive towards ground)

The values in this array vary from -32 to 32, where 1 g (the acceleration of the earth’s gravity) corresponding to the value 23, and therefore one unit corresponds to 0.45 N (Newton). Thymio updates this array at a frequency of 16 Hz, and generates the acc event after every update. Moreover, when a shock is detected, a tap event is emitted.

 

(c) 2014, Juci Inc.  All the above is subject to copyright, and cannot be copied in any way.  Please email [email protected] with any questions