We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

MicroBlocks: small, fast, human friendly

00:00

Formal Metadata

Title
MicroBlocks: small, fast, human friendly
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
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
MicroBlocks is a graphical programming language for 32 bit microcontrollers. It was built to be small, fast and human-friendly, and throughout its development we've followed our four guiding principles: liveness, parallelism, portability and autonomy.
14
15
43
87
Thumbnail
26:29
146
Thumbnail
18:05
199
207
Thumbnail
22:17
264
278
Thumbnail
30:52
293
Thumbnail
15:53
341
Thumbnail
31:01
354
359
410
Block (periodic table)
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
Connected spaceBlock (periodic table)Multiplication signStructural loadComputer animation
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
Formal grammarComputer fileBlock (periodic table)CodeVirtual machineIntegrated development environmentTouchscreenGoogolBlock (periodic table)Integrated development environmentComputer programmingRepresentation (politics)WhiteboardBitAssembly languageComputer animation
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
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
VacuumWhiteboardDigital electronicsElectronic visual displayBitType theoryCuboidComputer programmingDifferent (Kate Ryan album)Computer animation
WhiteboardIntegrated development environmentComputer animation
WhiteboardView (database)File formatExtension (kinesiology)Computer fileElectric currentIntegrated development environmentVariety (linguistics)CompilerDifferent (Kate Ryan album)Integrated development environmentPortable communications deviceComputer animationMeeting/Interview
WhiteboardVariety (linguistics)Integrated development environmentElectric currentPortable communications deviceComputer fileSlide ruleView (database)File formatExtension (kinesiology)Right angleMereologyComputer programmingComputer animation
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
MIDIVariable (mathematics)Control flowBlock (periodic table)Scripting languageDrag (physics)WhiteboardPortable communications deviceCodeComputer programmingMicrocontrollerIntegrated development environmentSource codeComputer animation
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
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
Physical computingBlock (periodic table)Formal languageWhiteboardNewton's law of universal gravitationBlock (periodic table)Formal languageWebsiteCodeWeb pageComputer animation
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
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
ExplosionPhysical systemNumerical digitFloating pointAbstractionNumberSystem programmingWage labourBitPlastikkarteSoftware development kit
MathematicsNumberNumerical digitNumeral (linguistics)Civil engineeringPlastikkarteDigital electronicsSoftware testingWhiteboardBound stateComputer fileExplosionExpressionKernel (computing)Control flowScripting languageCodeCodierung <Programmierung>Message passingBitWhiteboardBytecodeText editorComputer animation
PlastikkarteDigital electronicsExpressionControl flowGamma functionWritingWhiteboardNumeral (linguistics)Entire functionSign (mathematics)Maxima and minimaScale (map)VotingTeilerfunktionGateway (telecommunications)RoboticsMultiplication sign1 (number)BitHydraulic motorComputer animation
Computer animationProgram flowchart
Transcript: English(auto-generated)
Want to be let's just fetch our micro blocks here
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
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
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
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
Connection okay Every time the HDMI pops in and out. It's causing micro blocks to be unhappy. Sorry about that What's that?
Okay All right. Let's just try this one more time load micro blocks and another particularly cool
It's okay. Well, it's very flaky. Oh, I lost it I See what happened to my so HDMI is lost
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
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
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
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
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
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
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
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
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
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
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
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
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
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
And now down here There we go and I love having a co-speaker. Okay, and then another
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
Okay, that's interesting. Let's try another card Okay Let's try this one Okay, okay Cool I'm missing some
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
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
Okay I'll try to play a song
Where is it the second part Kathy? Can you hand me your keys?
Okay
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
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
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
Thank you, do you have time for questions just maybe one or two right any questions
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
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
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
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
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
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
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
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
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
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
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
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
this one uses ready-made robot car a lot of them use external sensors and actuators I deliver
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