In love with the BBC micro:bit
markshroyer.com
markshroyer.com
One feature that kills it in the classroom is the Microbit's built-in 5 x 5 LED matrix, which means right out of the box it's "blink" program is much more interesting than the Arduino's one orange LED. Some kids will just spend the entire first day playing with the LED matrix, like getting their name to scroll across it, or programming the LEDs individually to make cool patterns. The Microbit also comes with an external battery holder for two AAA batteries, and feels a lot better to carry in your pocket than an Arduino or Raspberry Pi.
After seeing the tremendous adoption in the UK and meeting the Microbit founders, I am very confident this board will play a big role in introducing K-12 students to digital electronics.
Easy ways to demonstrate bitwise ops, double buffering, 2d arrays, ring buffers, pwm, etc.
We'll be hiring tech people again soon, so if you want to come and help us teach kids around the world to be inventors, keep your eye on https://micro-bit-educational-foundation.workable.com/
Finally, as the author hoped, the revision of the hardware now shipping is more resilient to ESD than the previous one :)
https://www.sparkfun.com/products/14208
One minor comment - the article really made me want one, and when I went to the home page, it took me around five or six clicks to get to a place where I can buy one! Finally I found it at the very bottom of the page under "About". And even then when I click on the adafruit one and it takes me to the adafruit homepage. Why not have a giant button on the homepage? Do you folks really not want people to buy your stuff? :-)
Originally there was going to be a coin cell battery but they removed it because children might eat it. Also there is a Bluetooth radio on the microbit but the runtime was 12k and there wasn't enough space to load micropython and Bluetooth at the same time .
A link to the example is here https://github.com/bbcmicrobit/micropython/blob/master/examp... .
Here's a rundown: https://blog.bluetooth.com/developing-applications-bbc-micro...
https://github.com/c-mart/microbit/blob/master/space_shoot_m...
I have been working with the micro:bit in my role as a volunteer STEM ambassador almost since it became available and it's a fun tool. My main STEM angles are computing and electronic engineering and initially it was very hard to get good info on the I/O functionality (coding and electronic), but things have come on in leaps and bounds, notably with the micropython guys, and I have concentrated on developing some fun 'advanced expansion' projects, such as a loud 3V audio amplifier (powered from the micro:bit), sound detector and a 5 band audio 'spectrum analyser'. Currently I am working on an alarm clock radio with the micro:bit being a plug-in add on controller (via its buttons and bluetooth). The LED matrix is good for a quick win with visuals, but adding a small OLED display makes a world of difference to what you can do - it would have been really cool if one of the small 0.91" OLED panels was baked in to the micro:bit.
The biggest challenge I originally found was the lack of a focal point for teachers, volunteers and developers to share ideas - I subscribe to many educational forums and groups and the most active I have found is the micropython mailing list (but if anyone knows of others let me know) and there seemed to be little encouragement or management from the official micro:bit side to centralise and promote the community spirit, plus there was a huge delay in getting out the full technical specs and schematics - and boy was it was impossible to get hold of an edge connector for months - so there was a lot of poking and prodding needed to work things out; very kindly some of the tech guys from the companys involved in micro:bit distribution and add-on kits were extremely generous at sharing what they had found out in the early days, especially about the quirky way the LED matrix is wired and driven. A bit more oversight from the project originators in the early days would have really helped.
PS: Totally agree about the RAM - 16K is just a tad tight and 32K would have been a better size.
One thing I wish for is that there were visual cues / icons she could distinguish the blocks by (there are a few icons on a few blocks, but not all are covered, they mostly aren't unique, and not intuitive / easy to remember).
It's important to not forget their potential as a general educational tool, rather than just something to teach coding with. Have a read of Mindstorms by Papert if you are interested in this space.
I use mu, the micropython editor, it shows the error messages on the PC when connected via USB, instead of trying to read them scrolling across the display
For me, [stepping through the code] I would expect as a normal part of coding. Not having it seems to hark back to some primitive time.
Then we do a digital pet (think tamagotchi) and again, with a low pixel count this is crap. They want to draw unicorns or fish or bunnies. None of this is possible.
After that they want it to beep when the pet is hungry. No can do.
All pretty basic stuff.
if I recall on the Apple II, the speaker was a single bit on/off .. I played games that had music playing concurrently with the onscreen action and even speech!
I understand about the pictures though and I can understand if they kept it simple on purpose to prevent them from being able to download a picture and show it.. I work in a school and while we have a 3d printer on loan from a local company, in the main kids want to print a Voldemort, not something they made themselves..
http://microbit-micropython.readthedocs.io/en/latest/tutoria...
(Personal note: I've had a lot of fun doing sound on computers from the PC speaker (1 voice square wave), to the SAA1099 as found on the Game Blaster and optional add on for the Sound Blaster (12 voices square wave, 6 per chip), the BASIC stamp mentioned above, or most recently generating wave forms with math (adding sine waves together) and outputting it to DirectX which I learned from Handmade Hero day 007 through 009.[4])
[1] This one exactly: https://www.parallax.com/product/90005
[2] Two frequencies per pin with FREQOUT command: http://www.parallax.com/go/PBASICHelp/Content/LanguageTopics...
Easy for you doesn't mean easy for a 6 year old. Is there really easy pixel-by-pixel programming on any of the devices you mention? As simple as entering few lines of python code and pressing 1 single button? Let alone with direct full-screen access? (I'm really curious, maybe there is).
Also check the example: like 15 lines of Python which make the device play a tone based on the compass. Again: I'm really curious if there are alternatives which achieve this is such an easy way (IIRC even the simplest Arduino style boards I tried required installing an IDE, fiddling with some settings, and the code wasn't nearly as easy as Python). And I'm also not sure if laptop/phone would be amongst those alternatives.
What you describe is several orders of magnitude more complex to do for a child.
It's like saying "why would they build a 2d game with Scratch when they could build a 3D FPS in C++?"
but is drawing shapes with Canvas or SVG really more difficult than blinking an LED with Python ?
I have some experience of trying to teach kids how to use a Pi, and even simple Python part can be a nightmare. SVG is a non-starter.
Also, don't underestimate the fact that the LEDs feel physical while a screen feels virtual. The journey from a single light to an array of lights to shapes shown on the array to shapes shown on a screen is intuitive and fairly obvious.
If you start kids on a screen, even with a turtle, they miss the basics.
(Caveat - I was involved in the MicroPython side of things. So good to see the other dev environments represented in the comments here.)
Hurrah! :-)
Nice work.
There's some high-level stuff here http://beebwiki.mdfs.net/Paged_ROM (see "Languages") and I have asked my BBC Micro developer friends to send me some more useful docs, which I'll forward to you as soon as I get them.
Edit: Actually that page has some pretty low-level stuff on it as well, which may keep you busy for a while.
I also think a shout out to https://create.withcode.uk/ is worthwhile. They've got a nice little microbit emulator for trying things out before downloading onto the microbit.
We have some wacky ideas for microbit:microbit mesh experiments.
The “64” in “Commodore 64”, the name of a computer introduced in 1982, stands for 64 KB of memory. (A 128 KB version followed 3 years later.) It is now 35 years since 1982…
Not always. I do recognize the economic sacrifice the UK made for the sake of winning WWII. It's a beautiful thing - altruism on a national scale.
The BBC Micro cost £400 in 1981, which was £1400 in 2016, according to the Bank of England. I don't know if this includes monitors, presumably it doesn't include any software. From the other comment, you can double the price to add disc drives etc.
So, at least £400 for every 25 children. My primary school had one in every classroom, but I don't know if that was the standard, so it could be less.
A 10-pack of Micro:Bits with basic accessories come to £11 each, £275 for 25 children.
My child's DT teacher did, but they used it for one lesson, then were given it to bring home. It's now in a drawer somewhere.
That was last year. I haven't heard of any plans to repeat the exercise.
Python might not be the easiest way of working with this setup though...
It's an educational device, and that education involves learning to write pieces of code for which industry users may well prefer to pull in large libraries. I'd be surprised if the target audience - 12-13 year olds - use all that; those that have a passion for it will of course end up using more expensive devices with bigger numbers. Those that don't will continue doing only compulsory exercises that could probably manage with less than 16KB.
“Finally, the micro:bit’s 16 kB of RAM is quite limiting, at least when using the MicroPython runtime. While writing a moderate-size program I managed to repeatedly exhaust the SoC’s memory, resulting in difficult to debug MemoryExceptions. I can easily imagine intermediate users running up against and being confused by this limitation, and would welcome a version of the micro:bit with double the RAM.”
https://news.ycombinator.com/newsguidelines.html
> " ... easily imagine intermediate users running up against ... "
Something tells me the author isn't imagining the 12-13 year-old target audience when writing 'intermediate users'. There's nothing wrong with reviewing it from a different audience's perspective of course, but it doesn't do to ignore it if you're going to complain about the device's specification.
Compare that to the price of this beauty and you see what 35 years of progress can bring you.