[00:00.000 --> 00:26.560] Let's just fetch our microblocks here, this happened to me before, why did that go away? [00:26.880 --> 00:34.480] I need to, let me just quit microblocks a second, oh there it goes, no I don't want to [00:34.480 --> 00:41.280] quit, okay so the cable wasn't quite plugged in, for some reason I lost my displays do something, [00:41.280 --> 00:48.400] so I said basic sensors just like that heady language, actually let me just quit microblocks [00:48.400 --> 00:56.240] really quick, this cable is being a little flaky, no no no it's and also in the display, okay [00:56.560 --> 01:02.560] so this is what it looks like and you have outputs, you have inputs and then you can do all the pins, [01:02.560 --> 01:08.560] you have your control variables, operators, all sorts of stuff like that but it, I plugged in [01:08.560 --> 01:14.480] this board, it showed a green here, it's already connected so it already knows what this board is [01:14.480 --> 01:22.640] and when I click temperature it tells me it's 19 degrees C, if I want to see the display I simply [01:22.800 --> 01:30.080] turn on the display, oh let's see I need this quick camera, so for those of you at home [01:31.520 --> 01:40.880] there's my happy face and then I click temperature, there it is there, keep losing this connection, [01:41.600 --> 01:47.280] okay, all right, [01:52.160 --> 01:58.240] every time the HDMI pops in and out it's causing microblocks to be unhappy, sorry about that, [01:59.840 --> 02:09.040] what's that, okay all right let's just try this one more time, load microblocks [02:11.040 --> 02:18.960] and another particularly cool [02:21.840 --> 02:35.040] it's okay, well it's very flaky, oh I lost it, let me see what happened to my power, so HDMI is lost [02:41.840 --> 03:00.800] don't touch anything, yeah we might have a few screen issues here, let me just try really quickly [03:00.800 --> 03:12.080] if I can quit and open again, okay, quite briefly I wanted to show you that you can [03:12.080 --> 03:21.840] graph something like the light level and you can also see the data you know of an input value [03:22.480 --> 03:33.760] and it will, let's put zero at the bottom and I can watch this in real time and if I close my hand [03:33.760 --> 03:41.360] over it it gets reflections on stuff but so you can see you can plot data in real time x y and z [03:41.360 --> 03:48.880] it has an accelerometer, so that's very cool, all right now we're going to go back so that's [03:48.880 --> 03:56.480] liveness, there's no compile download it's just happening, next point is that you can do things [03:56.480 --> 04:05.520] in parallel, so I'm going to show you a quick how multitasking is handled through just opening the [04:07.280 --> 04:15.760] two button blink program right here and I open this and if I press button, let me get my camera [04:15.760 --> 04:24.480] okay if I press button A while I'm pressing it it's going to repeat and blink 100 milliseconds [04:24.480 --> 04:30.880] while I press B it does the same thing I can actually press A and B and you know I can try to get [04:30.880 --> 04:36.880] them in sync or I can try to get them on and off but it's it takes too long so just as Hetty has [04:36.880 --> 04:43.600] you know variables I can do something like a delay so I can try to play around with it in real time [04:44.160 --> 04:55.040] and I set the delay to like 500 whoops and then I drag this delay variable in so I can play around [04:55.040 --> 05:05.440] with a slower blink time and change it all I want while I'm experimenting and now if I set that delay [05:05.440 --> 05:14.800] variable you can also use say block so it's it's nice to just set a variable and say it now I know [05:14.800 --> 05:25.840] 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 [05:25.840 --> 05:32.880] them on off on off and if you were in an Arduino loop just one continue forever loop this would be [05:32.880 --> 05:40.800] a lot harder to have either you know these different sync multitasking done for you which is very [05:40.800 --> 05:54.080] very cool the next thing is that it's autonomous so if I am programming and I'm doing these blocks [05:54.080 --> 06:02.640] on my my IDE then what happens is there's actually an opcode it looks a bit like assembly language [06:02.640 --> 06:12.400] representation of those blocks that our that you can see and then in the actual board it's [06:14.000 --> 06:22.080] it's actually in bytecode so if I were to turn on advanced blocks I could show you the instructions [06:23.040 --> 06:33.040] and you can see that and then I could actually actually see the bytecode and the bytecode is then [06:33.040 --> 06:40.000] what is inside the virtual machine so that will have cool ramifications about sharing our our files [06:40.000 --> 06:48.240] when we get to that point okay so um so blocks equate equate to bytecode so it's autonomous in [06:48.240 --> 06:55.840] the sense that if I unplug it from my laptop and I plug it back in then [07:01.120 --> 07:12.160] what happened did I did I lose my connection okay just oh I know what happened for autonomy [07:12.160 --> 07:17.840] I made a mistake I actually need a when started block to set that delay because there was delay of [07:17.840 --> 07:24.560] zero right so I actually needed this to be set okay we have to show our errors [07:26.480 --> 07:42.160] and now down here so there we go and I love having a co-speaker okay and then another [07:42.640 --> 07:51.040] another very awesome aspect of it is its portability so micro blocks if you you look at how we build [07:51.040 --> 07:57.200] the virtual machine we have a platform IO script within any file that has I looked last night [07:57.200 --> 08:03.680] there were up to 43 different boards and there's a kind of about nine varieties that if you go into [08:03.680 --> 08:10.880] micro blocks itself and you want to update the firmware on a board it will show you um well [08:10.880 --> 08:17.040] this is plugged in now I'm just updating the firmware on it but uh let me just unplug this for a moment [08:17.920 --> 08:24.720] and if you want to update the firmware on a board there's like micro bits calliope city the esp32s [08:24.720 --> 08:28.400] there's some new electrophreak the raspberry pi pico's and the eight behind eight of fruit is a [08:28.400 --> 08:33.280] whole bunch of boards but there's also in the platform IO any file a whole bunch of Arduino [08:33.280 --> 08:40.720] boards and and other stuff that's there so it's it's portable and I want to do a quick [08:44.000 --> 08:51.680] display of that where I take this quick cam I'm gonna make it big [08:54.480 --> 09:00.960] and we apply power so I have a whole bunch of boards plugged into a usb strip let's hope [09:00.960 --> 09:06.160] we don't lose the HDMI and Bernat's gonna turn that on [09:08.720 --> 09:14.240] and now you can see I have the heartbeat program running on a whole bunch of different boards [09:15.920 --> 09:21.840] so I kind of cheated on a couple boards that are new and didn't have full support like this [09:21.840 --> 09:27.440] M bits board but and of course the circuit playground doesn't have the same thing but on [09:27.520 --> 09:34.000] some of these OLED displays you can actually use the micro bit type style of display box and it [09:34.000 --> 09:41.680] still works and then go around and push the a button on everything so the a buttons turn them [09:41.680 --> 09:53.360] all the smiles and whoops dang just just so now they're all happy face and of course if they have [09:53.440 --> 10:01.680] B buttons we can go back to our heart and this is the only one that has a side B button [10:03.120 --> 10:12.080] voila so as you know like getting used to a programming environment when you pick up a [10:12.080 --> 10:17.040] different board do you want to get a different programming environment every time no clearly [10:17.520 --> 10:25.440] so portability portability is really cool okay so did I lose it completely [10:27.200 --> 10:31.600] all right I'm about to hand this off so that's good [10:34.160 --> 10:44.320] all right it's here okay and then the last part to explain is shareability so [10:47.120 --> 10:57.920] uh yeah I could do the same program so shareability is there's a few ways to to deal with this [10:57.920 --> 11:03.520] let me go in the slide slide show mode because I'm basically wrapped up one is like you can go to [11:03.520 --> 11:11.440] the file open save menu with micro blocks um let me just show you in real time here [11:11.840 --> 11:20.000] here so you can just go in here and say file you know save file open and then there's uh [11:21.600 --> 11:27.600] then there's these other options like encoded in the url so you can say file copy project url [11:27.600 --> 11:34.880] to a clipboard and then you can open it you give that url out and we do this you know embed a [11:34.880 --> 11:40.560] you just put a hyperlink on some you know documentation and you can open that right in [11:40.560 --> 11:44.640] the chrome browser chrome or edge browser support the serial mode you can't unfortunately use [11:44.640 --> 11:50.560] firefox i used to work from a zillip okay and then encoded in the picture so our documentation we [11:50.560 --> 11:56.320] have pictures on the websites in the wiki in the learn section and the code is actually embedded [11:56.320 --> 12:02.400] in the picture so you drag the picture into your chrome browser and or into your ide standalone [12:02.400 --> 12:08.000] or chrome browser and it will actually load the code and then the last part is it's shareable [12:08.000 --> 12:16.320] by opening from the board and so um i'm going to have for not demonstrate that as we hand off to [12:17.200 --> 12:20.320] more cool demo for part two [12:28.640 --> 12:30.880] okay can you hear me yes of course again [12:31.280 --> 12:39.920] okay so uh yeah we were talking about portability and one of the aspects of portability is not [12:39.920 --> 12:45.600] just that the code is portable across boards but the board itself is an example of portability the [12:45.600 --> 12:54.720] board is actually uh it contains the program that you are seeing here right uh in any other microcontroller [12:55.360 --> 13:00.080] environment once the code is here the code is here and it's it's gone if you've lost your program if [13:00.080 --> 13:07.760] you've lost your source the source is gone right uh in micrologs we have a way oops not this mic yeah [13:07.760 --> 13:15.680] yeah this microlog sorry uh that's open from board now i mean the browser version we have versions [13:15.680 --> 13:22.640] we haven't mentioned that but we have versions for the browser and for mac windows linux and chromebook [13:22.640 --> 13:28.480] and raspberry pi etc so we have many platforms that we support this is the browser version [13:29.040 --> 13:38.480] and now it says plug in the board and connect and click the usb usb icon to connect so i'll just [13:39.280 --> 13:46.640] connect as it said now i select the usb port and now it's actually reading back the code [13:46.640 --> 13:51.760] and it's not like we embedded the blocks inside the board it's actually for the i know this is a [13:51.760 --> 13:58.080] slightly geekier audience than our usual so we actually have a decompiler that john built in [13:58.080 --> 14:04.560] that's inspired in this quick decompiler uh that john also worked on and what it does is it takes [14:04.560 --> 14:12.400] these bytecodes and it retranslates them into what we see here right and just to prove that it still [14:12.400 --> 14:22.560] works uh it it does and you know we like to joke that micrologs is so portable that we could even [14:22.560 --> 14:30.080] port it to a board that does not exist and that's actually a joke but it's true like we have a board [14:30.080 --> 14:34.720] that doesn't exist and can't run micrologs since micrologs is vm-based you could compile this vm [14:34.720 --> 14:42.720] for something that does not exist that is virtual and that's why we made boardy boardy is a result [14:42.720 --> 14:48.720] of the pandemic we were doing online classes and it was really hard to get hardware to kits [14:49.440 --> 14:56.640] uh so that was an idea like christine christiane bowie uh my boss and jens and jatka's boss [14:57.200 --> 15:03.280] at SAP she got this idea that we needed something virtual so that kids who don't have access to [15:03.280 --> 15:08.560] hardware could still at least try micrologs and that's why we made boardy and boardy as you can see [15:08.560 --> 15:13.200] can run the same code it's not a simulator that's very important it's not a simulator it's running [15:13.200 --> 15:19.840] it's running the exact same vm so it's a virtual board not a simulator it has its own capabilities [15:19.840 --> 15:26.160] it has a couple of buttons it has a speaker it has a touch screen it has a file system it can do [15:27.040 --> 15:34.480] htdp client operations so it's a different sort of board okay it's yeah right so it does the same [15:34.480 --> 15:43.680] things okay uh but you know this is nice but micro blocks was always about physical computing [15:44.240 --> 15:49.200] this is nice if you don't have a board that's a good way to get started but our aim was always [15:49.200 --> 15:55.760] to teach physical computing to do tangible things in the real world in the physical world so let me [15:55.760 --> 16:00.560] show you one thing that you would not be able to do with boardy and that's connecting external [16:00.560 --> 16:08.800] sensors to your board so just this funny sensor that I have in here that's an RFID sensor that's [16:08.800 --> 16:13.200] technical mama jumbo for the thing that's in your credit card that lets you pay contactlessly [16:13.200 --> 16:22.640] or on your subway card or your gym membership card or whatever and I happen to have some of these [16:22.640 --> 16:35.520] cards with me as you all do I'm sure so for example yeah and maybe I need yeah I need a cable [16:37.920 --> 16:41.280] oops it's physical [16:45.840 --> 16:50.560] so this board has a battery but it's dead that's the problems of the physical world as well [16:51.440 --> 16:53.920] so I'm connecting an external battery to it [16:57.840 --> 16:59.760] okay and now I'm just going to try [17:02.960 --> 17:10.000] this has a micro box program in it by the way that I can show later maybe [17:12.320 --> 17:14.160] well I'll show it later so [17:15.040 --> 17:24.400] okay so I made it so it recognizes this particular card and it plays a tone okay that's interesting [17:24.400 --> 17:32.400] let's try another card okay let's try this one okay [17:32.720 --> 17:34.720] okay [17:36.240 --> 17:39.840] okay cool I'm missing some [17:42.560 --> 17:48.560] no wait yes we'll talk later I'll need a special number that comes with it as well [17:51.200 --> 17:56.480] let's try with my bank ones and this one as well [17:56.720 --> 18:04.640] 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 [18:11.520 --> 18:16.800] oh yeah where is it I know it's somewhere [18:19.760 --> 18:20.560] oh maybe yeah [18:27.200 --> 18:30.400] you know when you're having trouble paying that's why [18:33.120 --> 18:39.520] because it's okay okay I'll try to play a song [18:45.040 --> 18:51.520] where is it [18:57.280 --> 18:59.520] there's a second part [19:12.000 --> 19:15.120] Kathy can you hand me your keys okay [19:20.960 --> 19:25.200] so that was to show that programming is fun but programming the real world and touching [19:25.200 --> 19:32.560] actual things is a very engaging way to get kids and people that are not hardcore geeks [19:32.560 --> 19:41.360] interested in what we do with these programming computers that was all go to the oh yeah go to [19:41.360 --> 19:48.480] the micro blocks website if you want to learn more about it remember micro blocks dot fun small [19:48.480 --> 19:58.160] fast human friendly that's our website we have very nice if I may say so learn page with a lot [19:58.160 --> 20:04.320] of tutorials micro box is also translated to a lot of language I forgot how many the code is also [20:04.320 --> 20:11.440] translated just like heavy and more translators just like heavy yeah and if you want to help out [20:12.080 --> 20:19.680] in our site there is a whole section about how to contribute and we have a space for everyone who [20:19.680 --> 20:32.640] wants to help out thank you do you have time for questions just maybe one or two right [20:35.760 --> 20:36.640] any questions [20:42.000 --> 20:48.960] is it expensive I was getting asked that a lot at the booth yesterday can I just [20:51.280 --> 20:58.080] because we were doing some demos in the sfc booth and the range if I can pull this [20:58.880 --> 21:06.640] how much was this maybe 25 dollars m5 stack probably even less than 10 for the m5 atom [21:06.640 --> 21:12.080] the micro bits were retail at 15 until the pandemic supply chain shortage is now there [21:12.080 --> 21:20.000] 20 or more the m bits what was this one now 12 dollars 25 the pico edge is maybe 10 this is [21:20.000 --> 21:26.720] maybe 25 so I would say they range you know less than 50 dollars and then you can buy some of these [21:26.720 --> 21:35.040] educational boards just show you like some of the small boards with stuff already included [21:35.840 --> 21:40.960] with stuff already included so you don't have to learn but the new robot aston.com pico ed board [21:40.960 --> 21:46.320] this is like 50 dollars but it has all these sensors and actuators and then you can pull apart [21:46.320 --> 21:52.960] the bricks as they're called and and use cables to put them back together this I want to say [21:52.960 --> 21:59.680] boarding is free though yeah yeah all the ranges from zero to and the cheapest of the [21:59.680 --> 22:05.680] ESP 8266 there are a couple dollars but then you have to buy the sensors and actuators I actually [22:05.680 --> 22:09.920] find for teaching you probably want to buy something with integrated stuff and then you [22:09.920 --> 22:15.280] can buy all these kits and plug them together and run robots and the robotic kits there's a ton [22:15.280 --> 22:29.600] of hardware out there next question so first of all in the learn site uh you're going to [22:29.680 --> 22:36.960] find some resources that are like full class classes like let's say this one that teaches [22:36.960 --> 22:43.360] you about maya numerals we also try to do activities that are not just about technology [22:43.920 --> 22:49.520] right so we can get a more diverse audience interested if you make a project out beats and [22:49.520 --> 22:53.600] bites that's going to interest that's going to interest probably the people in this room [22:53.600 --> 22:58.720] but you're already interested with you're not the target audience right but if we talk about maya [22:58.720 --> 23:05.120] numerals maybe people who are interested in history or culture are going to see the value in [23:06.320 --> 23:13.280] programming and microcontrollers so that's a whole activity and then you have actually [23:13.840 --> 23:20.400] drag the the screenshots pictures into the IDE and they will load and then you have a teacher's [23:20.400 --> 23:26.560] guide with extra information about what's being talked about and then there's we've we've done [23:26.640 --> 23:31.920] these things called activity cards and i put together a kit with a with a manufacturer and [23:31.920 --> 23:38.160] they included these activity cards 10 two-sided cards in the kit and there's things like flashlight [23:38.160 --> 23:46.480] tag and you know sound and um two button texting it uses two micro bits and use tilt to find the [23:46.480 --> 23:52.560] letters and punctuation and button a and b to to find the letters and and add and you can actually [23:52.560 --> 23:58.160] text messages directly between two micro bits for example or clues or other boards [24:02.800 --> 24:04.160] what do you mean can you code [24:07.600 --> 24:12.000] we don't want people to have to go through this hurdle that's why we're making micro blocks [24:12.000 --> 24:20.400] so you don't have to care about uh beats and uh bite codes no this is coding yeah you can you can [24:20.400 --> 24:26.720] see the ipode off codes if you want and you can build other editors to the vm if you want a text [24:26.720 --> 24:39.040] based editor on top go ahead um i'm wondering i'm familiar a bit with the micro bits and um so but [24:39.040 --> 24:45.440] what you do is you add sensors and or you put them in little overcards i think like that could [24:46.160 --> 24:54.400] yes yes if you go to the learn side again uh there's you can select the micro bit here [24:55.120 --> 24:58.640] and you'll see all these activities for the micro bit and a lot of them are using external [24:58.640 --> 25:06.640] sensors like this one uses motors to make a a micro bit robot this one uses a ready made robot car [25:07.360 --> 25:16.560] uh a lot of them use external sensors and actuators so for example you ask i deliver [25:23.520 --> 25:28.080] there's just five commands that send of the radio forward back left right and stop every [25:28.080 --> 25:35.360] time the buttons go up i stop and this one's running out of battery so the other one's faster [25:35.360 --> 25:46.480] oh we're over time okay thank you everyone