MicroBlocks: small, fast, human friendly
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61582 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2023174 / 542
2
5
10
14
15
16
22
24
27
29
31
36
43
48
56
63
74
78
83
87
89
95
96
99
104
106
107
117
119
121
122
125
126
128
130
132
134
135
136
141
143
146
148
152
155
157
159
161
165
166
168
170
173
176
180
181
185
191
194
196
197
198
199
206
207
209
210
211
212
216
219
220
227
228
229
231
232
233
236
250
252
256
258
260
263
264
267
271
273
275
276
278
282
286
292
293
298
299
300
302
312
316
321
322
324
339
341
342
343
344
351
352
354
355
356
357
359
369
370
372
373
376
378
379
380
382
383
387
390
394
395
401
405
406
410
411
413
415
416
421
426
430
437
438
440
441
443
444
445
446
448
449
450
451
458
464
468
472
475
476
479
481
493
494
498
499
502
509
513
516
517
520
522
524
525
531
534
535
537
538
541
00:00
Block (periodic table)
00:21
Electronic visual displayControl flowFunction (mathematics)outputBlock (periodic table)Menu (computing)Computer fileView (database)Formal grammarExtension (kinesiology)WhiteboardSynchronizationLogical constantAreaOperator (mathematics)Variable (mathematics)Gamma functionElectronic visual displayDegree (graph theory)Dependent and independent variablesBlock (periodic table)Formal languageFunction (mathematics)Operator (mathematics)outputWhiteboardPersonal identification numberQuicksortComputer animation
01:32
Connected spaceBlock (periodic table)Multiplication signStructural loadComputer animation
02:44
Electronic visual displayVacuumScripting languageComputer-generated imageryOperator (mathematics)Variable (mathematics)Function (mathematics)outputComputer fileSlide ruleView (database)File formatExtension (kinesiology)Optical disc drivePlot (narrative)Menu (computing)Gamma functionComputer programmingMultiplication signLoop (music)Real-time operating systemTouchscreenoutputTouch typingPlotterGraph (mathematics)SynchronizationLevel (video gaming)Variable (mathematics)Greatest elementBlock (periodic table)Reflection (mathematics)Point (geometry)Computer animation
05:38
Formal grammarComputer fileBlock (periodic table)CodeVirtual machineIntegrated development environmentTouchscreenGoogolBlock (periodic table)Integrated development environmentComputer programmingRepresentation (politics)WhiteboardBitAssembly languageComputer animation
06:09
outputMaxima and minimaBlock (periodic table)Uniform resource locatorControl flowElectronic visual displayFunction (mathematics)Operator (mathematics)Menu (computing)Portable communications deviceCodeIntegrated development environmentVirtual machineView (database)Formal grammarComputer fileExtension (kinesiology)LaptopError messageBlock (periodic table)BytecodeVirtual machineRamificationComputer filePoint (geometry)Computer animation
07:32
Portable communications deviceView (database)Computer fileFormal grammarSlide ruleExtension (kinesiology)Variety (linguistics)WhiteboardElectric currentCompileroutputFunction (mathematics)Variable (mathematics)Mountain passElectronic visual displayPortable communications deviceElectronic visual displayBlock (periodic table)Scripting languageComputer fileWhiteboardComputing platformDifferent (Kate Ryan album)FirmwareVirtual machineBitComputer animation
08:54
VacuumWhiteboardDigital electronicsElectronic visual displayBitType theoryCuboidComputer programmingDifferent (Kate Ryan album)Computer animation
09:35
WhiteboardIntegrated development environmentComputer animation
10:08
WhiteboardView (database)File formatExtension (kinesiology)Computer fileElectric currentIntegrated development environmentVariety (linguistics)CompilerDifferent (Kate Ryan album)Integrated development environmentPortable communications deviceComputer animationMeeting/Interview
10:30
WhiteboardVariety (linguistics)Integrated development environmentElectric currentPortable communications deviceComputer fileSlide ruleView (database)File formatExtension (kinesiology)Right angleMereologyComputer programmingComputer animation
10:55
Codierung <Programmierung>Computer fileOpen setUniform resource locatorGoogolWhiteboardPortable communications deviceView (database)File formatExtension (kinesiology)Slide ruleAsynchronous Transfer ModeComputer fileOpen setMenu (computing)Block (periodic table)Uniform resource locatorGraphical user interfaceWeb browserProjective planeSerial portCodeWebsiteWikiSheaf (mathematics)Real-time operating systemMereologyWhiteboardRight angleDemo (music)Computer configurationComputer animation
12:24
MIDIVariable (mathematics)Control flowBlock (periodic table)Scripting languageDrag (physics)WhiteboardPortable communications deviceCodeComputer programmingMicrocontrollerIntegrated development environmentSource codeComputer animation
13:04
Block (periodic table)WhiteboardComputer iconVariable (mathematics)Operator (mathematics)ModemMacro (computer science)WaveSet (mathematics)Maxima and minimaRevision controlWhiteboardWeb browserComputing platformWordSinc functionResultantComputer hardwareBlock (periodic table)CodePlastikkarteObject-oriented programmingPhysicalismOpen setBytecodeE-learningComputer iconFile systemBoss CorporationPhysical computingComputer simulationDifferent (Kate Ryan album)QuicksortRadio-frequency identificationElement (mathematics)Computer animation
17:02
Inverter (logic gate)Cartesian coordinate systemTotal S.A.Inverse problemNormed vector spaceFunction (mathematics)Error messageSerial portTask (computing)WhiteboardScripting languageConnected spaceFrequencyImage resolutionWritingTelecommunicationEmailRead-only memoryGame theoryCuboidComputer programmingPlastikkarteNumber1 (number)2 (number)MereologyNeuroinformatikComputer animation
19:38
Physical computingBlock (periodic table)Formal languageWhiteboardNewton's law of universal gravitationBlock (periodic table)Formal languageWebsiteCodeWeb pageComputer animation
20:07
PlastikkarteWhiteboardDigital electronicsPhysical computingBlock (periodic table)Formal languageLink (knot theory)Maxima and minimaTranslation (relic)SoftwareText editorSlide ruleFile formatBeta functionLattice (order)Electronic visual displayScripting languageDrag (physics)Sheaf (mathematics)SpacetimeMultiplication signRoboticsSoftware development kitComputer hardwareWhiteboardDemo (music)Range (statistics)BitChainINTEGRALComputer animation
22:20
PlastikkarteTranslation (relic)SoftwareText editorSlide ruleGraphics tabletBoom (sailing)Row (database)Digital electronicsExpressionCommutative propertyTwin primeSoftware testingWhiteboardNumeral (linguistics)MathematicsNumberRepresentation (politics)Physical systemNumerical digitBlock (periodic table)Pattern languageLine (geometry)Compilation albumWebsiteSocial classIntegrated development environmentBitProjective planeComputer programmingInformationMicrocontrollerDrag (physics)Computer animation
23:19
ExplosionPhysical systemNumerical digitFloating pointAbstractionNumberSystem programmingWage labourBitPlastikkarteSoftware development kit
23:43
MathematicsNumberNumerical digitNumeral (linguistics)Civil engineeringPlastikkarteDigital electronicsSoftware testingWhiteboardBound stateComputer fileExplosionExpressionKernel (computing)Control flowScripting languageCodeCodierung <Programmierung>Message passingBitWhiteboardBytecodeText editorComputer animation
24:45
PlastikkarteDigital electronicsExpressionControl flowGamma functionWritingWhiteboardNumeral (linguistics)Entire functionSign (mathematics)Maxima and minimaScale (map)VotingTeilerfunktionGateway (telecommunications)RoboticsMultiplication sign1 (number)BitHydraulic motorComputer animation
25:39
Computer animationProgram flowchart
Transcript: English(auto-generated)
00:06
Want to be let's just fetch our micro blocks here
00:23
This happened to me before why did that go away? Let's try this So I need to let me just quit micro blocks a second. Oh, there it goes. No, no, I don't want to quit okay, so the cable wasn't quite plugged in for some reason I lost my
00:40
Displays do something so I said basic sensors just like that heady language Actually, let me just quit micro blocks really quick this cable is being a little flaky No, no, no, it's and also in the display, okay So this is what it looks like and you have outputs you have inputs and then you can do all the pins
01:02
You have your control variables operators All sorts of stuff like that, but it plugged in this board. It showed a green here. It's already connected So it already knows what this board is and when I click temperature It tells me it's 19 degrees C if I want to see the display. I
01:22
simply Turn on the display. Oh, let's see. I need this quick camera. So for those of you at home There's my happy face and then I click temperature. There it is there Keep losing this
01:41
Connection okay Every time the HDMI pops in and out. It's causing micro blocks to be unhappy. Sorry about that What's that?
02:03
Okay All right. Let's just try this one more time load micro blocks and another particularly cool
02:22
It's okay. Well, it's very flaky. Oh, I lost it I See what happened to my so HDMI is lost
02:52
Don't touch anything Yeah, we might have a few screen issues here. Let me just try Really quickly if I can quit and open again
03:08
Okay Quite briefly. I wanted to show you that you can graph something like the light level and you can also see the data, you know of an input value and
03:24
it will Let's put zero at the bottom and I can watch this in real time. And if I close my hand over it Gets reflections on stuff. But so you can see you can plot data in real time X Y and Z it has an
03:42
accelerometer So that's very cool All right, now we're gonna go back so that's liveness there's no compile download it's just happening Next point is that you can do things in parallel. So I'm going to show you a quick
04:01
how multitasking is handled through just opening the Two button blink program right here and I open this And if I press button and get my camera if I press button a
04:21
While I'm pressing it it's going to repeat and blink 100 milliseconds Well, I press B. It does the same thing. I can actually press A and B and You know, I can try to get them in sync or I can try to get them on and off But it's it takes too long. So just as heady has, you know variables I can do something like a delay So I can try to play around with it in real time and I set the delay to like 500
04:48
oops, and then I drag this delay variable in so I can play around with a slower blink time and change it all I want while I'm experimenting and
05:03
now if I set that delay variable, you can also use say blocks so it's it's nice to just Set a variable and say it now. Now I know what it is and If I'm pressing the a now you see it's every 500 and
05:24
I can now I can more like get him on Off on off and if you were in an Arduino loop, just one continue forever loop This would be a lot harder to have either You know these different sync Multitasking done for you, which is very very cool
05:43
The next thing is that it's autonomous so if I am programming and I'm doing these blocks on my my IDE Then what happens is there's actually an opcode. It looks a bit like assembly language
06:03
representation of those blocks that our That you can see and then in the actual board. It's It's actually in bytecode. So if I were to turn on advanced blocks I could show you the
06:22
instructions and you can see that and then I could actually actually see the bytecode and The bytecode is then what is inside the virtual machine So that will have cool ramifications about sharing our our files when we get to that point
06:42
okay, so So blocks equate to bytecode, so it's autonomous in the sense that If I unplug it from my laptop and I plug it back in then
07:01
What happened today did I lose my? Connection, okay, just oh I know what happened for autonomy. I made a mistake I actually need a when started block to set that delay because there was delay of zero, right? So I actually needed this to be set. Okay, we have to show our errors
07:26
And now down here There we go and I love having a co-speaker. Okay, and then another
07:44
Another Very awesome aspect of it is its portability. So micro blocks if you you look at how we build the virtual machine We have a platform.io script within any file that has I looked last night. There were up to 43 different boards and
08:00
There's a kind of about nine varieties that if you go into micro blocks itself And you want to update the firmware on a board it will show you Well, this is plugged in now. I'm just updating the firmware on it. But let me just unplug this for a moment and If you want to update the firmware on a board, there's like micro bits Calliope city the ESP 32
08:24
There's some new Elektra freaked the Resaray Pi Pico's and then eight of behind Adafruit a whole bunch of boards but there's also in the platform.io any file of a whole bunch of Arduino boards and and Other stuff that's there. So it's it's portable and I want to do a quick
08:44
Display of that Where I take this quick ham and I'm going to make it big and We apply Power, so I have a whole bunch of boards plugged into a USB strip. Let's hope we don't lose the HDMI and
09:05
We're not going to turn that on and now you can see I have the heartbeat program running on a whole bunch of different boards So I Kind of cheated on a couple boards that are new and didn't have full support like this M bits board
09:23
But and of course the circuit playground doesn't have the same thing But on some of these OLED displays you can actually use the micro bit type style display box and it still works And then go around and push the a button on everything so the a buttons
09:41
turn them all the smiles and Whoops dang, just just in the So now they're all happy face. And of course if they have B buttons We can go back to our heart and this is the only one that has a side B button
10:03
voila So as you know like getting used to a programming environment when you pick up a different board Do you want to get a different programming environment every time? No, clearly not. So
10:22
Portability portability is really cool. Okay, so did I lose it completely? All right, I'm about to hand this off so that's good All right here Okay, and then the last part to explain is
10:43
Shareability so Yeah, I could do the same program. So shareability is there's a few ways to To deal with this. Let me go in the slide show mode because I'm basically wrapped up
11:02
One is like you can go to the file open save menu with micro blocks Just Show you in real time here So you can just go in here and say file, you know save file open and then there's a
11:21
Then there's these other options like encoded in the URL So you can say file copy project URL to a clipboard and then you can open it You give that URL out and we do this, you know embed a you just put a hyperlink on some, you know Documentation and you can open that right in the Chrome browser. Chrome or Edge browser support the serial mode
11:44
You can't unfortunately use Firefox. I used to work for Mozilla Okay, and then encoded in the picture so our documentation we have Pictures on the websites in the wiki in the learn section and the code is actually embedded in the picture So you drag the picture into your Chrome browser and or into your IDE?
12:01
Standalone or Chrome browser and it will actually load the code and then the last part is it's shareable by opening from the board and so I'm going to have Bernat demonstrate that as we hand off to more cool demo for part two
12:28
Okay, can you hear me? Yes, of course you can So Yeah, we were talking about portability and one of the aspects of portability is not just that the code is portable across boards
12:43
But the board itself is an example of portability. The board is actually It contains the program that you are seeing here, right? In any other microcontroller Environment once the code is here the code is here and it's it's gone If you've lost your program, if you've lost your source, the source is gone, right?
13:04
In micro blocks we have a way oops. Not this much. Yeah. Yeah, this micro block. Sorry that's Open from board Now I'm in the browser version we have versions we have mentioned that but we have versions for the browser and for Mac Windows Linux and
13:22
Chromebook and Raspberry Pi etc. So we have many platforms that we support. This is the browser version and Now it says plug in the board and connect And click the USB icon to connect so I'll just Connect as it said now I select
13:43
The USB port and now it's actually reading back the code and it's not like we embedded the blocks inside the board It's actually for the I know this is a slightly geekier audience than our usual So we actually have decompiler that John built in that's inspired in this quick decompiler
14:01
That John also worked on and what it does is it takes these byte codes and it re-translates them into What we see here, right and just to prove That it still works it does and You know We like to joke that micro blocks is so portable that we could even port it to a word that does not exist
14:26
and That's actually a joke, but it's true like We have a board that doesn't exist and can run micro blocks since micro blocks is VM based You could compile this VM for something that does not exist that is virtual and that's why we made Boardy
14:41
Boardy is a result of the pandemic. We were doing online classes and it was really hard to get hardware to kids So That was an idea like Christian Christian about My boss and Jens and Jadka's boss at SAP She had this idea that we needed something virtual so that kids who don't have access to hardware could still at least try micro blocks
15:06
And that's why we made Boardy and Boardy as you can see can run the same code. It's not a simulator That's very important. It's not a simulator. It's running the exact same VM. So it's a virtual board. Not a simulator It has its own capabilities. It has a couple of buttons. It has a speaker
15:22
It has a touchscreen. It has a file system. It can do HTTP client operations, so it's a different sort of board. Okay, it's Yeah, right, so it does the same things Okay But you know
15:41
This is nice, but micro blocks was always about physical computing. This is nice If you don't have a board, that's a good way to get started But our aim was always to teach physical computing to do tangible things in the real world in the physical world. So Let me show you one thing that you would not be able to do with Boardy and that's connecting external sensors to your board
16:02
So just this funny sensor that I have in here. That's an RFID sensor that's the technical mumbo-jumbo for the thing that's in your credit card that lets you pay contactlessly or on your subway card or your gym membership card or whatever and I happen to have
16:22
some of these cards with me As you all do I'm sure So for example Yeah And maybe I need yeah, I need a cable. Oops. It's physical
16:46
So this board has a battery but it's dead that's the problems of the physical world as well So I'm connecting an external battery to it Okay, and now I'm just going to try
17:03
this has a micro box program in it by the way that I Can show later maybe Well, I'll show it later. So Okay, so I made it so it recognizes this particular card and it plays a tone
17:23
Okay, that's interesting. Let's try another card Okay Let's try this one Okay, okay Cool I'm missing some
17:42
No, wait Yes, we'll talk later I'll need a special number that comes with it as well let's try with My bank ones and this one as well Okay, so we have a bunch of cards and we've seen that each of them can make a note let's try to maybe oh, yeah
18:14
Where is it? I Know it's somewhere. Oh Maybe yeah, you know when you're having trouble paying that's why because it's okay
18:36
Okay I'll try to play a song
18:44
Where is it the second part Kathy? Can you hand me your keys?
19:15
Okay
19:21
So that was to show that programming is fun, but programming the real world and touching actual things is a very engaging way to get kids and People that are not hardcore gigs interested in what we do with this programming computers that was all go to the oh
19:40
Yeah, go to the micro blocks website if you want to learn more about it micro blocks dot fun small fast human-friendly That's our website. We have very Nice, if I may say so learn page with a lot of tutorials micro rocks is also translated to a lot of language
20:02
I forgot how many The code is also translated just like heavy Yeah And If you want to help out in our site, there's a whole section about how to contribute and we have a Space for everyone who wants to help out
20:22
Thank you, do you have time for questions just maybe one or two right any questions
20:45
I was getting asked that a lot at the booth yesterday Because we were doing some demos in the SFC booth and The range if I can pull it this how much was this maybe $25 m5 stack
21:03
Probably even less than $10 for the m5 Adam the micro bits were retail at 15 until the pandemic Supply chain shortage is now there 20 or more the end bits. What was this one now $12? $25 The Pico Ed is maybe 10. This is maybe 25 so I would say they range
21:23
You know less than $50 and then you can buy some of these educational boards Like some of the small boards with stuff already included With stuff already included so you don't have to learn but the new robot estan.com Pico Ed board
21:41
This is like $50 but it has all these sensors and actuators and then you can Pull apart the bricks as they're called and and use cables to put them back together This I was Yeah And the cheapest of the ESP 80s to 60s there are a couple dollars
22:03
But then you have to buy the sensors and actuators I actually find for teaching you probably want to buy something with integrated stuff and Then you can buy all these kits and plug them together and run robots and the robotic kits There's a ton of hardware out there next question. Oh
22:22
So first of all in the learn site You're going to find some resources that are like full class classes Like let's say this one that teaches you about million emeralds We also try to
22:40
Do activities that are not just about technology, right? So we can get a more diverse audience interested if you make a project out bits and bytes That's very interested. That's my interest probably the people in this room, but you're already interested with you're not the target audience, right? but if we talk about million emeralds, maybe people who are interested in history or culture are going to
23:04
see the value in programming and microcontrollers so that's a whole activity and then you have actually drag this Screenshots pictures into the IDE and they will load and then you have a teacher's guide with extra information about what's being talked about
23:25
We've we've done these things called activity cards and I put together a kit with a with a manufacturer and they included these activity cards ten two-sided cards in the kit and there's things like flashlight tag and you know sound and
23:43
Two button texting it uses two micro bits and use tilt to find the letters and punctuation and button a and B to To find the letters and and add and you can actually text messages directly between two micro bits For example or clues or other boards
24:03
What do you mean can you code? We don't want people to have to go through this hurdle, that's why we're making microflux so you don't have to care about Bits and bytecodes No, this is coding You can build other editors to the VM if you want a text-based editor
24:47
Yes Yes, if you go to the learn side again There's you can select the micro bit here and you'll see all these activities for the micro bit And a lot of them are using external sensors like this one uses motors to make a micro bit robot
25:03
this one uses ready-made robot car a lot of them use external sensors and actuators I deliver
25:23
There's just five commands that send over the radio forward back left right and stop every time the buttons go up I stop And this one's running out of battery. So that one's faster. Oh We're over time. Okay. Thank you everyone