Blackpool micro:bit illuminations: A cross-curricular collaboration

By Claire Rawlinson and Aimee Hainsworth. Posted

A display of finished illumination casings. Image credit: Shelley Howarth

Two primary educators explain their cross-curricular collaboration encompassing design technology (DT), science, and computing using a Python-coded micro:bit

As anyone working in education knows, it can be a challenge to teach multiple subjects with varying objectives in the limited time we have for each class. However, one project last year gave us the opportunity to combine subjects and gave students a unique outlet for their creativity. This was a very exciting project and could easily be adapted for any year group in a primary setting. Watching pupils develop the social skills necessary to work as members of a team, as well as the ability to work independently when the situation demands, was very rewarding.

With a DT project looming and our science lessons focusing on electricity, we decided to create our own version of Blackpool Illuminations—a festival held each year since the nineteenth century. As we are based in Blackpool, our Year 6 children (10–11 years) had lots of inspiration to draw on.

Our first step was to evaluate the illuminations that previously featured as part of the festival, including installations such as the Four Seasons, the Enchanted Forest, and Alice in Wonderland. From this, we identified that these illuminations typically include a number of components, prompting the children to suggest that they would need to include electrical circuits to make their own designs stand out. However, something was still missing. We realised that many of our famous illuminations, such as the iconic Swan Lake installation, featured moving images. With this in mind, our computing teacher, Claire, suggested the missing piece we were looking for—the micro:bit!

Bringing together design technology, science, and computing

As a result of our new-found inspiration, our project was now covering three separate subjects: DT, science, and computing. The students would also need to get to grips with a range of new materials and technologies, including Python coding, micro:bits, and LED circuits. The goal was to design a series of illuminations together that would incorporate:

  • Key aspects of DT, including the development and implementation of computer-based designs for practical use

  • A demonstration of the pupils’ ability to create a variety of electrical circuits containing multiple components

  • A showcasing of the pupils’ computing skills, and in particular their Python skills

The idea was simple enough to plan out, but between us, we soon realised it would be a while before we saw the final product. During weeks of DT and science lessons focusing on our goal, Claire was also working hard to keep the class up to speed with the coding of the micro:bit, to ensure everything was ready to piece together in the final week. As the pupils only had a one-hour session with Claire, two hours of DT, and two hours of science a week, it was important that every session was used wisely. Overall, the projects were expected to take six weeks, but more time was needed for Claire to introduce Python to the children, so it was important that she started before the project was introduced. Once the illuminations were finished, we planned to create a display in the school corridor for everyone to see, as well as sharing the creations with families at home on our school blog.

Creating the casing

After evaluating in detail existing illuminations in the town centre and the design criteria, the children were well prepared to begin work on the casing of their illuminations. We had many ideas within the class, such as the Zoo Project, the Peppa Pig Project, and the Spinning Unicorn. With their audience and purpose in mind, they used general junk to create the shell of their product. They worked together in small groups of five to eight pupils to create the shape, size, and overall look of their casing, and we saw many creative ideas come to life. The children began to generate their designs in more detail and were encouraged to modify them as they found and overcame problems.

It was important that they considered their final product while creating the casing, as they had to think about the placement of the lights, and if they were including moving objects, they had to think about where they would attach them.

Electronics

The study and practical application of electronics was essential to our project. In science lessons, the pupils had three objectives to achieve, which linked well with the DT aspects of the project. The pupils were able to achieve these goals when designing, creating, and evaluating their product. The objectives they focused on were:

  • Associating the brightness of a lamp or the volume of a buzzer with the number and voltage of cells used in the circuit

  • Comparing and giving reasons for variations in how components function, including the brightness of bulbs, the loudness of buzzers, and the on/off position of switches

  • Using recognised symbols when representing simple circuits in a diagram

Once children could demonstrate that they could create a basic circuit using a range of components, they could then incorporate it into their design. Many children decided to keep it simple with a few lights to attract their audience, while others included buzzers, motors, or pressure switches. When reflecting on and evaluating their design, it was the electronics aspect that they found most difficult. With the casing designed, painted, and ready, and the plans for the electrical circuits prepared, we were ready for the tricky bit—the micro:bit! Claire’s portion of the article, below, will give us some insight into the process.

Button presses

How to use button press events to make a selection between multiple sequences

while True: 
    if butt_a.is_pressed():
        display.scroll('Hi')
        display.show(Image.H)
        sleep(2000)
    elif butt_b.is_pressed():
        display.scroll('Hi')
        display.show(Image.R)
        sleep(2000)
    else:
        display.show(Image.C)

Claire: The project’s computing side

Many non-specialist educators are reluctant to teach coding—imagine the scenario: your student tells you their code doesn’t work and you have no idea why! However, there are lots of ways for teachers to incorporate computing into their lessons with only beginner-level knowledge. The purpose of this section of the article is to give an overview of how to run the computing side of the project.

There is also a separate section where we share some tips on how you and the students can learn through debugging (see Debugging Code box). It is inevitable that, once pupils start building up their code to contain more than a couple of messages or images, it will have errors, but these failures also allow pupils to practise their debugging skills and become more confident coders.

To be successful, it was expected that each group would display on the LEDs at least one scrolling message, and some library images on the theme of their illumination design. They also had the option of some extension activities, including:

  • Creating their own image and making it move

  • Trying button press events to control which sequence was displayed

Downloading

In our Illuminations project, we used a USB cable to download the pupils’ code onto micro:bits. We used Microsoft Edge as our preferred browser, because the children found it easier to specify where to download the file to. When Download is clicked, you can choose Save As from the pop-up box and find the micro:bit in the Save As box.

Once all code is completed and downloaded onto individual micro:bits, the pupils can attach a battery pack and they are ready to go.

Collaboration and unexpected learnings

The final stage of the project was for the children to combine the three areas (DT, science, and computing) in their illuminations. This allowed them to work collaboratively, with a strong emphasis on effective communication and skill delegation.

As a result, the pupils produced great final illuminations. They then spent some time reflecting upon the process. Interestingly, as an accidental benefit, pupils identified the value of collaboration as they saw two teachers using their knowledge and combining their skills.

At Anchorsholme Academy, we are proud to ensure that all pupils develop the creative, technical, and practical expertise needed to perform everyday tasks confidently, and to participate successfully in an increasingly technical world.

We found that this accessible, low-cost project proved a valuable learning experience for our pupils to develop these skills. We hope that our collaborative project will inspire other teachers to consider the use of coding in the wider curriculum.

Debugging code with your pupils

Children worked in teams to write Python code to display images and words on a micro:bit. Image credit: Shelley Howarth

When children first start learning to code, if their program doesn’t do what they want it to, many will sit back and put their hand up for help. Debugging is a skill that they need to practise and develop. This involves going through their code meticulously line by line, checking the logic and syntax as they go. Giving them a debugging checklist, like the one I’ve shared below, helps them to track down some of their bugs independently. While working on this project, the pupils were only allowed to ask me for help once they had checked everything on the debugging checklist!

Debugging checklist

  • Are all the words spelt correctly? Python is strict—every word must be spelt exactly right. Do not underestimate the number of students who will copy incorrectly!

  • Are all words entered using the correct upper or lower case?

  • Do all the brackets come in pairs?

  • Do all the apostrophes come in pairs? Be mindful of pupils who may have included an apostrophe in their scrolling message. For instance, the line below would result in an error:

display.scroll(‘It’s Great’)
  • Are your indents correct? Repetition is dependent on the indents. In the code below, pupils may wonder why the image of the square never displays. Only the indented lines of code are included in the ‘while True’ loop, so when it runs, it will continually loop through the scrolling string and the heart image, never reaching the square.

while True:
    display.scroll(‘Hello!’)
    display.show(Image.HEART)
    sleep(2000)
display.show(Image.SQUARE)
  • Are you using the sleep function when needed? Another reason pupils may think their code isn’t doing what they expect is because they are not doing this. In the scenario below, the pupils are likely to wonder why the square is not showing. It actually is, but it is moving so fast that the eye cannot see it. They must include a ‘sleep()’ after each image, so that the micro:bit will pause before moving onto the next line of code.

while True:
    display.scroll(‘Hello!’)
    display.show(Image.HEART)
    sleep(2000)
    display.show(Image.SQUARE)
  • For the extension, when defining your custom image, have you set all 25 LED values, and have you included the colons?

boat = Image(“05050:”
             “05050:”
             “05050:”
             “99999:”
             “09990”)

For the children who had trouble visualising their custom images, I suggested they drew a grid on paper to represent the LED display, and created their image on that before writing the code. Custom images can be simplified by only using 0 and 9 for on and off, rather than varying brightness values.

Displaying scripts similar to the ones above on the large screen and predicting as a class what would happen gives opportunities for teachers to demonstrate debugging techniques and certainly aids understanding.

The final tip I give the pupils is that if their micro:bit is displaying a message that there is an error on line x of their code, the error will probably be found on line x-1.

Authors

Claire Rawlinson

Claire teaches computing at Anchorsholme Academy, hosts a weekly Code Club, and is participating in Raspberry Pi gender balance research. She is a computer science graduate with past experience as a software engineer.

Aimee Hainsworth

Aimee is a Year 6 Teacher at Anchorsholme Academy. She is the school’s Modern Foreign Languages Subject Leader, as well as the director of their very successful drama club. This is the first computer science project she has been involved in.


Educator

Free

If you’re a UK-based teacher, volunteer, librarian or something in between, we'll send each issue free to your door.

Digital

Free

Just want to read the free PDF? Get each new issue delivered straight to your inbox. No fuss and no spam.

Buy

From £6

If you are UK-based but not involved in education, you can get hard copies by buying back issues or subscribing via our partner service.