Skip to main content

Posts

4Tronix Bit:Bot - now there is a good idea.

When I first heard of this robot, my first thought was what a great idea; a robot with neopixels (I know I should be saying 'smart RGB LEDs' but neopixels is so much more snappier) controlled via a micro:bit. A good starting point for learning more about this robot, is the details on the 4Tronix site/blog , which includes build guidance and programming instructions for micropython and PXT. Though for the micropython code you might need to change pinX.digital_write() to pinX.write_digital()  where X is the pin number. My play code was to randomly select which neopixels to light up, I didn't include code to turn them off so multiple ones can be on. The robot is driven forwards, waits, backward, waits, turns to the right and then the left; and then repeats.  Code: from microbit import * import neopixel, random np = neopixel.NeoPixel(pin13, 12) def forward(n):     pin0.write_digital(1)     pin8.write_digital(0)  ...

Hackaball is fun

The long awaited Hackaball has been released to those who backed as a kickstarter: https://www.kickstarter.com/projects/hackaball/hackaball-a-programmable-ball-for-active-and-creat  , designed as a tough, easily programmable device for children that can be thrown around and (within reason) treated roughly. Further protected by an outer shell. The microcontroller is surrounded by a tough what appears to be a silicone (or similar) ring and encased in a two rubbery halves of a ball. In included within are  sensors (accelerometer and gyro), vibration motor,  LEDs, rechargeable battery, and a speaker (that can be programmed to make some interesting sounds, that go down well with children and adults). The two halves of the ball are translucent and diffuse the LEDs effectively. The computer you can throw, was the campaign's strapline and that is not an idle boast, I have let a six-year throw it around a large room with hard floors and even harder wall...

Scratch for Neurones

1. Single Neurone Instructions: Set the inputs by pressing the buttons marked input 1 and input 2 (Red is off(False or 0) and Green is on(True or 1)) Change the weights by changing weights 1 to 3, wx goes with input x and weight 3 is the bias. To activate the neuron you need to click on the the yellow ball ('the neuron'). The video below show it in action and explains the code. To see the code go to  https://scratch.mit.edu/projects/131892234/  . A slight modification click on the bell to change the weights The code is available at  https://scratch.mit.edu/projects/171190294/ 2. Training a Neurone In this part, the training of a neuron all written in Scratch is tackled. The video shows it action and you can have a go at using the software yourself at the end of the post. The Scratch code can be found at  https://scratch.mit.edu/projects/132915502/ All opinions in this blog are the Author's and should not in any ...

kamibot

Kamibot was a recent kickstarter ( https://www.kickstarter.com/projects/kamibot/kamibot-teach-your-kids-to-code ) from the interesting named, Korean company, 3.14 Co., Ltd as a robot you can dress up in paper outfits. It is actually quite a nice little kit that can be controlled via Android, IOS or PC (available at  http://www.kamibot.com/default.php along with some of the plans for paper outfits). The software is a simple Scratch/Blockly style interface and programming is simple. Connecting the robot to the, in my case, an iPad was relatively easy. I would welcome a Mac version of the KamiBlock software but apart from that nice robot kit, that allows you to get programming quickly if you have used Scratch, Blockly or Crumble.  They have recently twitted about new piece of software for Android device - using cards on the screen in combination with their paper mapboard. Kamicard, now available for download to Android users! Who says you ...

Be an Unplugged Computing Artist

A recently released book  Teaching Computing Unplugged in Primary Schools   edited by Helen Caldwell (University of Northampton) and Neil Smith (Open University) has a number of interesting chapters by authors who are passionate about how computing is taught in schools. The central theme is unplugged activities, without using computers, but still teach the fundamental of computational thinking. Ok, confession time. I co-wrote, along with Katharine Childs (Code Club), Chapter 3 Artists so I am biased here, but I believe in the central theme of Unplugged Computing. Computing, and Computational Thinking in general,  is not  just  about programming and using a computer (though using computers and  programming are vitally important to Computing) but it is also about many other things including problem-solving, being creative and working collaboratively. Chapter 3 is about linking these computational thinking ideas to produce visual art, by app...

Simple (and temporary) Halloween Hack

This really is a simple one. A Glowbug (or a NeoPixel) with the data in, Ground and 5v connected pushed into the neck of the balloon, then inflated the balloon. The neck of the balloon and wires are twisted tightly and insulating tape used to provide a bit of a seal. The data in wire is connected to Pin 0 of a Micro:Bit and the other two wires are attached to the corresponding connections of the Micro:Bit. The code below randomly selects the colours and the length of the delay before changing colour. from microbit import * import neopixel, random np = neopixel.NeoPixel(pin0, 1) while True:     rd=random.randint(1,254)     gr=random.randint(1,254)     bl=random.randint(1,254)     t1=random.randint(200,2000)     np[0] = (rd, gr, bl)     np.show()     sleep(t1) The problem is a slow leak means it only stays inflated for a short while. All opinions in this blog are the Author's and should not in an...

Dancing pixels

In previous post I played with using the combination of the Proto-Pic Micro:pixel and Micro:Bit to react, using the accelerometer, to music through a computer speakers. The vibrations from the music shake the Micro:Bit enough to give measurable changes in three axis, and these values are used to change the pixels colour. The latest version of this uses most of pixels. Coded in micropython using the Mu editor . from microbit import * import neopixel, random np = neopixel.NeoPixel(pin0, 32) while True:     for pxl in range (2,32, 5):         rd=int(abs(accelerometer.get_x())/20)         gr=int(abs(accelerometer.get_y())/20)         bl=int(abs(accelerometer.get_z())/20)         np[pxl] = (rd, gr, 0)         np[pxl-1] = (rd, gr, 0)         np[pxl+1] = (0, gr, rd)         np[pxl-2] = (rd, 0, 0)       ...

Microbit + Micro:pixel reacting to music

This post discusses a simple way to get the Micropixel-Micro:Bit combination to change the Neopixels based on the music. Using the accelerometer on the Micro:Bit to provide x,y,z values to provide colour values for the neopixels; the micropixel sits over the speaker and vibrations are picked up.  Simple but it roughly works (see the video at the end of the post). Code from microbit import * import neopixel, random # Setup the Neopixel strip on pin0 with a length of 2 pixels np = neopixel.NeoPixel(pin0, 32) while True:     pxl=11     rd=int(abs(accelerometer.get_x())/20)     gr=int(abs(accelerometer.get_y())/20)     bl=int(abs(accelerometer.get_z())/20)     t1=10     np[pxl] = (0, 0, bl)     np[pxl-1] = (rd, gr, 0)     np[pxl+1] = (0, gr, rd)     np[pxl-2] = (rd, 0, 0)     np[pxl+2] = (0, gr,0)     np.show()     sleep(t1)     np...

Disco micro:pixel

In a previous post  Proto-Pic board, Microbit and Micropython  I played with the  Proto-Pic micro:pixel 4x8 NeoPixel  board.  This post is just a short description of a quick play with making it flashing blocks of different colours across the board. The routine produces five random numbers (three to define the colours, one for which pixel is selected and the last for the delay each iteration). The idea of being - a pixel is selected, but so are the ones either side of it, each one has a different combination of the colour values, but only two of the pixels are turned off after the delay. from microbit import * import neopixel, random # Setup the Neopixel strip on pin0 with a length of 2 pixels np = neopixel.NeoPixel(pin0, 32) while True:     pxl=random.randint(1,30)     rd=random.randint(1,32)     gr=random.randint(1,32)     bl=random.randint(1,32)     t1=random.randint(10,100)   ...

micro:pixel board, micro:bit and micropython

A new (or to me at least)  addition to devices you can attach a Micro:Bit to, is the Proto-Pic micro:pixel 4x8 NeoPixel board; essentially a board with 4 x8 grid of NeoPixels that you plug the Micro:Bit into. Following the advice of the website the  values of RGB are all set to 32 or below to avoid pulling too much power. Pin0 is used to write to. You will need to use the Mu editor for this. Two tests were tried Example 1: To get the pixels to appear to light up from the last to the first one. from microbit import * import neopixel np = neopixel.NeoPixel(pin0, 32) while True:     for x in range(0, 32):         for y in range(0, (32-x)):             np[y] = (y, 32-y, 1)             if (y>0):                 np[y-1]=(0,0,0)             np.show()             sl...

Micro:bit sings - sort of

Just a short post today on getting the Micro:bit to sing using micropython. The process is covered very well in the Micro:bit-Micropython documentation . This post is just my notes really of what I did. The goal was to the try and replicate a bit of the intro to Kraftwerk's The Man-Machine (the repeating of Machine)- I came nowhere near it but it was fun trying. Everything needs to be spelt out in Phonemes, which is a bit of a challenge, but I only had one word to do so that was ok. The  Micro:bit-Micropython documentation  has a list of the Phonemes allowed, you do need to get them right this was the most common error I found with the code. Pins 0 and 1 had croc-clips connecting them to the first and third parts on a speakers 3.5mm plug (as above) - thank you to Sway Grantham for showing me that. from microbit import * import speech while True:     speech.sing("MEYSHEYN  ", pitch=90,speed=100)     speech.sing("MEYSHEYN  ", pitc...

Playing with 4Tronix's Micro:bit Playground

As much as I like the simplicity and flexibility of Crocodile Clips connecting components to a Micro:Bit, it can get a bit of a rat's nest of wires (especially if you are as messy as I am!). 4Tronix's have released their Micro:Bit PlayGround ( http://4tronix.co.uk/store/index.php?rt=product/product&path=89&product_id=580 )which is a board that has 3.5mm jack plugs to connect to a range of Gizmos (their phrase not mine) to which the Micro:Bit is screwed into. The battery pack is integrated onto the board on its back (see image below) The Micro:Bit screws into the PlayGround via five screws which also for the connection between the PlayGround and the 'bit'.  Below via the three cables connecting 3.5mm plugs, I have attached a 'Dial' (a potentiometer ) and two Flames (neopixels) to change the LED/neopixel's colours by rotating the Dial. Pin 0 has the 'Dial' attached and Pin 1 has the two Flames (neopixels) attached the out from the f...

Micro:bit, Servo control with Micropython or blocks

You can control servos (small ones) from a Micro:Bit directly. Following a link from the David Whale (Twitter  @ whaleygeek ) , thank you, took me to a Kitronik blog post, https://www.kitronik.co.uk/blog/using-bbc-microbit-control-servo /, which has the answer. The code uses Microsoft Blocks taken from the post, runs the servos 180 degrees and back again, when button A is pressed. It does exactly what it should. I am also using the Tower Pro SG90 servo. Can it be replicated in Micropython? This is a new mini project, there seems to be little out there yet on how do this but the best so far is this video by  PHILG2864 : The closest I have is the following, it is essentially there. from microbit import * pin0.set_analog_period(20) while True:     pin0.write_analog(180)     sleep(1000)     pin0.write_analog(1)     sleep(1000) Setting the time period to 20ms   pin0.set_analog_period(20) seems by experiment (...