Saturday, December 24, 2011

Will the Tech. Design lab be the new Library?

We have been building the resources available to our students in our Tech. Design (Robotics) lab this year. Earlier this fall an old CNC lathe (last used 15 years ago) went out to be refurbished. We anticipate its return shortly. In the mean time an old vinyl cutter caught the eye of our students. They make original vector graphics produced by tracing original or bitmap artwork in Corel Draw. The old cutter has been replaced by a new model that is faster and more accurate on small details. Along with a heat press the students will be able to produce custom t-shirts. The students also use a CNC router and a Desktop CNC mill to complete design projects.


As I think about the robotics lab in our new school, Craig Kielburger Secondary, I've been thinking about how neat it would be to add a 3D printer to the mix. That's why this weeks Spark episode really grabbed my attention. Have a listen. Maybe 'Hacker Space' would make a better name for shop?
.... I wonder!

Monday, November 14, 2011

ACSE Arduino Presentation notes

Slide Notes
1 Cover
2 Why Arduino? Demise of OOPic made me look around and start comparing.
Aside OOPic Raptor currently under development.
3 Chart side by side comparison.
- all similar
- all basic von neuman, single step ALU
- some pipelining and more modern characteristics but basically all one instruction per clock tick
- Arduino development board (currently UNO) price very competitive
- sparked international interest due to open source nature
4 Why Microcontrollers are a great fit with curriculum and broad-based philosophy
- can teach basic electronics
- can teach interfacing
- can teach robotics
- opportunity for students to explore and design projects
5 Why Arduino? - cheap, robust, open source,
- started Microcontroller Investigation thread on blog in June 2010
- spent time at home playing and learning
- OOpic and electronics experience helped me
- have introduced OOPic into OISE AQ courses with excellent results
- all candidates able to expand their knowledge and skills using this platform
6 7 8 On line community: Make, Instructables, Arduino.cc
- grade 12 students able to take ideas and projects and apply in the classroom
- examples of Arduino daughter boards manufactered in class
9 Open source, exciting range of 3rd party developers
- 2 examples: 1 driving LCD another driving the Pong game
10 Getting started - plug it in, Load the driver - in drivers folder
- may be difficult depending on admin. restrictions on computer
- Mac, PC or Linux
11 Start the software
- work through learning and playground ideas
- try blink, fading and LED bar graph (if you have one)
- many youTube videos
12 C, J all the same
13 Main Arduino.cc page organization



14 Learning example - uses Fritzing
15 Fritzing.org for great graphics software to go along with Arduino and breadboards
- free software - produces jpg. files like slide 14
16 - a line follower robot built during the 2 week AQ this summer
- one built by Igor Kourinnyi on display
17 - novices able to complete stepper motor driver
- improved confidence and understanding
18 - sources for Hardware:
- Creatron Inc, 255 College St. Toronto, creatroninc.com
- Robotshop.ca
- Abra
- CanaKit
- Deal Extreme (rev 1 with a different USB to serial chip)

Sunday, September 11, 2011

What does "Tech Savy" mean to you?

Lots of stuff worth considering in this CBC Spark episode. Sure Junior can type 120 wpm on a smart phone but can he do an effective search for material for his essay?

Wednesday, August 3, 2011

Arduino bot


This is an Arduino based bot built by the OISE Computer Technology Grade 11-12 teachers in July.
Top view.
Side ViewBottom viewFront view.

Thanh Nguyen

Paresh Christian

George Goutziomitros

Esteban De Los Santos Lezama

Richard Davies

Jackie Griffith

Course: TEJAQ Grade 11/12

Teacher: Mike Druiven

OISE

August 3, 2011

Robotics - Lesson Plan



Topic: Computer Technology TEJ4M – How to Create a Robot



Notes


Context: Approximately 20 – 25 Instructional Days




Learning Outcomes:


A3.1 use technical terminology to accurately describe the specifications for electronic components and computer interfaces;

A3.2 describe the function and operation of various input devices, output devices, and electronic circuits used in interface and control systems;

A3.5 research and select components based on circuit requirements;

B1.3 construct and test connection media for interfacing a computer with an external device;

B3.1 use a design process and appropriate software design circuits;

B3.3 safely construct electronic circuits for interfacing or robotic applications using appropriate materials, tools, and techniques, including soldering;

B3.4 test and troubleshoot electronic circuits, using appropriate methods and test equipment and modify the circuits to meet design requirements if necessary;

B5.2 apply programming concepts including subroutines, parameter passing, decision and repetition structures, arrays, and character representation;

B5.3 use a design process to create a program that interacts with a real-world device;

B5.4 write a low-level program that runs on a real or simulated controller device.



References:


Part Supplier in Montreal - http://robotshop.com/ca


Servo Specifications - http://www.servocity.com/html/hs-311_standard.html

Servo Modification - http://www.flickr.com/photos/randomskk/2569969633/

There were also two resources that we use for the programming of the line sensor QRE1113.

One was for specifications and the other was for programming.

Line Sensor Specifications –

http://www.robotshop.com/world/sfe-digital-ir-line-sensor-qre1113-2.html

Programming - http://bildr.org/2011/06/qre1113-arduino/


Tools Required:


Phillips screw driver, soldering iron, pliers, wire cutters, wire strippers, multi meter, super glue, safety glasses, drill press, band saw machine, needle nose pliers, scissor, electrical tape.




Step-by-Step Instructions:


  1. Collect all needed parts

  2. Modifying HS-311 servo motors for continuous rotation

  3. Cut the baseboard to accommodate Arduino UNO board and breadboard for electronic connections

  4. Attach brackets to servo motors so they can be attached on the baseboard

  5. Drill holes and attach modified servo motors to the underside of the baseboard

  6. Attach wheels to the servo motors

  7. Attach the “third leg” to the underside of the baseboard so the robot can move smoothly

  8. Attach Arduino UNO board with Velcro and breadboard to top of the baseboard (breadboard is preferred at the front of the breadboard)

  9. Install battery holder (4 AAs) on the underside of the baseboard with Velcro.

  10. Connect (used) AC/DC Power Supply Adapter Plug to the 9v battery pigtail.

  11. Connect wires of the servo motors to the Arduino board through the breadboard (Red wire - 5V, Black wire - GND and Yellow wires - pin 9 or pin 10 PWM of the Arduino)

  12. Write a program on the Arduino board so it can control rotation of the wheels

  13. Design the front board (front loaders) to be attached to the baseboard to accommodate QRE1113 line-sensors

  14. Attach two QRE113 line-sensors on the inside bottom of the front loader. One on each side of the front-loader

  15. Solder the wires to the line-sensors so they can be connected to the breadboard. The sensors should be about 3 – 5mm from the ground

  16. Connect wires from line sensors to the breadboard so they can be monitored and controlled by the Arduino UNO (Vcc – 5V, GND – GND and OUT – pin 3 or pin 5 PWM on the Arduino)

  17. Modify the program on the Arduino so it can accept the outputs of the line-sensors, determine outcome and output commands to control the rotation of the wheels

  18. Load the program to the Arduino and test the robot using already made board with pattern of black lines











Extension Activity:


Addition of two antennas in order to transform the robot in a light seeking vehicle.


We can connect 2 antennas to the robot. Each antenna has an LDR at the end connected as the diagram illustrates below. When there is more light hitting the voltage read in the Analog pin increases. The idea is simple.


If the difference between the absolute value of the two LDR readings is smaller or equal than a pre-tested value d, then continue moving forward (the value d has to be found through experimentation).

Else, if the reading from LDR1 is smaller than the reading from LDR2, then turn right.

Else turn left.


The pseudo code for the main loop would be the following:



if (|LDRVal1 - LDRVal2|<=d) {

// continue moving forward

} else if (LDRVal1 < LDRVal2) {

// turn right

} else {

// turn left

}





Parts List:



Item

Part #

Quantity


Standard Servo motor

HS-311

2


Microcontroller board, i.e Arduino Uno board with 14 digital input/output pins and 6 analog inputs, a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button


1


Breadboard


1


Line sensor

QRE 1113

2


Wires solid

# 22 size

3m


Nut and bolts

(4-40, 6-32)

lots


Battery Holder (for 4 AA 1.5 v batteries)


1


AA battery 1.5


4


9 volt Battery cap


1


USB A / B cable


1


Wheel SW 2-5/8” Diameter

RB-Sbo-86

2


Velcro


15cm


Plastic board


14cm x 8cm


LDR (for extension activity)


2


Resistor (for extension activity)

100 kilo ohms

2


(used) AC/DC Power Adaptor


1








RUBRIC

Categories

Level 1

50%

Level 2

60%

Level 3

70%

Level 4

80%

Knowledge

of content


demonstrates limited understanding of functionality of parts and proper wiring


demonstrates some understanding of functionality of parts and proper wiring


demonstrates considerable understanding of functionality of parts and proper wiring



demonstrates thorough understanding of functionality of parts and proper wiring

Thinking


uses creative thinking processes in the design and layout of the robot with limited effectiveness


uses creative thinking processes in the design and layout of the robot with some effectiveness


uses creative thinking processes in the design and layout of the robot with considerable effectiveness



uses creative thinking processes in the design and layout of the robot with high degree of effectiveness

Communication


the layout and organization of the robot allows debugging with limited effectiveness


the layout and organization of the robot allows debugging with some effectiveness


the layout and organization of the robot allows debugging with considerable effectiveness



the layout and organization of the robot allows debugging with high degree of effectiveness

Application


the line following test of the robot was successful with limited effectiveness


the line following test of the robot was successful with some effectiveness


the line following test of the robot was successful with considerable effectiveness



the line following test of the robot was successful with high degree of effectiveness

Robotics - Rubric

Sunday, July 17, 2011

Thursday, May 12, 2011

Inspire high school students’ career aspirations and goals

Do you enjoy your career and find real value in the work you do? Do you feel that your ICT skills play a key part in your current and future success? If so, perhaps you would be interested in giving a career talk to high school students, providing inspiration about your job and the many other opportunities available in ICT-related careers.

As a member of the Canadian Coalition for Tomorrow’s ICT Skills (CCICT), we are helping recruit role models to visit schools in the Toronto area for CCICT’s CareerMashup initiative. Planned for the last two weeks of October, CareerMashup is a week-long festival of events and activities raising awareness about today’s interesting and varied ICT-related careers.

We are also looking for individuals willing to talk about their careers for video profiles on CareerMash, a new online career network developed by the CCICT.

Why your help is needed

Employing more than one million Canadians, ICT activities are the foundation of our knowledge economy. More Canadians work in ICT than in agriculture, forestry, fishing, mining, oil and gas, utilities and auto-manufacturing combined. The demand for employees with specialized ICT-related skills continues to grow. Despite this, there is an alarming decline in ICT-related post-secondary enrolments.

Research has shown that when considering careers and post-secondary options, many high school students are unaware of the exciting new jobs and opportunities out there. If they think of these jobs at all, they think of them as desk-bound and boring. As you are well aware, this is not the case.

An industry-led coalition, CCICT was formed to address this urgent issue and help reverse the trend.

Training provided

The role model training will take place on Tuesday, September 13th. CCICT will manage all of the logistics, provide training and assist with presentation content. If you are interested in being a role model and/or participating in a video profile, please contact me.

CCICT is looking for many different role models, but especially entrepreneurial types and those in a wide variety of specialized fields like digital media, health informatics, product innovation, medical research, green infrastructure, mobile technologies and applications etc. Here is a list of characteristics (keeping in mind these are just loose guidelines):

- lively, engaging personalities
- comfortable speaking to groups
- diverse range of ethnic backgrounds
- strong female representation
- wide range of industries with an emphasis on ICT, finance, business, environment, health and wellness, media, manufacturing, arts and culture, and transportation
- wide range of career types from those working in large organizations to entrepreneurs and the self-employed

In addition to organizing the school visits, CCICT will provide each role model with training and help preparing their presentation. We are looking for role models who will commit to visiting at least one school (for 1/2 to a whole day) in October, and who will come to a training session on September 13th in Toronto.

Wednesday, April 27, 2011

Cleaning house part 3

Some of the external experiments that used the PC or Apple i/o cards were found during clean up. Above is a stepper motor driver controlled directly from an Apple II i/o card.
This is a temperature probe that uses op-amps and an A to D converter for rather accurate T measurements. The probe is a 2n2222 epoxied into the end of a pen barrel.
.... not sure but lots of familiar parts!
Digital dice made using wire wrap technology.
A binary number game. The black header holds a 7 segment display driven by a random number generator. The student would set the DIP switches to make the same number in binary and push the button. The circuit will indicate Too High, Correct or Too Low.

These circuits are now trash but the memory of making and using them in classes remains.
Sniff :(

Cleaning house part 2

This hand made PC ISA slot interface card used the 8255 chip to provide three 8 bit digital i/o ports. The DIP switch is part of setting the address of the card. A 25 pin (D sub) cable connected the card to an experimenter card made using the same wire wrap technology as the interface card.
These experimenter boards gave the students 8 LEDs, a 7 segment display, 8 DIP switches mounted on the white header and access to 8 i/o pins via the terminal strip to connect external circuits and experiments.


Part 3 shows some interface circuits and other random circuits made in the 90s.

Cleaning house part 1

We're cleaning up our classrooms in preparation of a move to a new building with more limited space. I came across these old computer interface circuits we used to employ when I taught electronics back in the 90s.

These first two photos show one of the Apple II interface cards we used. These were made using wire-wrap technology. Each card provided two 8 bit digital i/o ports labelled A and B. We would use a ribbon cable like this:
.... to connect to a hand made experimenter board like this.
Here students could control the LEDs or read the position of DIP switches mounted on the white header.
In part 2 I'll look at the next generation . . . PC interface cards.

Saturday, March 19, 2011

Possible return of the OOPic

One of the main themes in this blog is looking at available microcontrollers since the demise of the OOPic chip. My students and I have had some fun learning about the Arduino and the Parallax Stamp. Both devices have lots going for them but I missed the true object oriented nature of the OOPic. The IDE was able to portray these objects graphically and display the object properties in real time. I still use a number of OOPic controlled robots in my classroom. Some of the electronics is starting to fail. Perhaps this new Raptor will be available in time to replace the old boards.

Thursday, March 3, 2011

Analog to Digital

Some grade 12s are working with the 2 BASIC Stamp modules I have in my class. The 3rd group is working with an Arduino Duo. Both groups are experimenting with Analog to Digital conversion. The Ardiuno Examples-Analog lab made a good start. Adding my DSO Nano oscilloscope meant they could see exactly what PWM means and why the LED could be dimmed from 0 to 100%. On the Stamp the other groups were using an RC circuit to measure the value of a variable resistor. The Stamp even has a built in in RCTIME function to pull this off. This RC time method works well but I started looking for the analog inputs and discovered the Stamp has none! Christopher Vecchio's web page shows a good work-around for the Stamp.
Arduino Analog Inputs - 6
Stamp Analog Inputs - 0
Score one for Arduino!

Wednesday, February 16, 2011

Computer Engineering ABQ - First Day

This evening was day 1 of the OISE Computer Engineering ABQ course taught at EC Drury High School. I was energized to meet the talented and caring teachers taking this "First Ever" ABQ in this subject. As I suspected, the key theme will be sharing as we all come from diverse industry backgrounds and various teaching experiences. I will certainly hand off the teaching to those better qualified and will need to act as a coordinator as everyone follows their own path to becoming qualified. I think the class wiki will be fun and an interesting platform for sharing and delivering course materials. I look forward to reading everyones blog posts in the next few days and discovering their perspectives on day 1.

What's an ABQ? This is an Additional Basic Qualification course offered by the University of Toronto Ontario Institute for Studies in Education (OISE). An ABQ qualifies a teacher to teach a particular subject at a particular level.

Saturday, January 29, 2011

Great Summative project

The first semester courses are done and I'm looking forward to posting more often during the second semester. All of my senior classes this semester were Computer Studies (programming) and so most of my thoughts have been focused on programming rather than technology.
The seniors capped off the year writing a version of the old Snakes and Ladders game. The program had to use a GUI input and show the postion of the players (person vs computer) by printing out the board, a grid of numbers, with symbols showing the player positions.

Printing out the game board lends itself to using a 2 dimensional array, lets call it board.
board[j][i] where j represents the row and i represents the number in the row. If all the rows in a Snakes and Ladders game counted up from left to right then it would be easy to fill up the array with a nested loop. The outer loop counts from zero to 9 - the rows. The inner loop counts from 1 to 10, 11 to 20, 21 to 30 etc to fill up the rows.

int i, j
for (j = 0; j<=9; j++)
{
for (i = 1; i<=10; i++)
{
board [j][i] = j*10 + i;
}
}

But in reality the Snakes and Ladders board counts up in a serpentine fashion so that 11 is above 10 and 21 is above 20 etc. Writing the code for the Snakes and Ladders board is only a little more complicated. The odd rows count up and the even rows count down.

for (int even = 0; even <=8; even +=2)
/** This for loop fills up rows 0, 2, 4, 6 & 8
* in the array. These rows represent
* the rows that count up from left to right**/
{
for (i = 0; i<=9;i++)
{
board[even][i] = count;
count++;
}
count+=10;
} // even
count = 11;
for (int odd = 1; odd <=9; odd +=2)
/** This for loop fills up rows 1,3,5,7,9
* in the array. These rows represent
* the rows that count up from right to left**/
{
for (i=9; i>=0; i--)
{
board [odd][i] = count;
count++;
}
count+=10;
} // odd

Now all we need to do is print out the array starting at row 9 and counting down to zero.

for (j=9; j>=0; j--)
{
for (i=0; i<=9; i++)
{
System.out.print(board[j][i] + " ");
}
}

Output:
100 99 98 97 96 95 94 93 92 91
81 82 83 84 85 86 87 88 89 90
80 79 78 77 76 75 74 73 72 71
61 62 63 64 65 66 67 68 69 70
60 59 58 57 56 55 54 53 52 51
41 42 43 44 45 46 47 48 49 50
40 39 38 37 36 35 34 33 32 31
21 22 23 24 25 26 27 28 29 30
20 19 18 17 16 15 14 13 12 11
1 2 3 4 5 6 7 8 9 10

Sunday, January 16, 2011

Learn PHP

I have not been doing much with hardware this semester. My senior classes are Computer Studies (programming). Some of the students expressed an interest in learning PHP - MySQL. This summer, at the CEMC summer institute for teachers, I was introduced to a package called XAMPP which essentially allows you to run Apache and MySQL databases from a USB Flash drive. I tried a few tutorials out and put together one of my own. The students were successful with my tutorial and were able to continue on and try out things on their own. One of the students, Shameel Khan, extended his learning by creating a Facebook-like application. Shameel documented his work in the form of 8 tutorials. This experience is a good extension to the Javascript lessons many students completed in grade 10.