This page serves to plan the agenda for the session, then logs the finalized minutes, as well as information necessary for final summary, upon the completion.
Continue last session, make things work
Understand how Variable and Functions are used in this project
A step-by-step way to make the LED indicator, starting knowledge of array/data-mapping
Good explorations with the challenging new knowledge of images/array/data mapping, these are advanced topics, get good attention for future further learning
Good recap and step-by-step exercise for the digital dice project using images/array/data mapping
Good learning attitude and passions in the room!
Good recap and discussion about how variable and functions are used in this project, good summary from the web page PJ013: Fun Controlling of Continuous Servo Motor
Too challenging topics for today, even the students can follow step-by-step to finish the digital dice project using the advanced technique, but many of them didn't really get the key points. (Anyway, not a must for them to understand so much yet, as long as they feel fun and get motivated)
The "lock" technique is not very well demonstrated in this project, so we skipped doing it, anyway, it wouldn't be enough time for this topic this session, and it's too much for this day's learning
Too much interruptions by some naughty students... hard to keep focused for more than 1.5 hour learning for some students...
This is a continued session from last time, a student missed the last session, so it's hard for him to jump in, a little hard to support him well, but thanks to one of our teaching assistant to help him finishing the basic requirement
The youngest student could finish the task by help, but still seem hard to go into detail understanding of why the logic there... Not sure if it'll be too much challenging for him later on
59 Kr: Fika snack
74 Kr: Tutor parking 9:52-12:20
20 Kr per student: Compensate the consuming cost of tools and materials for projects (like printed paper, stationery, cables, batteries, fragile components, etc.)
A little too much interruptions and discussions, we only finished the first part of the planned contents, i.e. the images/array/data-mapping
10:05-10:15: Recap what we did last session
10:15-10:50: Learn image/array/data mapping, by doing dice project step by step
Step 0: Create number variable, on-shake to get random number 1-6, show it on LED screen, as the simplest dice as a start
Don't show the dice number on LED now. Let's explore how to map 1-6 number to a tailored picture.
Step 1: "create image", "show image"
Create your own image, show it, to understand what is image with Micro:bit
Step 2: array, pick an element(value) from an array
Collect 6 images, where to store it? Variable! but here are 6 elements, how shall we store or manage them? Put them together into an "array", which is a container for "many elements of the same type".
Put 6 images into an array (array is not variable, but a data structure, the members/elements living inside the array are variables).
Now, learn to pick a specific element from that array,
Use the random drawn number as index to pick an image from that array, show this image! Test it, see if it is the right.
Remember to add "serial write" to debug.
Step 3: data mapping, re-organize the original data range to a new result range, by specifying the low/high
Now we know the result seems a little strange, let's understand the "index" starting from 0, biggest as len(array)-1, out of index is dangerous visiting.
We have 6 images, so the index is 0-5, but our lucky drawn number is 1-6, so let's re-map the 1-6 to 0-5.
Final test of the image dice! Make it work, recap and understand it.
11:10-11:50: Let's use the image/array/data-mapping to make a visualizer for servo motor controlling project, step by step.
Step 0: Prepare new project
Make a new project, fake a variable "speed", use button A/B/A+B to change it, increase/decrease by 5, reset to 0, guard it as -100 ~ 100, not out of range.
Use "serial write" to get debug message.
Step 1: array of images
Let's decide in the range of -100~100, how much rough/fine do we want to visualize, considering the rotation direction and speed value, and the limit of LED resolution, let's do a rough one, every 2 LED as a step, let it step till full light up.
Let's draw that many images, put it into an array type of Variable.
Step 2: data mapping
Let's map -100~100 range to the amount of images that we decided
Step 3: show image according to the re-mapped speed data, test it working