Tag Archives: Raspberry pi

Mozfest 2016

This year once again, I was involved with the Mozilla Festival on the final weekend of October 2016. This year, I was (somehow) persuaded to be a Space Wrangler, alongside Dorine Flies.

Berlin

The planning process for us started back in May, when along with the other Space Wranglers and Mozilla staff, we traveled to Berlin for a long weekend planning retreat.

While in Berlin, we planned out how we wanted the YouthZone to pan out and started discussing the types of sessions we would love to nab for the space. We also had many interesting conversations with other Wranglers on possible collaborations at the festival.

Festival lead up

Over the next few months in the lead up to the festival, the call for proposals opened and we received well over 100 session proposals. We had painful task of then whittling those down to just over 60 sessions for the weekend. This entire process was done in the open online via the festival proposals Github repository.

Friday

The Friday of the festival was the setup and facilitator training day.
At it, we had about 45+ of our fantastic YouthZone facilitators.

The first part of the morning was facilitator training, provided by Mozilla.
After this, all the spaces split off to their respective floors. We got everyone from the YouthZone together and went over specific details for the weekend.

After lunch, we started the logistical nightmare of setting up 64 Raspberry Pis across 2 Pi labs!

Vincent busy doing the initial equipment inventory.
Vincent busy doing the initial equipment inventory.
So many PiTops!
So many PiTops!

The setup process, although a very complex one, was completed in a few hours thanks to help from the large army of volunteers.

The result was a main classroom featuring 38 PiTop Ceeds and a smaller classroom featuring 26 DVI monitors (from Computer Aid International). The entire setup made use of Raspberry Pi 3s (provided by PiTop and Raspberry Pi Foundation), a wired network (with a little help from Ravensbourne and NI Raspberry Jam) and to top it all off, running the next experimental PiNet Jessie.

Bawar running final tests on PiTops
Bawar running final tests on PiTops

Along with setup, some of the team spent the afternoon creating the posters to plaster around the Ravensborune.

We also had the laser team (headed up by Amy Mather) upstairs on the 9th floor getting their lasercutting workshops ready for the weekend.

Saturday

The festival officially opened on Saturday morning, with the team down for 8am (something that didn’t go down very well earlier when they were told they needed to be down by then).

Throughout the day, the Raspberry Pi volunteer team ran 12 workshops from Dave Hones’s “Code in Space” workshop to 12 year old Elise’s “Spooktacular Sonic Pi” workshop and Femi/Nic’s fantastic Crumble robot workshop!

Frank-Pi Pi-group

 

 

In parallel to the Pi workshops, we also had Cat Dunicliff running her VR workshops using kit on loan from Google Expeditions team.

Cat-expeditions

 

Then, up on the 9th floor, throughout Saturday, Amy Mather and her team ran a series of lasercutting beginners workshops.

 

Laser-example Amy-laser-kid Amy-laser-laughing

On the Saturday evening, 35 celebrated the success over pizza! Unfortunately due to a minor mixup with the restaurant, we ended up split across 2 of the restaurants across London. Will say though, Franco Mancas pizza was excellent.

"My pizza has arrived!" - Cerys (with slightly tired Amy)
“My pizza has arrived!” – Cerys
(with slightly tired Amy)

Pizza-2 Pizza3

Sunday

On the Sunday morning, the team had a little longer of a lie in, with them all arriving for 9am.

Once again, we had another fantastic set of workshops with Raspberry Pi based workshops ranging from Edublocks by Josh, Scratching stuff from your kitchen by Aoibheann and automatic twitter powered photobooth by Vincent/Sam.

Amy and the lasercutting team continued another 2 lasercutting workshops on the Sunday and Cat was joined by Pietro from Google to run some Google Expeditions workshops.

Josh-edublocks

Conclusion

Mozfest has been a fantastic journey, starting right back in May, up to now. We have already started discussions for 2017.

Myself and Dorine set out from the start with the mission to provide youth (and the young at heart) the opportunity to learn new skills and discover exciting new technology. We set out to widen what the attendees (especially kids) thought was possible and provide them with opportunities to see that hands on.
These are going to be the digital innovators of tomorrow!

Alongside this mission, we had a 2nd, less shouted about mission. We wanted to provide opportunities and build up the skills/confidence of our amazing volunteer team. Over half of the sessions run at YouthZone were lead by youth. Our youngest facilitator this year at Mozfest was only 10! Of those youth, a majority had never given a proper workshop to a group of complete strangers.
We gave them this opportunity in a safe space, always with someone with a little more experience on hand, just in case. The feedback from them all has been amazing and I am pretty confident we will have over 90% of this years team, applying again to run sessions next year.

Personally, I feel we accomplished both of these over the weekend. There are of course numerous things we could have done better, but on the whole, I think we didn’t do half badly.

Thanks

To pull off 25 Raspberry Pi based workshops, 4 Google Cardboard workshops and 5 lasercutting workshops, required a heck of a lot of help.

First, I want to say a huge thanks to the army of volunteers that got thrown together over the past few months. Although they all already know it, it is worth saying again… You guys were all awesome! Well over 45 of them showed up over the weekend and were given jobs ranging from lifting monitors, to wrapping cables to counting the exact number of crocodile clips at the end to creating 30+ posters!

The other big thanks I want to make is to our fantastic partners. They provided equipment and staff to make whole thing logistically possible. These include (in no particular order)

Andrew-Femi

TalkTalk Digital Heros shortlisted

As some people have seen, I have been shortlisted for the TalkTalk Digital Hero’s Next Generation award!

To Vote    >> Click Here <<

If you just want to vote, then click this button!
If you just want to vote, then click this button!

What is TalkTalk Digital Hero’s?

TalkTalk Digital Hero’s is about recognising people who use technology for good. There are 9 categories in total and I have been shortlisted for the Next Generation category. The winner is decided by a public vote which is open till the 25th September.

The winner of each category receives the title of a digital hero and also £5000 to put towards continuing their project.

 

What is your project?

Showing kids how fun Computer Science is while supporting teachers across the UK to do the same!

The slightly longer description is…

1. Running Raspberry Pi and Computer Science workshops across Northern Ireland and continuing to run the Northern Ireland Raspberry Jam (which will hopefully now be monthly) to inspire kids and adults alike and show them how fun Computer Science can be!

2. Supporting continued development of RaspberryPi-LTSP, my software for setting up and managing Raspberry Pi classroom’s. It makes it possible for teachers to effectively use Raspberry Pis on a day to day basis in a classroom. So far I have done all this for free in my spare time. The software is completely free and opensource. Full details of RaspberryPi-LTSP can be found here

3. Supporting Computer Science teachers and educators across the UK. This has involved me providing teacher training, speaking at teachers conferences and developing educational resources for teachers.

I do all 3 of the above already in my spare time and for free – but this is becoming harder and harder as I start to need to earn money to help fund university. Winning this would allow me to continue my work and invest even more time into it!

 

What can I do?

The simplest thing you can do is vote for me! Vote on as many devices you can get your hands on! It takes 10 seconds, that is it.

TT_digital_heroes_vote_for_me

Once you have done that, then please share this page with everyone you know via Twitter, Facebook etc!

 

Also, another Raspberry Pi community member, Alan O’Donohoe is up for the Volunteer award for his work with Raspberry Jams so vote for him too!

Vote for Alan

Minecraft coding in the classroom – 1st draft

Today’s post sways a little off the normal Raspberry Pi stuff, there is a link though!

Minecraft

One of the awesomest pieces of software the Raspberry Pi has for teaching in Minecraft Pi edition Link . If you don’t have it on your Raspberry Pi, why not?! It is great as kids can easily program modifications to the game in python allowing them to place blocks, move players and do all kinds of cool stuff. There is a problem for it though in education, not every school has a classroom of Raspberry Pis…

Fret not though, a Bukkit developer has gone and made a Bukkit plugin to emulate the API but for the normal version of minecraft.

We will start though from the start. What is minecraft?

Minecraft is a sandbox! It is a game played by millions of people across the world. It is very popular with teenagers especially. The game has a massive community behind it and is easily modifiable with the use of Java.

Modifying the game though brings with it a number of problems including modifications not playing nice with each other. To make it easier to mod the game and to help mods play nice together, a number of community projects emerged making their own APIs. The 2 most popular of these are Bukkit and Minecraft Forge. Both are not run by Mojang (Minecraft developers) and are maintained as opensource projects through donations.

Bukkit is an stable and the standard server platform for 90% of Minecraft servers out there. It has an easy to use API and a massive collection of plugins allowing you to manage players on a server and keep order. There are also a number of specialist plugins, we will be looking later at one called RaspberryJuice. Bukkit is a server only platform, it can not modify the actual client (aka add more buttons, new blocks or new menus).

Minecraft forge, the other major platform, allows direct modification to the client. This allows you to do things like add new menus, buttons, blocks. MinecraftEDU is designed for Minecraft forge. It has a very powerful API that allows you to change most of Minecraft.

 Minecraft Pi edition

Minecraft Pi edition is a special version of minecraft developed for the Raspberry Pi which is based off another branch of minecraft, Pocket edition (designed for mobile devices). It has only the basic features of minecraft but can easily run on the Raspberry Pi.The important bit though about minecraft Pi edition is it has its own simple to use API for interacting with the world! You can tp players, break or place blocks etc in languages like python, java, javascript etc.

This API is great for the classroom and at home but it has an issue. What if you don’t have a Raspberry Pi? A lot of schools dont yet have a full classroom yet of Raspberry Pis but have a fully kitted out ICT suit with much more powerful computers than the Raspberry Pi. What about this API for normal PCs? A developer has gone and created just that! An easy to use plugin called RaspberryJuice has been released that allows players to use exactly the same API but using normal Minecraft.

Each student must be running a mini server though to use this seeing as it requires bukkit, this allows teaching simple commandline based server applications too.

By using Bukkit, you also have access to 1000s of plugins that allow you to customize the entire experience. For the plugins check out their database http://plugins.bukkit.org/

Lets set up a server

First you will need a minecraft account (€19), it is likely most students will have one. MinecraftEdu offer discounts to schools and can get them as low as €10. You only need 1 set of accounts per classroom (and if they arent connecting to the same server, 1 set per school).

Next you need to set up the clients, it is a very easy process. Make sure java is installed (most machines it is), download client from Here and you are good to go.

If you are using RaspberryJuice each client also needs a mini server running in the background. The basic idea is they run their own mini preconfigured server then they just connect to localhost (aka, themselves). Using this method also allows students to connect to each others servers if they know their IP addresses.

You need to create a folder with the server stuff in it. I will be demoing this on a mac, but it will work also on windows and linux.

Make a new folder for your server and grab the latest beta build of bukkit (It is also known as craftbukkit) from dl.bukkit.org .

Bukkit has 3 standard release channels, unstable (daily releases, dont use), beta (a tested build that most things should work for, these are fine) and a recommended build (these are the most stable, there are very few of these).

Minecraft is constantly being upgraded with new features, a new update comes out on average every 1.5-2 months and will be heavily publicized before its release. Best place to hear about new versions is https://mojang.com/. They also do snapshots which are unstable test versions normally released once a week. These are minecraft versions, not bukkit. Minecraft follows a numbering system that increments .1 every major release and .0.1 for bug fixes, for example as of writing, the current version is 1.6.2. 1.6 is the main version number and there has been 2 bug fix updates. Remember, these are different from bukkit releases. Bukkit releases can take 1-2 weeks after a major update and 2-3 days after a bug fix update. When a new version comes out, you dont need to update, it is normally smarter not to until everything settles down.

When configuring the clients, it is important to go into edit profile and change the dropdown menu from latest version to the current version, this way the clients wont auto update. See the picture belowVersion

So, now you have bukkit (also known as craftbukkit), place it in your server folder you created and rename it to craftbukkit.jar. The result of this is below

We only have 1 file so far, the server!
We only have 1 file so far, the server!

The normal thing to do for most people is just double click it, sadly minecraft servers dont work like that, they need a script to launch them correctly. I have provided all the startup scripts here StartFiles

The .bat is for windows, .command is for mac.

Remember, the server .jar file must be called craftbukkit.jar

We are now ready to test out our server. Double click the start.something file and watch as a terminal or cmd opens with a load text.

The important bit here is at the bottom. It explains that it is generating the minecraft work which can take a few mins.
The important bit here is at the bottom. It explains that it is generating the minecraft work which can take a few mins.

You now have your very own minecraft server up and running.

!!!VERY IMPORTANT!!! Do not ever close the terminal or cmd with the x at the top! To correctly stop a server you must type stop into the terminal and hit enter. If you close it by mistake, easiest way to fix it is reboot your computer !!!VERY IMPORTANT!!!

You can connect to your minecraft server by launching minecraft, clicking multiplayer and connecting to localhost

If you can connect, you have done it all right!

 

Plugins?

To modify the experience for your students you can use plugins. These are modifications to the server developed for free by members of the community using the bukkit API. To add one, you simply download its .jar file and drop it into the plugins folder inside the server folder. Reboot your server and it will auto load on startup. Keep an eye on which version plugins were developed for, some older plugins may not work on more recent versions of bukkit. Most plugins work perfectly fine, RaspberryJuice for example was released 2 major releases back and it still works perfectly fine. Make sure to read the documentation that is on the plugin page if you are putting any other plugins.

Other stuff you need to know

You may want to edit some configuration text files, these are auto created when the server starts. The server.properties file is the main config file for the server. Details of it and its settings can be found at http://www.minecraftwiki.net/wiki/Server.properties

Minecraft servers have a built in permission system that is rather simple, you have 2 levels.

  • Player – can build, mine and play as a normal player
  • Op – (short for operator). The Op has full power over the server, can spawn in blocks, can change to creative mode (fly and infinite blocks) and can stop the server.

To add yourself as an op open the ops.txt file and add your name on the first line. You can also add it ingame and from server console.

Commands

The server is controlled via a series of commands, a user at the console has full permission to type any command, an Op ingame can type most commands and a play can type barely any.

To type a command ingame you prefix the command with a /

For example /stop from ingame would shut down the server. At the console you only need to type in stop and hit enter and the server will shut down. Make sure to give it a min to save the map.

A full list of commands can be found at http://www.minecraftwiki.net/wiki/Commands

You will need to download the minecraft pi version to grab the api folder which contains the python library, drop the api/python/minecraft folder into the base directory of your server. Then follow the normal minecraft pi guides but make sure to save your python scripts in your server base directory

Server is red World data files are grey Some of my python files are green API folder is yellow Text files to worry about are purple Stuff to ignore is orange
Server is red
World data files are grey
Some of my python files are green
API folder is yellow
Text files to worry about are purple
Stuff to ignore is orange

Each student will need a mini server for themselves, you can create the folder, zip it up and put it on a pendrive or shared network space and let them grab it, you dont need to include the folders in grey as the server will auto generate new worlds if no worlds exist.

Also keep in mind, if students know other students IP addresses, they can connect to each others server or write python scripts to do stuff to other peoples servers, it is up to you if you want to allow them to find out each others IP addresses 🙂

With a server running, connect to it with your client and you are good to go, create some python scripts!

Resources

http://blog.whaleygeek.co.uk/minecraft-pi-with-python/
http://www.stuffaboutcode.com/p/minecraft.html
http://arghbox.wordpress.com/2013/06/13/programming-minecraft-pi-with-python-early-draft/

 

 

Lego Pibot revision 0.2

 

I have been working away at my Lego Pibot recently and now have something to show for it.

I rebuilt the entire thing making it more efficient in turning, it uses a towering design and is more modular. It has 4 levels with batteries, pi, breadboard and camera.

It also has support for an additional attachment on the front, so far I have used that to attach a lift-able pen on the front to draw over paper (turtle style). Finally I have added space for a breadboard and also added the extra motor for rotating the webcam.

All the electronics are the same as the first Lego Pibot with the exception of the additional motor and the breadboard for prototyping. i have also added a cheap ultrasonic sensor off eBay to it but am having issues with it right now.

What isn’t shown in the video is the wiimote support I have added. I have written an additional script for controlling the robot with Bluetooth using a wiimote.

When it is finished I will post the source code, as normal, it is in python.

Also new is the addition of scratch controlling. The robot can be really easily controlled by scratch GPIO making it really simple to write control programs.

 

As normal, if you have any questions on this, post a comment below or on the video.