I was fortunate enough to interview the author Sarah about what excites her about computer science and engineering, her hopes for the future and of course the book The Code Witch:
Friday, 31 May 2013
The Code Witch: A Novel by Sarah Sterman
There are just not enough teen fiction with coding heroines in them. FACT. The Code Witch is about to change all that. A kickstarter project to get a work of fiction published about a problem solving teenage girl called Ada.
Saturday, 23 March 2013
Little Light Bulb Book of Ideas with Bare Conductive Ink
What you will need:
- A Bare Conductive Pen or Bare Conductive Paint and a brush
- An LED (preferably in yellow)
- A 3V cell battery with pins
- A paper notebook
- A pencil
- Scissors
- A pin
- Sticky tape or glue
- Your imagination :)
To make the front cover of your paper notebook more interesting first decide on a design. Remember that your circuit must be a continual line with a start point, an end point, and a space to put the LED in. It is best to start and end your circuit at the edge of the book where it opens, so you can add a switch. As my book is going to be full of ideas for projects, I decided to use the word 'ideas' in my circuit.
The next step is to use the Bare Conductive ink/paint to draw your circuit. Then leave it to dry.
Whilst waiting for your paint to dry you can start to make the switch that will power the led on the circuit. Take a small piece of card and fold it into half and half again. Check to make sure that it is the same width as the break in your circuit. Unfold the card, and place the cell battery onto the second square in from the right.
Take your cell battery and note on the card which side is positive (+) and which is ground (-). Mark where you want to put your battery and using a pin make two holes for the pins of the battery to go through the card. Once the battery is fitted to the card, carefully pull back the legs and using some Bare Conductive ink or paint make two blobs on each of the legs. These will be the contact points. Leave to dry.
Once the circuit on the notebook is dry, you can colour in any drawings or lettering not part of the circuit. When the ink is dry on the battery you can fold the paper over and glue or tape it together and add it to the book (see video). Mark onto the book which point will be positive (+) and which will be ground (-) This is important because it will affect which way we place the LED.
Finally we need to add the LED to the circuit. Make sure that the longer leg (+) will link to the same part of the ink circuit that leads to the battery + leg, and that the shorter leg (-) is on the other side leading to the battery - leg. (see video). Once you are happy it is the right way around, bend back the legs and cut them to fit, making sure all the time that you know which leg is which. Using Bare Conductive ink, paint over the leg onto the dry circuit. Hold the LED until the ink is dry enough to hold it by itself. Leave to dry.
To test that your circuit works, place your made switch onto the contact points of the circuit and your LED should light up. If it does not then maybe your LED is the wrong way round, or there is a break in your circuit, or perhaps your battery is not making contact with the circuit.
For more tutorials and ideas on how to use Bare Conductive check out their website tutorial page.
Wednesday, 13 March 2013
Suzy's Story - Uncharted Computer Science
Suzy Race is the young representative for British Computer Society in Oxford and works for a software company called Relayware. She also volunteers as a STEM ambassador speaking about her experiences to young people. Suzy has kindly written a post about her journey into Computer Science and hopefully it might inspire you!
“I spent my evening last night eagerly watching my boyfriend play the well-known console game- Uncharted 3 and wondered why after 2 hours of playing he could still be shouting at the computer in frustration? I realised this was the human instinct to succeed when faced with barriers or confusions. The story of Uncharted 3, I can (surprisingly) relate to my own journey to be a lover of all things techy.
I would like to tell you a brief story that involves goodies, baddies, puzzles, sword fights and collecting treasure along the way (it does have a happy ending.. and no one dies).
The story begins at 13 in an unfamiliar jungle environment surrounded by dial-up internet connections linking me to a maze of information and games to distract me from the on-going battle with homework (you can imagine at this stage my parents are the badies not understanding that reaching level 5 in International Go-Kart Championship is far more important than Alegbra equations).
I continued to work my way through school reaching each level and gaining the points I needed to continue onto the next stage in the story (sound familiar to Drake and Sully?!). At 16, once I had completed my GCSE’s I was faced with my first major puzzle… pick the right A-levels for University.
A puzzle that is still well renowned for being one of the toughest at such an age. At 16, you live to plan the next weekend not what you want to be doing after completing 3 years at University. The school I attended did not offer ICT as a full A-level. Similarly, back then you could not study what I now know as “computing” today. So for a self-confessed computer geek there was no other option. I took the option to study Spanish, French, Geography and Design Technology and leave the world of computing behind. As I boldly stepped into a new world of language games and geographical formations I never lost my interest and passion in solving computer related tasks.
The next stage of the puzzle was going to University and getting a degree. At this stage the idea of doing computing was a distant memory and certainly nothing I considered or was discussed as an option. I continued on to explore a new map at Southampton University doing a degree in Population Sciences. After two years of badies and sword fights I took a year out and worked for Unilever as a Business Analyst. During this year of high adventures to America and beyond.. I found the hidden treasure I had been looking for the whole time. A key to open the door into the world of Computer Science. I took a detour and left the Southampton map and I joined Oxford Brookes University to start and complete a degree in Computer Science.
I have now reached a stage where I have collected my treasures along the way including being the Young Representative for British Computing Society Oxford, local STEM Ambassador for young people and having a job as a Graduate Trainee for a software company in Oxford; Relayware.
The moral of the story… I wish computing had been pushed at school. Many forms of computing or ICT are the basis to most things that we touch, interact with and buy..how can this not be fundamental to the teachings of the next generation of users? Today you cannot escape a social interaction without mention of the internet, a smart phone or a technological invention. Therefore, we must act on teaching youngsters how to develop, manage and safely use any technology. I have engaged in helping with this by becoming a STEM Ambassador to teach youngsters what I love about the world I work in.
The end of the journey is not yet known……"
Monday, 18 February 2013
Create your own comic strip using HTML markup
Check out my video to learn what HTML is, how to create a simple page, and how to use cmx.io:
More importantly though, I need some help making a decision:
My friend thinks that I should wear a cape in my videos like a super hero. I'm not convinced. Obviously I like to think my arch nemesis is BAD ICT LESSONS, but I think a cape is a little much. I've decided to put it to you my audience. Vote now: cape or no cape!Saturday, 19 January 2013
Electronic Textiles with Geek Gurl Diaries & LilyPad Arduino
What you will need:
- LilyPad Arduino Simple or main board
- FTDI Basic Breakout and a USB cable
- ProtoSnap LilyPad Sewing Kit
- LilyPad Coin Cell Battery Holder
- LilyPad Button
- LilyPad Slide Switch
- 5 LilyPad White LED
- A bobbin of conductive thread
- A coin cell battery
- A cushion cover and some felt sheets
- Sewing needle, pins, and scissors
Sewing:
First decide on your design and create it using felt and fabric. I decided to use the Geek Gurl Diaries logo and recreated it by printing a template onto paper first, cutting it out, pinning it to felt before cutting it out and gluing it together. I also sewed a background star shape cut from cotton fabric onto the cushion cover.
Once your cushion cover is prepared sew the LilyPad Ardunio Simple Board to the inside of the cushion cover using conductive thread and the Lilypad coin cell battery holder from the ProtoSnap kit. It's very important that you sew a connection between the coin cell battery holder's minus (-) ground to the LilyPad Ardunio simple board minus (-) ground and again for the positive (+) between both boards. Once you have finished sewing you can test that the connection is good by putting your battery into the battery coin cell holder. Your simple board should flash to indicate that it is working.
The next step is to decide where you want your LED lights to be and sew them in place. Much like producing a standard circuit, you must connect the positive (+) of the LED to a number on the LilyPad arduino board and the negative (-) or ground to the negative (-) of the LilyPad simple board. Once you have sewn one LED you should test to ensure it is working by placing your coin cell battery into the holder, and the light should come on if your circuit is good. Continue to sew all your LED lights onto your cushion cover being careful not to have the threads crossing each other or touching as it will short the circuit. Sometimes it's just best to sew the long way round!
Connecting to a computer to program the lights:
Now that all the sewing is complete and we have tested that our circuit is good and the lights work, we need to connect the Lilypad board to a computer using the FTDI Basic breakout and a USB cable. Once connected you will need to install the Arduino software to be able to program the lights. This tutorial explains how to install and configure the software for your Lilypad. Once installed run the arduino software, and select Tools, Serial Port, COM3 and then select your ardunio board from Tools, Boards. We want to test if we can upload a program to our board. Click on File, Examples, Basic, Blink. When the example code loads you will need to make sure that you change the number of the LED pin to match the numbers on the Lilypad board that you have sewn the leds to. Then compile the code and upload it to the board.
Once you are happy that your LEDs are working, we can start to generate our own code. In a new Arduino window write the following:
void setup() {
pinMode(19, OUTPUT);
pinMode(17, OUTPUT);
pinMode(10, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
}
pinMode(19, OUTPUT);
pinMode(17, OUTPUT);
pinMode(10, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
}
Making sure to change the pin numbers to match the numbers on your Lilypad board that you have sewn the LEDs to.
Now we have told our program which pins to use we need to tell them what to do. I want mine to come on in order one after the other so underneath the first part of code I need to add:
void loop() {
digitalWrite(19, HIGH); //This turns on the LED
delay(1000); //Waits for a second
digitalWrite(19, LOW); //Turns of the LED
delay(1000); //Waits a second
}
digitalWrite(19, HIGH); //This turns on the LED
delay(1000); //Waits for a second
digitalWrite(19, LOW); //Turns of the LED
delay(1000); //Waits a second
}
Now I've written it for one LED, I can copy and paste the code, changing the number of the pin as I go along, so that finally all my LEDs connected to the Lilypad board will come on in sequence. Compile the code and upload it to the Lilypad.
Ta da, your very own electronic textile project! Now you know some basic tips and tricks you could work out how to program the Lilypad to have the lights come on for a second randomly rather than in sequence or you could add more functionality with sensors.
Have a go and see what fun you can have! Please support my work getting more teenagers (especially girls) into tech, by watching, liking, commenting and sharing my videos
Thanks,
Carrie Anne.
Sunday, 30 December 2012
GGD on RaspberryPi.org
Today the 'Little Box of Geek' Raspberry Pi and thermal printer project featured on the front page of the Raspbbery Pi Foundation official website.
http://www.raspberrypi.org/archives/2953
It's been a very exciting and busy day with many people getting in touch via twitter, facebook and YouTube to offer their support for my work.
If you want to get in touch, have ideas for episodes or suggestions for improvements check out:
Subscribe to the Geek Gurl Diaries YouTube Channel
Facebook Page
Twitter accounnt @GeekGurlDiaries or @MissPhilbin
Check out the Geek Gurl Diaries Website
Many thanks to everyone at Raspberry Pi for their kind words and support, and welcome to all my new viewers and followers, I hope I do not disappoint!
http://www.raspberrypi.org/archives/2953
It's been a very exciting and busy day with many people getting in touch via twitter, facebook and YouTube to offer their support for my work.
If you want to get in touch, have ideas for episodes or suggestions for improvements check out:
Subscribe to the Geek Gurl Diaries YouTube Channel
Facebook Page
Twitter accounnt @GeekGurlDiaries or @MissPhilbin
Check out the Geek Gurl Diaries Website
Many thanks to everyone at Raspberry Pi for their kind words and support, and welcome to all my new viewers and followers, I hope I do not disappoint!
Friday, 28 December 2012
Little Box of Geek Project - Part 2
Using the printer base as a template, draw around the printer using pen onto the cardboard box where you want your printer to be. Using a screwdriver or pencil, pierce the box so that you can comfortably get scissors inside to cut out the hole for your printer to sit in.
Do the same again for your button. (I found that a one pound coin was the same size as my button so I used it as a template to draw around.) Wrap your box in colour paper or print some labels to make it look more interesting.
We need to create a program to print on the Raspberry Pi:
First test that the printer works by writing a simple 'Hello World' style statement. Save as printer1.py (in the same directory as the printer.py file we used in Part 1 of this tutorial because it is importing from this file) and execute the program by typing python printer1.py in a terminal window) making sure that your printer is attached to your pi:
import printer
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
p.print_text("\nHello Geek Gurl Diaries viewers!\n")
p.linefeed()
p.linefeed()
p.linefeed()
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
p.print_text("\nHello Geek Gurl Diaries viewers!\n")
p.linefeed()
p.linefeed()
p.linefeed()
If that works, great! But what happens if we write a really long string? Will it go over multiple lines, or will the text be cut off? We should test it by modifying our code and saving it as printer2.py and executing it.
import printer
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
p.print_text("\nHello Geek Gurl Diaries viewers!What happens if we try to print a longer sentence or paragraph? Will it go over multiple lines or will the text just be cut off? It's good to test these things you know!\n")
p.linefeed()
p.linefeed()
p.linefeed()
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
p.print_text("\nHello Geek Gurl Diaries viewers!What happens if we try to print a longer sentence or paragraph? Will it go over multiple lines or will the text just be cut off? It's good to test these things you know!\n")
p.linefeed()
p.linefeed()
p.linefeed()
It seems clear that we need to use a text wrap module to ensure that all the words fit onto each line and are not split down over multiple lines on the printout. Adapt the code in printer2.py to include the textwrap module and save it as printer3.py:
import printer, textwrap
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
wrapped_text = textwrap.fill("\nHello Geek Gurl Diaries viewers!What happens if we try to print a longer sentence or paragraph? Will it go over multiple lines or will the text just be cut off? It's good to test these things you know!\n")
p.print_text(wrapped_text)
p.linefeed()
p.linefeed()
p.linefeed()
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
wrapped_text = textwrap.fill("\nHello Geek Gurl Diaries viewers!What happens if we try to print a longer sentence or paragraph? Will it go over multiple lines or will the text just be cut off? It's good to test these things you know!\n")
p.print_text(wrapped_text)
p.linefeed()
p.linefeed()
p.linefeed()
I wanted my box to print geeky statements at anytime. I decided to use the fortune program. First Install Fortune and then install fortunes to get options to select categories of fortunes:
sudo apt-get install fortune
sudo apt-get install fortunes
sudo apt-get install fortunes
By looking at the manual for fortune it is possible to use only short statements which are more suitable for my thermal printer using -s and to get specifically scientific fortunes I can use 'science'
man fortune
In a terminal window I can check to see what statements the fortune program will give me by typing:
fortune -s science
Now let's modify our program to move away from using a fixed string and instead use a Unix shell to direct the output of the fortune program to the input of our printer program. We can also add some functionality to wrap the text over 32 characters (thats how many the printer prints per line!) so that our printout looks even better. Save as printer4.py and execute:
import printer, textwrap, sys
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
unwrapped_text = sys.stdin.read()
wrapped_text = textwrap.fill(unwrapped_text, 32)
p.print_text(wrapped_text)
p.linefeed()
p.linefeed()
p.linefeed()
p=printer.ThermalPrinter(serialport="/dev/ttyAMA0")
unwrapped_text = sys.stdin.read()
wrapped_text = textwrap.fill(unwrapped_text, 32)
p.print_text(wrapped_text)
p.linefeed()
p.linefeed()
p.linefeed()
Test out this idea by running a terminal and typing:
fortune -s science | python printer4.py
Adding a button:
Now that our printer is printing what we want it to we need to add the button. Using a breadboard, a 10k resistor, and 6 jumper cables attach the button to the breadboard to the raspberry pi GPIO pins (I learned everything I needed to know from Adafruit Raspberry Pi GPIO Setup and Adafruit Sounds and Buttons Tutorial):
We need to write a script to detect when the button is pressed. Using a text editor type the following and save as GPIO_test.py (remember indentation is important in python!) :
#!/usr/bin/env python
from time import sleep
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
while True:
from time import sleep
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
while True:
if ( GPIO.input(23) == False ):
print("Printing")
os.system("/usr/games/fortune -s science | python ggd_printer4.py")
print("Printed")
sleep(1)
Finally, we want the printer program to run whenever the button is pushed and the Pi is on. Therefore we need to modify the /etc/rc.local file to reflect this by using a terminal window:
sudo nano /etc/rc.local
Add this before exit0 making sure it points to the correct location of your GPIO_test file:
cd /home/pi/printer/ && python gpio_test.py &
Once you have tested that it all works, transfer your pi, printer, and breadboard into the prepared cardboard box and make sure everything is plugged in and sits well. Power it all up, give is a few minutes, then press the button and receive a piece of Geek wisdom.
I hope you have found this tutorial useful and enjoyable to do. My box was an idea born from seeing @blogmywiki's Little Box of Poems which he created using an Arduino. It would not have been possible without the support of Giles and @asbradbury (the best Pi Code Monkey)
Please support my work getting more teenagers (especially girls) into tech, by watching, liking and sharing my videos.
Thanks,
Carrie Anne.
Subscribe to:
Posts (Atom)
