Space – our new frontier!

Our Code Club and I are about to embark on Mission Zero from Astro-Pi. We’ll do the coding on an emulator: Trinket Mission Zero,  but then I’d like them to be able to see their code run on a Sense HAT, just like the astronauts have up there, on the International Space Station.

Mission_Zero logo

Image from http://www.raspberrypi.org

Getting the Sense Hat working took a bit of time so I’ve described the process, and put some troubleshooting tips, in another post: Sense HAT – how to get your Sense HAT working

We’re already to begin on Thursday 19th October with a crew of eight year 5 and 6 pupils.

Let’s get started!

Advertisements

Sense HAT – how to get your Sense HAT working

SenseHAT2photo

Always fit the Sense HAT while the R Pi is switched off – and ‘power off’ before removing it.

When you fit your Sense Hat on your R Pi2 or R Pi3 all the LEDS should light up but they should not stay that way. Once your Pi has booted up the LED lights should go out. HAT – What it means? Read: HATS – No, I’m not wearing one!

  1. If you don’t get any lights lit at all, the Sense HAT is probably not connected to the Pi properly. Make sure all the pins are going into the female header on the Sense HAT and press down firmly.
  2. If, as I got, all the lights are lit but don’t go out at all, there are several things that could be wrong:
  • The Sense HAT still might not be connected properly to the Pi.
  • The Sense HAT software might not be installed. In LX Terminal use:
    • sudo apt-get update and let it do its stuff
    • sudo apt get upgrade and ditto
    • sudo apt-get install sense_hat
  • The R Pi might not be recognising the Sense HAT. If so, go back into the Terminal and alter config.txt with the instructions below:
  • sudo leafpad /boot/config.txt
  • Scroll down to the bottom of the config file and type:
  • dtoverlay = rpi-sense then Save and reboot your Pi.

 

  • You need to have I2C enabled. This is automatically done on newer operating systems, such as Raspbian Stretch. If not :
    • Go to the main menu,
    • choose Preferences,
    • choose Raspberry Pi Configuration,
    • choose Interfaces
    •  and ‘Enable’ I2C and choose OK.

 

  1. Now you have a Sense HAT that lights up when you power up then becomes unlit during boot up. Try the Sparkles Activity ‘Make random sparkles on the Sense HAT’ from https://projects.raspberrypi.org/en/projects/sense-hat-random-sparkles
  2. If this works alright, you are now in business so start sensing temperature, etc. and think about getting some groups of children to do Mission Zero!

 

SenseHAT1photo

 

 

Wifi dongle to Raspberry Pi2

I expected this to be difficult to do – as you usually have to type something into LX Terminal to get your Pi to recognise the dongle – but it wasn’t. However it was not plain sailing.  I couldn’t get the first wifi dongle, I bought, to work and spent ages, with other help, trying to get the software to recognise it, all to no avail.  Either I’d got a dongle that wasn’t compatible with an R Pi or it simply didn’t work. I’ll never know!

RPi2WiFiDongle

However, once I’d bought the official Raspberry Pi wifi dongle it was totally straightforward!

That is, after I’d sorted out the amount of power needed.  I connected my USB hub up to the Pi and switched on the hub’s power. Once I had done that it worked perfectly.

Now I can find recipes and cook with my little R Pi and HDMIPi screen in the kitchen and, also, sing very loudly to my heart’s content along with Choir! Choir! Choir! in the front room, where there’s no router. Aren’t you glad you’re not here!

It’s brilliant!

 

PS If you want to use the dongle with a Pi Zero, (like I did because when I bought a Pi Zero with ready-soldered header from Pi-Supply they had no Pi ZeroWs) you need a:

USB to microUSB OTG* converter shim .

*OTG just means on-the-go

A robot rover using a PiZero – Part 3

Yorkshire versus Lancashire PiWars gets a step closer!

The next stage in making the robot rover I’m constructing (with massive help from the Cam Jam people and their EduKit3) is to incorporate ‘power on the move’ for the PiZero.

As you read before in A robot rover using a PiZero – Part 1 the two powered wheels use 4 x AA batteries. However no independent power source for the Pi is included with the kit. You therefore have to choose and buy the one that suits you. Because I am using a piZero rather than a full-sized Pi, I can get away with a lower power battery source (which adds less weight) than you would need for the full-sized Pi. I therefore chose a 2200 mAh (milli Amp hours) DC 5V portable powerbank. These are meant for powering smartphones on the move.  They are often called lipstick battery packs (because they’re like a large lipstick) and can be bought at high street discount stores.

Power_Bank

I went to a trusted online Pi provider though, because I can’t afford to get it wrong and damage the rest of the set-up.  Also, the Pi provider’s powerbank came with the micro USB cable to charge it up with (and link it to the PiZero).

PiWars_Robot_2

Anyway, the powerbank came immediately and, after a charge-up of about 4 hours (using the plug from my smartphone), its light went out to show it was fully charged and it is working brilliantly.  You just disconnect the cable and turn it around so the standard USB goes in the ‘OUTPUT’ on the powerbank and the micro USB goes into the Pi.

You can see my very rough video on YouTube here:Moving Robot

It cost £8.34 so I have now spent:

£47.04 + 4 AA batteries

on this project and I shouldn’t need to spend any more because the line following and the obstacle avoiding sensors are included in the kit.

The next job is to fit and code the ‘Line follower‘, so that the robot can follow a black line on a mat, and that will be in part 4.

Happy Raspberry Pi tinkering!

A robot rover using a PiZero – Part 2

Yorkshire versus Lancashire Pi Wars here we come! 

I’ve been working on getting my PiZero robot rover to start-up automatically when switching on the battery pack. Here are the instructions:

PiWars_robot

Get your robot running on start-up with a Raspberry Pi (I was using a PiZero)

Open the LXTerminal to amend the Cron table

Do:

sudo apt-get update

then:

sudo apt-get install gnome-schedule

(I ignored some stuff that said I hadn’t got everything). When done type:

crontab -e

then choose the nano editor (usually no. 2)

and at the end of the document add:

@reboot python3 /home/pi/EduKitRobotics/4-driving.py

or your particular file (with path) instead of the part in red,

then choose Ctrl and X together, then (when you’re asked whether to save) Y and enter.

Then, when you reboot, your python code will start automatically. Shutdown and detach your robot from its monitor, etc.

Your robot will now start automatically when you attach a suitable power supply to your PiZero. (Don’t forget to switch on the battery that runs the wheels too!)

Getting Scratch2 for a Raspberry Pi3

boat_race

Scratch2 is a great upgrade to the Scratch programming language, Scratch1.4, that comes with your Raspberry Pi. If you have an R Pi3 you can now get a Scratch2 offline version.

To upgrade your version of Raspbian, so you can use Scratch2 offline:

Open the LXTerminal (see What I wish I’d known about Raspberry Pi if you’re not sure what the LXTerminal is) and type:

sudo apt-get update

and press Enter.

Let this do everything until you get pi@raspberrypi:~ $ back.

Now type:

sudo apt-get upgrade

and press Enter.

Let this complete itself, as before, then type in:

sudo apt-get install scratch2

and when you look in the Programming menu Scratch 2 will be there!

Da, dah!

A robot rover using a PiZero – Part 1

PiWars is an event like Robot Wars, which you may have seen on TV, but without the destruction.  If you think that sounds boring you need to find out about the great courses the PiWars team put the robots through.  I particularly enjoyed the ‘balloon popping’ one.

piwars2

After visiting PiWars, I decided I had to have a go at making a robot rover myself.  Not being that clever and allergic to soldering, I decided to buy a kit.  (Well not literally allergic but absolutely useless at it!)

Here are my costings:

This assumes you’ve got some sort of Raspberry Pi already. So you’ve got a power supply, keyboard, mouse, screen and powered USB hub – all with cables.

What you need                                               £

Pi Zero                                                                (4.80)

SD card with NOOBS                                       6.50

Adapter Kit                                                        4.20                     (Can be used for other projects)

This is:   {HDMI -> mini HDMI adapter

               {Female USB A -> micro-B USB cable

Hammer heading kit with Male Header    (6.00)  (Can be used again, new male header £2)

or buy a Pi Zero from  Pi-Supply at            10.00 with a male header fitted already

Robot CamJam EduKit #3                              18.00

Old Tupperware box                                        0.00                     (or the CamJam box or similar)

Total                   £38.70

I am pleased to say that the wheels turned when I tried it, so I must have done all the electronics correctly, and Michael & Tim’s instructions are excellent!  It’s the first time I’ve understood everything in a project’s materials.

PiWars_robot

Here’s the Python code I used (The indenting hasn’t come out here):

import RPi.GPIO as GPIO

import time

# Set the GPIO modes

GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)

# Set variables for GPIO pins

pinMotorAForwards = 9

pinMotorABackwards = 10

pinMotorBForwards = 7

pinMotorBBackwards = 8

# Set the GPIO Pin mode

GPIO.setup(pinMotorAForwards, GPIO.OUT)

GPIO.setup(pinMotorABackwards, GPIO.OUT)

GPIO.setup(pinMotorBForwards, GPIO.OUT)

GPIO.setup(pinMotorBBackwards, GPIO.OUT)

# Turn all motors off

def StopMotors():

GPIO.output(pinMotorAForwards, 0)

GPIO.output(pinMotorABackwards, 0)

GPIO.output(pinMotorBForwards, 0)

GPIO.output(pinMotorBBackwards, 0)

# Turn both motors forwards

def Forwards():

GPIO.output(pinMotorAForwards, 1)

GPIO.output(pinMotorABackwards, 0)

GPIO.output(pinMotorBForwards, 1)

GPIO.output(pinMotorBBackwards, 0)

# Turn both motors backwards

def Backwards():

GPIO.output(pinMotorAForwards, 0)

GPIO.output(pinMotorABackwards, 1)

GPIO.output(pinMotorBForwards, 0)

GPIO.output(pinMotorBBackwards, 1)

Forwards()

time.sleep(1)

Backwards()

time.sleep(1)

StopMotors()

GPIO.cleanup()

The only bit I was stuck on was finding instructions to start the code working automatically, once I’d separated the PiZero from it’s cables and switched on the battery box.  I expect you have to use some sudo commands in the LX Terminal.  Apparently I need to use this post: Raspberry Pi’s Linux Documentation which explains the correct commands to start up the PiZero and run my python code automatically.

Well, I feel I’ve made great progress today – so separating PiZero from it’s cables, and getting it to start the code (which moves the wheels) automatically, will be in Part 2.

Happy R Pi tinkering!

 

PS You can now buy PiZeros, with the male header already soldered on, from Pi-Supply .