Sunday, June 13, 2010

Have you anything on D drive?

Message about D drive in Room H208

Hi,

We have an issue with space on the D: in D208. Several classes are planning on running practical assessments during this week using virtual machines.

Do you have any material on the D: of the D208 PC’s which need to remain?

If I don’t hear anything by Monday afternoon then we will begin deleting things so that we can move the test machines over

Cheers

Dave

Wednesday, June 2, 2010

A outline of what's in the test.

The test will be in our normal classroom on Friday 18th June at 10:15.




Test Information

There will be a theory test on Fri 18 June. It will be closed book and you must complete it in 1 hour and 45 minutes.

There will be a question on the main parts of the Arduino. See the labelled diagram above.

There will be a question on the page above called The Front Page of the Mega328. You will be expected to write a sentence explaining about half the features listed. You do not have to know any assembly language.

There will be questions on the functions diagram of the Mega328. You will be given a copy of this diagram and be expected to write a short paragraph on up to three blocks.

Also buggy program. A program will be given to you with errors in it. You will have to identify the errors. Mostly syntax violations.

A problem to do with sampling real world inputs will be given and you will be asked how you would respond to this using the Arduino.

There my be other questions but only on items we have studied in class.

Please contact me about any problems. Good luck.

PeterB





Sunday, May 30, 2010

Final Test and Dates

The final theory test will be on Friday June 18th during normal class time.

The last day for the major project will be Monday 21 June at 4pm. This is a hard deadline.

There will be no classes on Friday 4th and 11th June to allow time for Robocup activities.

There will be classes on 31 May and 14 June. There will be no class on 7 June as it's a public holiday.

Please contact Peter by email or phone if there's any problems. My desk is now in H100 and you can come over at any time and make a further appointment.

Sunday, May 16, 2010


List of features of Mega328

The main parts of the mega328


Thursday, May 6, 2010

Some new deadlines.

To clarify where we're at in this class as far as assessments go please read the following.


Your main effort at this stage should be on getting your tasks up to date, preparing for your software presentation on Arduino commands and getting your minor project finished. The hard deadline for the minor project is May 23rd. There will be one theory test at the end of the course.

Monday, March 1, 2010

Push that button


Check out this site: http://www.arduino.cc/en/Tutorial/Button
Then do the tasks associated with push buttons.

Sunday, February 28, 2010

Sunday, February 21, 2010



Had to happen I suppose. An Arduino powered toilet flush on twitter http://aculei.net/~shardy/hacklabtoilet/

Thursday, February 18, 2010

Some tasks

Tasks - this is the official list.

Please indicate the task number for each of your blog responses.

1) Create a blog.
2) Put link into Moodle wiki. (Moodle not ready yet.)
3)Fill in rest of your details on Moodle wiki
4)Check out all the sites related to the list in the embedded notices blog.
Write a sentence about what each one does. You don't have to be very familiar with each one.
(The blog entry is: TUESDAY, FEBRUARY 16, 2010)
5) Find 4 more Arduino LED related videos in Youtube, BlipTV etc. Put a link and a two-sentence review about each one in your blog. Be prepared to talk about one or more of them.
6) Establish a sketchpad folder in the D Drive or in a USB pen.

7)Write the original Blink program and save into a sketchpad folder.
8) Write a variation of blink that has led mostly off. Just winking on quickly.
9) Ditto but have the LED mostly on.
10)Get the led to blink at rate of 10ms on 10ms off. Can you see it blinking?
What is your cutoff point? Is this different from one other student?
Put your programs and your comments into your blog. Pictures and diagrams are good.
11) Check out the Blink2 program elsewhere in this blog. Run it and paste into your blog.
The following tasks are variations on Blink2.
12) Make one of the LEDs blink when the other one is off.
13) Get one to blink mostly on and the other is mostly off. "Mostly on" means it's on all the time except for a little flash off about once a second.
14) Like 13 but the LEDs are reversed. That is, the one that mostly on is now mostly off.
16) Get one led to blink twice then the other one to blink once then repeat forever.
17) Write a for-loop with counter variable i. Get one led to blink 5 times, using the for-loop, then the other to blink once. Repeat forever.
18) Like 17 but i can be any value. Try different ones. Later we can input this value from the keyboard.
19) Write a program to get one led to increase its rate of blinking from 100ms to1sec.
20) Same as 19 but this time ramp up the rate from 10ms to 1 sec then back down again.
21) Write a program to output one led blinking at rate of 200ms that outputs the word "blink" to the screen each time it comes on.
22) Same as 21 but this time use two leds of different colours and output the colour of the led to the screen each time it goes on. So you should see eg. "red yellow red yellow ..."
23) http://wwww.wikieducator.org/User:Peterb/HowManyArduinos0 put at least one Arduino variety, like Freeduino, into this wiki with a screen shot and put a link and a comment back into your blog so that it can be verified.
24) Go into the ladyada site and look at http://www.ladyada.net/learn/sensors/cds.html which deals with light dependent resistors. Put a link and comment about this page in your blog. Identify your LDR from your pack. You will not be tested on the technical details of this sensor but you'll be expected to insert it into circuits and read off the changing light values.
25) Start a Arduino key words page in your blog. Put every new key word with an explanation and example when you come across it. It should have soon these keywords: setup(), loop(), analogRead(), Serial.print(), Serial.println(). This should be added to throughout the course.
26) Run the ladayada photocell program that was handed out in class. Write it up in your blog about what you did and the program.
27) Same as 26 above but make some changes to improve it. Put your changes into a comment so that it's obvious what the differences are.
28) Write a program to turn a LED on whenever the light is blocked to your LED. You will have to play around with several values.
29) Check out the wikiEducator site that has some example Arduino resources. Read the directions there about doing another one. Create one like it in your blog or create it in wikiEducator by registering and starting your own pages. If your resources page is not in your blog, create a heading and a link to it so that it can be marked.
30) Find your push button in amongst your kit. Check out use of external push buttons in http://www.arduino.cc/en/Tutorial/Button. Copy their program into your blog and make sure you can run it.
31) Change the above program by reversing the the way the led goes on/off when the button is pushed/not pushed. Publish your program with a suitable comment.
32) Same as 30 but also output the state of the button and the led to the serial screen. I might see on one line then: "button pressed ....led off".
33) Write up key words pinMode() and digitalRead() in your key words glossary.
34) Write a program to generate 100 random numbers between 0 and 9 to the screen.
35) Same as above but this time put your outputs in a numbered list like this:
1. 7
2. 4
3. 9 etc til you get to 100.
36) Same but also output the average (mean) of the 100 numbers with a suitable message.
37) Same but this time see if you can drive the baud rate up as far as possible before the output data gets scrambled. Also, what is the slowest speed the Arduino serail will ouitput at? Write your findings in your blog.
38) Write a program to output the value of your LDR whenever you press the button.
39) Same as 38 but this time write your output like this :
Reading number 1 is 345
Reading number 2 is 123
Reading number 3 is 876 etc...
40)Find an interesting article on the YABB news section and provide a screen shot and a short report on why you found it interesting.
41) Register for YABB but don't contribute yet. Take a screen shot of part of your registration process to confirm you've done it.
42) Write a short list of rules for a bulletin board like YABB. Watch some thread over two weeks and be ready to make a contribution.
43) You'll need to look at some project sites to get some good ideas for your minor and major projects. Some have been shown in class. Write a list of four good project sites and include a link and a screen shot for each with a comment in your blog.
44) Present to the class a report on one of your assigned devices. You need to tell us what it does and give a little demo of it working on a simple Arduino project. Include in your talk at least three Impress or PowerPoint slides on a USB pen or similar.
45) Explore the way your infrared transmitter sends pulses to the receiver. Set up a little demonstration to be marked in class. You may share this project with another person but both members have to know what's going on. Transmission from one Arduino to another is especially excellent.
------after Easter-----------------
46) Get a plan to send a signal from one Arduino to another. Set one up to receive and one to transmit. Connect the input pin of the receiver to an output pin of the transmitter. Get the receiver to note on the serial screen what it's reading. Get the transmitter to send a slow square wave that can be received and displayed in real human time.
47) Same as 46 but this time reverse roles of sender and receiver.
48) Same as 46 but get the receiving Arduino to send the level, 1 or 0, that it's getting back to the other Arduino. So it's just receiving and sending a copy back for checking. Get both Arduinos to display what they are getting. A one second on/off will work ok.
49) Get one Arduino to send a given series of pulses, say about a 100, about 1ms long, to the other. Get the receiver to count the number of pulses it gets and display this number on the serial screen.
50) How fast can you send a thousand 1/0 pulses and still count them accurately.
========================================================
When you have reached the 50 task target, email Peter Brook with a link to your blog for checking.
========================================================
Next topics will be external interrupts, eeprom reading and writing and data logging.

51) Check out the eeprom read program at http://arduino.cc/en/Reference/EEPROMRead


Get it running and put a screen dump into your blog. They may be all $FFs or all $00's at first.
52) Now run the similar eeprom write program to send $23 to address 01 and $2A to address 02. Add a eeprom dump, all 512 bytes, function to your program based on the eeprom read program above so you can see that your bytes have been changed.
53) Fill the total eeprom with $AB's all 1024 bytes. Read eeprom space back onto your screen and do a screen capture picture for your blog.
--------------------------
Your main effort at this stage should be on getting your tasks up to date, preparing for your software presentation on Arduino commands and getting your minor project finished. The hard deadline for the minor project is May 23rd. There will be one theory test at the end of the course.


54) Data logging. Write a small program that reads a real world signal like light or temperature and takes 10 samples over ten seconds. Output your values to the serial screen.
55) Same but this time store your values in an array called mySamples[] and output the array on completion of the tenth sample.
56) Same as 55 but this time store your values into eeprom then output from there after 5 second delay.
57) Same as 56 but this time write a separate function to find the smallest value and out put that at the end of the sampling with a suitable message.
58) Same as 57 but this time write two functions average() and biggest(). The average function outputs the mean of the values as a floating point number and the other function, biggest(), will output the greatest value that you have sampled.
--Next tasks are to do with longer term data logging over a day or longer.
59) Create an experiment that will log a real-world variable like light or temperature over 24 hours or more. Store your logged values in eeprom and display your values in a useful way. Write up your experiment with photos and movies in your blog.
60) (Stop press: Don't make that presentation but expect question on this in the test.) Make a presentation to the class with at least three slides on one of the function blocks of the mega328. This is a diagram in the blog with the heading "the main parts of the mega 328".














Learn how to run retro Chip 8 games


Check out this page.


Output Hello World




Here's an Arduino-18 file that outputs text and numbers to the serial screen.


The serial monitor screen is found by pressing Tools and will show you what's coming back from the Arduino board's serial port.









Tuesday, February 16, 2010

Some new software to look at

Some programs we'll be using this semester:

Arduino environment
Processing environment
GNU gcc
wikieducator
Moodlle
Chip8
Fritzing
Open Office
PeerWise

Monday, February 15, 2010

Blink 2. Get two LEDs to blink.

/*
Blink2
Turns on a LED on for half a second, then off for half a second, repeatedly. It also does the same to an off-board LED connected to pin 12 so that when one LED is on the other is off.
The circuit:
* LED connected from digital pin 13 to ground via resistor.
* second LED connected from digital pin 12 to ground via resistor. I used 330 ohms.
* Note: On most Arduino boards, there is already an LED on the board
connected to pin 13.
Created 1 June 2005
By David Cuartielles. Adapted by Peter Brook

based on an orginal by H. Barragan for the Wiring i/o board
*/

int ledPin = 13; // LED connected to digital pin 13
int redLedPin = 12; // LED connected to digital pin 13
int del =500;

// The setup() method runs once, when the sketch starts

void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()
{
digitalWrite(ledPin, HIGH); // set the LED on
digitalWrite(redLedPin, LOW); // set the LED on
delay(del); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
digitalWrite(redLedPin, HIGH); // set the LED off
delay(del); // wait for a second
}

Have a look at this site where Arduino "boards" are created out of paper. This would make a good project.


Also look at this site for a project idea.


Sunday, February 14, 2010

Some cool You Tube Vids



http://blip.tv/file/456094/

The classic intro on "talk like a pirate day"


Also: lots about LEDs:

More LEDs and good planning.


Hex and Binary


You've got to be able to change from hex to binary and to decimal. For some low-level programs we have to be able to look at hex files and understand hex dumps.

Getting started with the Arduino


The best way is to get your Arduino Duemilanove ready and work your way through the starting instructions on this page http://arduino.cc/en/Guide/Windows

By the end of week 1 you should be able to run blink

 /*
Blink

Turns on an LED on for one second, then off for one second, repeatedly.

The circuit:
* LED connected from digital pin 13 to ground.

* Note: On most Arduino boards, there is already an LED on the board
connected to pin 13, so you don't need any extra components for this example.


Created 1 June 2005
By David Cuartielles

http://arduino.cc/en/Tutorial/Blink

based on an orginal by H. Barragan for the Wiring i/o board

*/
 int ledPin =  13;    // LED connected to digital pin 13
 // The setup() method runs once, when the sketch starts
 void setup()   {               
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
}
 // the loop() method runs over and over again,
// as long as the Arduino has power
 void loop()                    
{
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}

The first practical is a led-based one so there will be some extensions of this program.


Some chip 8 links to look at

Here's a Chip 8 emulator page.
http://www.pong-story.com/chip8/

and, the usual first go-to site: Wikipedia :
http://en.wikipedia.org/wiki/CHIP-8

Have a go at running chip8.exe by following the example in the wikieducator page:
http://wikieducator.org/User:Peterb/MyChip8Page2

Later, we'll learn how to run our own chip 8 programs.

First assignment


Have a look at the following slide and get going with becoming acquainted with all the resources associated with our Embedded Systems course.

First posting

Hello, this is the first posting of embedded notices. This will contain iiformation for the Embedded Systems course. This may be overtaken from wikiEducator and Moodle. We'll see how it goes.



I:\COURSES\AITEIT3\BITY2\IN620 Embedded Systems
The folder above contains lots more information and the course directive about what you have to do to pass this course.