Thursday, May 7, 2015

Sending a Raspberry Pi into Space(ish)

Day 1: The project team is formed
I've had a bunch of Raspberry Pis for a while and the girls in my coding club haven't really been interested. Today all that changed. I have found details on the Dexter Industries Brick Pi site for how to make a basic unmanned flight into the stratosphere with a Raspberry Pi. Once I showed them the video the girls were hooked.
We have now formed a team who are interested in running the project and there are some keen girls who have never programmed before wanting to have a go. Our MVP is to get a Weather Balloon launched with a Raspberry Pi payload, setup to take timelapse photographs and send GPS signal back to the ground crew -- and then to get it all back again at the end. There are some suggested features regarding Go Pros, altitude sensors and radio transmitters. One of the girls was so worried it would conk someone on the head that she wants it to play a "Get out of the way" sound on descent. We have Aviation rules to research and some GPIO programming to learn. We also need some awesome maths nerds to calculate how long it should be up there and where the heck it will come down.

This is exciting!

Thursday, February 19, 2015

Free Computer Posters

I don't know if this is useful to anyone. I need to decorate my classroom for an upcoming open day and I'm notoriously bad at printing stuff out. I don't have any budget for posters but I do have an a3 colour printer at my disposal so I knocked up some posters on Adobe Illustrator. I thought people might like copies for their own classrooms. I would definitely prefer these to be student work but it's only week 4 and we don't have anything as yet and I left it a bit late to ask the hobbyists. Comment if you use them. Creative Commons license Share and Share alike.

                   

Click on the thumbnails for the PDFs.
Enjoy.

Wednesday, February 11, 2015

Showing off some great kid work

At the end of last year I had my Year 10 students combine their multimedia skills and their programming skills with a Ren'Py project. The project brief was to create a "choose your own adventure" story using creative commons licensed images and reader interaction. term 4 flew by as it does each year with exams and final assemblies but a couple of the students finished a really high quality product. I have posted one here with Elizabeth's permission. I hope to post another one when I get it.
This is called "Plane Crash" and it's pretty well explained in the game what's going on. Be careful, there are a number of ways to die.

This is the link to the zip that installs the game files.

Please comment if you get a chance to download and play it so I can give the feedback to Elizabeth.

Tuesday, January 13, 2015

NCSS 2015 - Day 10

Amazing Teachers!!

We made it! 

There are some very tired people today; both tutors and kids. My 3 hours of sleep gives me a distinct edge over many of the others in my group so I'm hoping to get some Arduino play in. 
8:00AM: I got my cronut!
9:00AM: Roll call and the nutbush before going to SIT. The thinking may be impaired by lack of sleep already. Nutbush in the centre of a hall with sleeping heads on the floor surrounding is not a little fraught with danger.
9:15AM (ish): Head down to SIT. The kids in our group finished off the videos for our team presentation and I got to play with my joystick control code for the robot. Jim, who is extraordinarily generous with his time and expertise, scribbled all over this paper for me. I'm hoping I will still remember the gist after more sleep. If anyone cares it's the difference between switching and amplification using a transistor. Playing with Serial when pack up time was called.
11:30AM: Photo time! Teachers are awesome and these are the awesome teachers (except for Fiona) who have spent the last 10 days out of their depth.

1:00PM Lunch.
Slight holding pattern now.
2:00PM Final presentations at the new Charles Perkins Centre at the other side of the uni. Nearly there now...

The presentations are videos created by each group during the challenge; one covers the project they've been working on and one covers some aspect of the camp they're interested in. Our team did our project and "Life in embedded." The videos were really fun.

Highlights of the videos...
Group 1's project was a "Quest" sharing social media web app where you could set up a "Quest" or event and you can search events in a particular area (shown on a map).
Group 2's project was a social media web app (yes there is a theme) called Lyar where you get to post 2 truths and a lie and connections need to try to detect the lies for fame and glory.
Group 3's project was a social media web app where you can watch youtube movies synched with friends over the internet with an inbuilt chat function. this one was like magic to me. I have no idea how they hooked into the Youtube API so effectively in such little time. Go group 3!
Group 4's project was a social media web app running a trivia competition called "Quizzi" with interactions and competitions. Users can also add questions.

The other 3 teams, including mine were in the embedded stream so they weren't really showing their "product" as that was last night at the olympics but they were showing how the team worked. the videos were great and I might be biased but I think Group 7's were the best! Especially "Life in Embedded".

My family came to see the end of the presentations which was brilliant. Time to go home and recover/sleep now. I believe this post has been twice as many keystrokes because of all the typos I've had to undo. See you everyone, meet you on the web! I love this program (http://ncss.edu.au/) if anyone gets an opportunity to come, they should.

NCSS 2015 - Day 9

By Bilboq, with color modifications by Singularity Utopia. [Public domain], via Wikimedia Commons

Delivery Day!!! 

If I survive this next 24 hours intact I have promised myself a cronut from the coffee shop (Campos) that we get our coffee from every morning. 
9:00AM: No Lecture in the morning. It was all about the project. We spent all morning working on getting the various bits of our project working together and building the bits to strap the sensors to human bodies.. 
11:30AM: Bored. This doesn't seem right, I should have something more to do. Started mucking around with my own robot.
12:30PM: The students all have mock interviews with sponsor organisations such as Atlassian, Freelancer, Google and Wisetech Global where they get put through 10 minutes of a legitimate inteview process and then get some feedback. I went into an interview to get some advice from some guys from Google as to what we can do to better prepare our students for this type of experience. They suggested getting kids to practise in timed conditions. They expressed concern with not being able to get enough Software Developers of a high enough calibre, I asked if that meant we needed to try to raise the calibre of all graduates and they seemed to think that raising the volume would suit them better so that the number of candidates in the top n proportion was greater. This seems kind of backwards to me.
12:45PM: Back to Women's college for lunch
2:00PM: Back from lunch. Decided to experiment with adding a digital accelerometer to the project to detect our "bow" movement. It started looking really good...

About afternoon tea time I had to discard my idea because the Serial Monitor stopped printing out my x, y, z, status and I was keen to actually get something working - I knew how to do that with the analogue accelerometer.
4:00PM Had to pack up and head to Engineering for a lecture by the head of the program Associate Professor @DrJamesCurran on his area of research and all you ever wanted to know about entrance scores to uni. (Arghgh! I want to start fixing my accelerometer issue but Arghgh I want to see the lecture... off I went to engineering.) Ever wondered why Google translate doesn't do a brilliant job of translating between languages? It turns out it's really hard! Go figure.
6:00PM: Dinner
7:00PM: Back at the labs. 2 hours to show a working demo (we can continue to tweak after that). I got the bow working with the second accelerometer and then went down to engineering to find out about the DropBears team in First Robotics. (https://firstaustralia.org/get-involved/start-frc-team/) #AllTheCoolThings
9:30PM: We got a bit of an extension!  It now appears we have jump and punch being detected and sending te correct serial messages to two robots. W00t! Now to add in my two moves and we'll have a fully functioning game. We even have really pretty light up paper light diffusers.
10:30: ROBOLYMPICS! 3 embedded groups
split into 10 embedded games compete for the title of "We made the Python kids look most silly!" It's a fierce contest...
Thanks to Alex whose phone cam
worked better than mine.
Massive Success! Our team's robot competition "Bop it!" was a roaring triumph. The Python teams competed to race the robots to the finish line. Our robots lit up with a red, green or blue light which indicated the move the competitor needed to make (punch, jump and arm raise from their side respectively). If they got the move correct in the time allocated their robot went forward and if they didn't, their robot went backwards. The aim: get to the finish line. It went off brilliantly and victims (um, I mean competitors) were jumping and punching and lifting with abandon. I've attached a video below. I was really proud of our team and we managed to debug the last of our glitches (that the robots appeared to go backwards randomly at some point in time) while everyone was playing - overflow error - newbie mistake : )

12:30PM: Pizza! After the Robolympics we had a pizza break. So... much... food... We then did a tidy up of the lab to give it to the web teams who are still working on their projects.

Jim's Lecture: At 1:10 we had our final Arduino lecture for the program. We can apparently use any code we like if we have some functions that will upload it to the boards - so excited! I can use something that knows how to format code properly. We then did an overview of some of the available boards.

  • Leonardo -upgraded Uno - 2 serial ports ($40?)
  • Aduino Pro Mini - teeny tiny ($5!)
  • Arduino Due (32 bit, 96k RAM, 54 pins ($60)

Supplies!
We then talked about possible future projects and Jim told us about his projects he uses with his sailing. "Sometimes you just have to do the practical thing that works rather than doing the best possible thing. Wires are awesome because they work."

2:20AM: Tutors embarrass themselves There is a tradition at NCSS that the tutors put together an entertaining video as a surprise for the campers at 2AM. This year there were three and a returning students video. They were great! Another rason to come if you ever get an opportunity. Things go downhill pretty fast after that and it's not long before people are heading back to the college or falling asleep on the floor.

 4:00AM Crawl to bed


Sunday, January 11, 2015

NCSS 2015 - Day 8

It's the last day and night before the all-nighter. Last year I lasted until 3:30AM on the all-nighter. There were a bunch of the kids that made it but many of them slept under desks and that's just a little cheating. Not sure I'm going to make even 3AM this year. I'm already so tired! Expect today's nites to be shorter and maybe less lucid than previous.

Thank you Vijay garg 10 for the use of your curve.
Lecture 10: DAC
We talked about the trade-offs of Accuracy vs Cost vs Size of components. The plot precision is obviously limited by the clock speed of the sampler and the time intervals cannot change within the samples. Emma gave us some code for writing our own Digital to Analogue converter using PWM (some of which we've encountered before) that would handle two PWMs. She then went on to signal processing and talked about sliding window average using a set of data in an array with a moving starting pointer. (This was pretty geeky stuff.)

Lab 9: Team meeting. What is Minimum Viable Product? We discussed how to scale back our "Bop-it" idea so that we can have something made and into testing and then move onto the bits that are less necessary. We managed to split our team of 6 into 3 sub-teams, each with a task for the day. Team 0-A were working on detecting a jump spike on the accelerometer, team 0-B were working on getting the robot to take a data stream and move accordingly and team 0-C (my team) were working on accelerometer calibration (to remove noise) and then working on an arm lift. Despite a teacher meeting interrupting our play and having to barricade our circuitry so noone tried to pack up before we were finished, we did get it done!

Lab 10: More of the same. It's all about the project from now on. I was pretty happy that I actually got the calibration and arm raise detect working. Electronics is still frustrating! You can see a buzzer on my breadboard that beeps an A above Middle c when you get your hand into the starting position and then plays the c above middle c (ish) when you get to the correct finishing position. Yay!

Interesting Stuff Learned: Windows 8.1 completely failed to work on me twice so I ended up using Fedora (they have dual boot in the labs). This was interesting and now that I'm a crack linux user I can, of course, feel superior to everyone around me. : )
I also learned about using Git with terminal. I have used github before but not quite so text-basedly. I'm so #l33t

Evening Activity: The Simulation: This is an evening of the geekiest theatre sports of all time. The teams compete to do recognizable renditions of computing processes in timed conditions. It's bedlam! In an effort to maintain full dislosure, I missed it, going out to watch Into the Woods at Randwock Ritz with my family. It's been pretty hard being without them this year so the visits are very welcome.

Murder Game 2.0: still undead. I think everyone's too busy/tired to be playing.

NCSS 2015 - Day 7

Thanks to EFF-Graphics for the use of their image
Back to Lectures and Labs.

Lecture 8:
Covered the way Bluetooth (named after a scandawegian pirate king Arrr!) works. There was talk about stacks and more acronyms than should rightly be introduced at one time. I feel fuzzy about this stuff (bad war flashbacks to Data Comms at uni). I did get the stuff about AT commands and their syntax (a good this to get). It's necessary to get the Bluetooth modules talking to each other for the project.

Lab 7: 
BLUETOOTH! We took a pair of Bluetooth chips (master and slave) and got them set up to send and receive messages. Much of the lab time in the morning was taken up with planning the video our team is making.We then only just had the circuit set up to send a signal from a soft potentiometer across Bluetooth to a buzzer on the other circuit when time was called D'oh!

Soft potentiometer in the foreground and buzzer in the background.
Lecture 9: ADC (Analogue to Digital Conversion). We talked about the requirements of ADC and it was really interesting to think about sampling in terms of the electronics rather than just generally. A continuous stream of data (Analogue) is not possible to represent on a digital device without infinite memory. The ADC has a resolution and a quantisation. Resolution being the range of values and the precision of those values. Quantisation is the clock speed and the resulting sample rate. (If you don't need that level of accuracy, you can use less than the maximum sample rate e.g. temp sensor for an airconditioner)

Out of interest, even exciting looking insects like Sydney Uni!
Lab 8: We get our teams and decide projects and get our ROBOTS! This lab was a time of pitching and negotiation between team members. There will be a Robolympics on the all nighter (Monday night) and we will be having volunteers from the Python teams to compete in our "challenge". First we had to define our challenge. Our team came up with 2 nice ideas: one was a robot race between 2 robots driven by people with arms outstretched (think zombies) left arm will steer depending on angle and right arm will drive speed forwards base upon up down movement -- in order to make it trickier, right arm will be weighted by something. The other idea was to have a "Bop it" type game where in stead of the small inputs that the game "Bop it" uses, we define big movements like windmill arms, planking, jogging etc and tell the user which to do based upon a light on the robot. The robots moves along the floor a set amount based upon the number of moves done in an amount of time and then the winner is the robot that reaches the end first. After much discussion our team went with the "Bop it" idea. (This is still in fleshing out stage so some of this might change.) we then got our robot moving around the table and following instructions. That's half the project done right?

Interesting Stuff Learned
https://www.crowdsupply.com/chibitronics/circuit-stickers
https://www.kickstarter.com/projects/electroninks/circuit-scribe-draw-circuits-instantly

Evening Activity: Cryptography Challenge. I have done this challenge twice and both times I have completely failed at it. I don't think I'm going to be working for ASIO any time soon. There are a bunch of teams who have a tutorial to follow and a two computers and one is meant to be used to decrypt existing codes and one should be used to write encryption functions. I had a really good idea for a decent encryption but based on tiredness, logic errors and lack of proficiency with Python I got it debugged just after the closing bell. (2 hours of frustration!!) I don't deal with that level of frustration well. Congratulations to all the amazing teams who managed much more than I did.

Murder: I am now undead.

Saturday, January 10, 2015

NCSS 2015 - Day 6

Thanks @takafael for the use of the photo:
https://twitter.com/takafael/status/553389458255396864/photo/1

Excursion Day!

Today is a different format. No lectures and labs but tours of the big sponsors and lots of food. I didn't go on the tour this year because I went last year and was desperate to try to de-rust some of my python skills before the evening activity but i've polled some students and teachers for feedback. In general it was a fantastic day.

Morning: Went to Wisetech Global for second breakfast, a short talk and a tour. Wisetech Global are an Australian software and embedded systems company that helps companies to manage logistics of truck fleets and deliveries and things like that. It's great to see a proudly Australian tech company. It really appealed to the the embedded kids to see real embedded systems being tinkered with.

Middle of the day: Went to Atlassian for a talk, tour and lunch (pizza!). Atlassian is an Australian software development company that develops software to help software development teams. Their most famous product is JIRA. They're pretty famous around the world (and keep being mentioned in my Educational Leadership university subjects) because they have an open attitude to smart people using some of their time to explore new ideas. They also have "Ship-it" days which used to be called "Fed-ex" days because something was delivered overnight. Completely subjectively, Atlassian appears to have won the "awesomeness" award among those polled. Everyone wants to work here.

Afternoon: Went to Google for a talk and tour. I think everyone knows Google. Feedback was that it's completely understandable but a bit of a shame that the tour was of the building rather than of any of the work spaces.

SCHWAG! The kids get given branded merch at each company and they love it! T-shirts and bags and lollies Oh My!

Important Thing Learned: If I stay back to try to bone up on Python I apparently get distracted by the emails from work.

Light interlude: After everyone came back from the tours we had a fun session with maths comedian @mathemaniac.He was great fun and seemed happily surprised to be talking to a non-standard audience. There may have been some math-nerds in the room.


Evening Activity: Programming Comp! Yay!
The kids are mixed up into groups of 3 or 4 and get 2 hours to answer 20 questions. The answers are usually short and can be scribbled onto a slip of paper and handed in. the way to solve the problem to get the answer is *much* less short. We had two teacher teams and we did pretty well considering we don't tend to play around with this stuff every day like many of the kids do.
Examples of tricky questions included tree traversal, regex search and analyse. There were some easier ones and you can use the internet. I barely registered there was a score until the end because we were all working so hard. One of my fellow teachers said afterwards "So that's what 100 engaged kids looks like."

Great Day!

Murder: I'm still a human and alive but I still don't really get how it works. there doesn't seem to be a lot happening this time around. I heard a rumour that there was a mass attack planned by either the werewolves or the vampires at the School of IT today. See what happens.

Thursday, January 8, 2015

NCSS 2015 - Day 5

By Kaj (Own work) [CC BY-SA 3.0
 (http://creativecommons.org/licenses/by-sa/3.0)],
via Wikimedia Commons

We have a Project!

Lecture 7: An overview of the project and some other stuff.
In light of the many health Apps and embedded systems (think fit bits) that are around. We're going to be doing a project that takes inputs along the theme of health and uses one of the Boe Bots (http://www.adafruit.com/product/749) to manage the output. Something along the lines of "balance on one leg to make the robot go forward". Only our idea will be better. 
We talked about the kinds of sensors health apps use and these include accelerometers, glucose trackers, heart rate monitors, gps positioning etc. We won't have access to many of these but I'm happy I got my accelerometer working yesterday. Now we have to do some bench-marking and work out what shape of information we want to track (e.g. if we want to track steps we need to see what a step looks like and define a range of movement).

I want to do something like a "Bop-it game" (http://en.wikipedia.org/wiki/Bop_It) where a speaker plays an instruction (kind of like fast simon says) and the person has to do that movement in order to get their robot to do something and "win". Still working out the fine details so I can pitch it to my team.
I wonder if my attention is wandering because I'm feeling a little overloaded?
An easy day was deserved and warranted.
No labs in the morning - it was the tutors' day off so there were "Master class" sessions with invited lecturers. I didn't realise I was invited so organised to go to the pool. I will try to get some summary information to add later.

Free time in the afternoon. Last year I went to a movie with the teachers. This year I played squash with the tutors. Let me think about which was more relaxing...

Important Things Learned: 
Dr James Curran https://twitter.com/DrJamesCurran really can play squash
That was need a common header file to share definitions between different parts of a project. Also Git http://en.wikipedia.org/wiki/Git_(software)

Evening Activity: Formal Industry Sponsors' Dinner. A great night where teachers, tutors, industry reps and the students all talk and intermingle in a friendly, non-intimidating atmosphere. Well done to the team of organisers. There was a "back of the envelope calculation" where as a group you have to use logical reasoning to come up to the answer to an impossible question. Tonight's question... on Day 1 for the newspaper tower challenge there was a stack of newspaper for each team... if you laid the newspaper short sides together end to end how far would it stretch? 

Murder 2.0: I don't really understand this game but I'm not dead, not undead and have no way of killing anyone. I'm flying under the radar. There appear (from conversations at dinner) to be quite a number of people in the same situation.

NCSS 2015 - Day 4


Lecture 6: Polling again. We've learned about interrupts as a remedy for some of the disadvantages of polling and today we learned about adding timeouts to inputs --> keeping track of time.
millis() is a function that keeps track of milliseconds for the loop function so far. Millis returns a long integer so there is a possibility of overflow (but admittedly not for 49 days!) if statements checking on the value of millis should not have exact values because you can't predict a value of the milliseconds because of the processes coming before, so always use a range.
Then we moved on to communications and I was back in 2nd year uni desperately trying to keep my protocols straight and not doing a very good job of it. We discussed the SPI and I2C (called I-squared-C). These are two protocols for communicating between the Arduino and particular peripherals or other Arduinos. I really wasn't very sure about all of that so I'm going to have to do some research -- and quickly.
By Arvind Sanjeev (http://maker.diyhacking.com/)
[CC BY-SA 4.0
(http://creativecommons.org/licenses/by-sa/4.0)],
via Wikimedia Commons

Lab 5: UART and SPI (Oh My!) We first connected up two Arduinos in pairs and tried to send and receive messages between them in serial. Then we tried to have a button on one Arduino turn on a light on the other Arduino. Success!! A good lab.
The SPI stuff was apparently broken and needed another couple of lines of code which someone was working on. I had some of my questions answered by the tutors and then it was time to head back for lunch. (Two of the boys are trying to hook up two arduinos to play a MIDI rendition of Europe's "The Final Countdown" with full chords. It's a bit of an in-joke but still very impressive in terms of a challenge.


Lecture 7: Theme for this lecture... "You'd better know what you are doing!" Our lecturer keeps saying this about the "relaxed" attitude of the C compiler. There are a couple of instances where we've discussed breaking the program with empty arguments and weird data type assignments and they will still compile but who knows what they'll do in the actual run-time.
First thing we covered was enumerated data types. You can create your own data types for things such as Three-way boolean ("troolean?") like True False and underfined. States of a game or system (vending machine example coming) enumerations are pretty close to named integer value. There is no real object oriented stuff in C. There are some classes that have methods within the language but you can't write your own unless you want to write your own compiler.  Importantly you can enumerate a record (called a structure) and create an array of records.

Vending Machine example: A vending machine is an embedded system that needs to change states at different points. First it's waiting for a wake up signal. Once it's woken with the insertion of a coin it needs to detect the value of the coin. It then waits for another coin. When it receives another coin it detects and then tallies the total, if the correct total has not been reached it continues in this loop. Once a correct value or greater has been received it waits for selection, once selection has happened it then delivers the selection and then tallies and delivers change. Each of these stages need a different set of sensors and actuators so the processor needs to keep track of which ones are needed. This could be enumerated this way...
enum states_vending {
  waiting;
  detecting;
  adding;
  selection;
  delivery;
}
You can then use these in if statements to shift between one state and the next with some simplicity.

Lab 6: I missed a bit of this lab. Some colleagues and my family turned up. I probably needed the break. I got my accelerometer hooked up (wiring nightmare - note to self and everyone else, despite sounding like a good idea staples don't act as wires on a solderless breadboard.) It was just detecting x y z enough for me to show it to my kids before we walked down to Glebe for dinner.

Important Stuff Learned:
sprintf http://www.cplusplus.com/reference/cstdio/sprintf/
String. functions http://arduino.cc/en/Reference/StringObject

Evening Activity: Family came and whisked me away for dinner - Yay! Everyone else had free time including a board game championship.

Murder Game: Dead for most of the day. A new game started while I was at dinner. It's basically the same as the last one except you don't have a specific target which means it's a free-for-all. I'm not entirely sure of how it works (missed the briefing) but there were a couple of people designated vampires and werewolves at the beginning of the game. Here's the bit I'm unsure about...
Vampires turn people into vampires if they "kill" them
Werewolves turn people into werewolves
Werewolves kill vampires entirely
Vampires kill werewolves entirely
People can kill werewolves and vampires if they have some kind of weapon (not literal, there are paper thingies floating around)
I'm not sure what werewolves do to werewolves because I thought they would kill them but there seemed to be a whole pack of werewolves on the prowl this evening. - Pack animals?
I really don't want to be as paranoid this time!

Missing the site visits tomorrow to go for a swim. I saw them last year.

Tuesday, January 6, 2015

NCSS 2015 - Day 3

Thanks oomlout Creative Commons Attribution-Share Alike 2.0 Generic
Lecture 4: We are still dealing with the syntax of the C language. It's tricky to pitch something like this because unlike the Python sessions there isn't a regular versus advanced lecture. I feel it's a bit slow and want more of the electrical engineering to fit in with the labs but there are some non-programmers in the class so that's hard too.

Check out my shiny shiny 3!
I'm think I'm going to do some of the Python activities to prep for the Programming challenge and Crypto challenge to supplement the next lecture.

Lab 3: Was a little disobedient and completed the 7-pin  digital display extension activity from yesterday. I'm pretty happy with it. I need to workout how to use a capacitor to smooth the signal fluctuations on the button but I've put a delay in the software to manage it at the moment.

The proper lab was really interesting. We used temp sensor and soft potentiometer to control outputs, first to read the temperature in the room (mine was incorrect but more about that later) and then to control the output on an RGB LED so that it moved through a spectrum. Missed the extension activities but thankfully I've played with other sensors before.

Lecture 5: Defined #define. If you want to reference a particular pin number throughout the code and you don't want to sacrifice storage to variables or constants you can use #define XXXXX(any string, convention is to use caps) and then the number. This means that the compiler conducts a find/replace at compilation replacing the string with the value, but doesn't need any more RAM to run.. Dealt with function definition and calls. I'd used non-returning functions for the digital display (Note to self: upload interesting code). Interesting note that if the function returns a result then it needs to be defined with a type...

  • int function_name(params) {}. 

Thanks for making this Public Domain Eighthave
Lab 4: A fantastic lab! We used PWM (Pulse Width Modulation) to make a digital signal masquerade as an analogue signal. First we made an LED dim to close to off, close to full power and somewhere in the middle. Then Matt and I set ourselves the challenge of taking input from a joystick to control three LEDs, 1 was binary based on the fire button, 2 were graded based on the x and y inputs of the joystick. That was so much fun! Finally, we just got the buzzer hooked up for experimentation when the end of the lab was called. It was a really irritating noise anyway.

Important stuff learned:
Accuracy vs Precision - Precision speaks about the overall encoding measure accuracy speaks about one individual value.
Map Function - https://www.udemy.com/blog/arduino-map/

Evening Activity: Scavenger Hunt - my favourite! We run through the university grounds looking for clues, challenges and photographs. It was an incredible 2 hours (except it wasn't quite 2 hours because we were back early and got an early arrival bonus).

Memorable moment: Winning the Scavenger Hunt!!

Murder Game: Is it wrong that I keep hiding in my room to avoid my own demise? (Spoke too soon, got killed while showing photographic evidence of the scavenge hunt win... it was almost worth it!)
Murders performed: 1 (it took a very long time to identify the intended victim)

Monday, January 5, 2015

NCSS 2015 - Day 2

Thank you to Afrank99 Creative Commons Attribution-Share Alike 2.0 Generic license
Lecture 2: Going over the C required to make the Arduino do our bidding. A bit revision for me... The Arduino has two necessary functions void setup() and void loop() but you can add more. The setup function allows you to define how different pins will perform. The loop function allows you to define what happens over and over again (all the Arduino can do once autonomous is do the same thing over and over again.) You can nest other loops but once it's got to the bottom it's going back to the top. This explains the need for delays from time to time. 

Lab 1: Beginner circuitry. Hooking up a breadboard, powering an LED, Blinking etc. It was a bit basic. The extension activities had us reading and writing to the serial port which requires the USB cable at this stage but I believe it will be applicable to the Bluetooth portion of the project.

Lecture 3: New Stuff! I encountered some entirely new material! We learnt about polling versus interrupts. The whole time I've mucked around on Arduino this would have been brilliant to know! My Baby Groot project may now be one step closer to fruition. They then did a bunch of conversion of number systems. Finally, we wrapped up learning about volatile variables another crazily useful thing to know. Time to get stuck in!

Lab 2: #TECHWARNING We used a switch to manage an LED programmatically rather than simple circuitry and sent messages to the Serial at the same time. We then implemented a Binary counter for a nibble (half a byte) using 4 LEDs, incremented on the button press. This was a little dodgy, the Interrupt was bouncy and we needed a delay of 200 milliseconds to get rid of the fluctuations. There was some discussion about smoothing the signal with a capacitor.
Source: http://www.texample.net/tikz/examples/seven-segment-display/
I'm really enjoying talking to the tutors about these problems because when it's just you and the internet you can hack workarounds to problems that aren't really best practice. Was just about to adjust the counting program to work for a 7 segment digit display when a teacher meeting was called. D'Oh! I will master you tomorrow 7 segment digital display!

Important stuff learned:
Serial.Read - http://arduino.cc/en/Serial/read
How to write functions - http://playground.arduino.cc/Code/Function
Gangnam style had so many views it caused an overflow error! Not up on internet culture.
There is code for a seven segment display on Nerd Club (http://nerdclub-uk.blogspot.com.au/2013/05/messing-about-with-7-segment-displays.html) but I won't be reading it until I've succeeded.



Evening Activity: Trivia - All students in their teams from the camp, teachers in a team together, tutors in a team together. We came second last and they came last. There may have been some weighting of the answers.



Memorable moment: Making unauthorized newspaper costumes for our 30 second rendition of the complete Lord of the Rings trilogy (subtitled -how long the Lord of the Rings trilogy would have been with all the boring bits taken out)

Murder Game: Still alive!
Murders performed: 2 (today)
There's not many of us left now so I have definitely earned some cred from last year. Paranoid!

NCSS 2015 - Day 1

This image was originally posted to Flickr by
SparkFunElectronics at
http://flickr.com/photos/41898857@N04/8406865680. CC BY 
New Year's Resolution - Restart Blog!

Easy to say but tricky to do without something to write about. Hang on a second! I'm hanging out with geeks for 10 days as part of NCSS 2015.

NCSS stands for National Computer Science School. It's a 10 day programming course for Year 11 students (+some kids returning from last year +some overly keen teacher) with two streams Python and Embedded (arduino).

I was here last year doing the Python stream to help me support my senior kids at school, this year I get a go at Arduino robotics.

Day 1: arrived late. I had a uni assignment due that was still being typed when I was supposed to be here for the teacher briefing. (Please forgive me fellow teachers, I promise to make it up.)

First Lecture: Introducing sensors, actuators, processors and have a look at the hardware. To be honest I was a little worried at this point because last year I was really learning from day 1 and this was pretty basic stuff. Have been promised it gets harder FAST!

First Evening Activity: Build the tallest tower that can support a shoe using nothing but newspaper (no not even tape). Our team went with the high risk, high reward strategy that resulted in a pile of newpaper and a shoe about knee height above the ground. :-( May have to conduct experiments at home to do better next time.

Murder Game: A game where you have to "kill" a fellow camper by saying "You're dead!" without being overheard. Last year I died in the first night's activity. This year I am proudly still alive. Murders performed: 1

All Fall Down - Source
https://twitter.com/katrinapuranik/status/551741852085280769/photo/1
Thanks