Sunday, August 30, 2015

On Recreating my Childhood

from mariokart.wikia.com
Like many tech-slanted children of the nineties I have many fond memories of some classic video games.

Mario Kart 64 was one such game.

It was a fantastic example of simple, well thought out design meeting pure simplicity of gameplay...except for the blue shells...those terrible, terrible things.

And while cruising Rainbow Road was a certain sort of cathartic, it was always the balloon battles that got the shouting started and the players ready to splatter each other into the wall.

Which leads me to my next problem. Admin has challenged me to present something about robotics at our club week and it was suggested that it should be interactive.

And I asked, "what would it take to do a real life Mario Kart balloon battle?"


Apparently, according to Rooster Teeth, it requires mild to severe inebriation, a budget for robots and a lack of love for your baseboards and your ankles.

I pitched it, jokingly, to my Assistant Principal. He responded as any sane person would..."knives ..in a school?...seriously?"

I wasn't serious about the knives, but I was serious about the balloon fight. So here is the plan.

A) Create 2-4 robotic platforms that will be challenging to drive.
B) Attach balloons to one end and sewing needles to the other
C) Have students battle them to the death.

This post will cover A.

For this project I used the following supplies:

Arduino Uno (I used Sparkfun's Redboard for the prototype but am going to test Solarbotics' Sketchboard as well.)
Magician Chassis
Breadboard (all of the chassis in my classes have breadboards stuck on them for prototyping)
RC Car 9.6V Battery(pictured right - The ones I have were there when I inherited the lab and will be replaced this year as they are dying)
TSOP4038
A Toy IR Remote Control(This bad boy cannot be found online. It is cheap, probably Chinese, and irreplaceable. They were a part of a kit and I can't find the kits. It has 8 channel IR transmission and 8 buttons.)
Seeed Studio's I2C Motor Driver


The Magician chassis is perfect for this as it has high speed motors and is easily adaptable.

I hooked up the I2C Motor Driver into the Arduino according to my I2C lesson(see right panel for Arduino Theory Lessons from my class). One problem that I noted was that the Uno R3 (the official Arduino ones) don't have labelled SCL and SDA ports. Can anyone confirm if the unlabelled ports above the AREF port work for this application?

The main hack here is that I used a 4-pin adapter for my Motor Driver instead of a Grove Shield. This is much more cost effective if you aren't using the rest of the Grove system.

The second piece of this was to wire the IR receiver into the breadboard according to it's datasheet.

At this point the electronics people reading this are asking, "why is nothing tied down?" I was testing, we will get to that.

With all of the hardware in place, I was able to tackle the hardest part, the code.

Let me start my saying that I am not a trained coder, I am self taught and began in PBASIC with Parallax robots.

Needless to say, my code often looks different than the standards for C.

I began by taking readings from my infrared receiver using Ken Shirrif's terrific IR Library.

Using the IRrecvDemo I manually recorded the sensor values for each of the buttons. They all come in hex code which was noted as I will need to explain how hex works to my kids if we do this as a projects this year.

Following this I fired up my DC motor test code, which can be found in the right panel under Arduino Theory.

After confirming that it ran the motors properly I created a series of functions to simplify calling moving forward, back, left and right pivots and swerves and three different speeds.

These functions were than applied to a series of if and else...if commands to connect them with each button press

I spent two evenings fighting with datatypes as C is something that I am learning at this point. In the end though, it is like winning on rainbow road when you press the buttons and the robot responds to your commands.



I've posted the code below and will place it in the Arduino Programs section of the sidebar. (video of the first run is at the bottom of the page)


   1:  /*
   2:    Grove- i2C motor driver demo v1.0 Modified for James Fowler Robotics
   3:    by: http://www.seeedstudio.com
   4:  //  Author:LG Modified by Mitchell Way
   5:  //
   6:  // The Modifications to this code serve to make it able to run 2 DC motors while being controlled by an Infrered remote
   7:  //
   8:  //  This demo code is free software; you can redistribute it and/or
   9:  //  modify it under the terms of the GNU Lesser General Public
  10:  //  License as published by the Free Software Foundation; either
  11:  //  version 2.1 of the License, or (at your option) any later version.
  12:  //
  13:  //  This library is distributed in the hope that it will be useful,
  14:  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15:  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16:  //  Lesser General Public License for more details.
  17:  //
  18:  //
  19:  */
  20:   
  21:   
  22:  //Data to communicate with motor Controller via I2C
  23:  #include <Wire.h>
  24:   
  25:  #define MotorSpeedSet             0x82
  26:  #define PWMFrequenceSet           0x84
  27:  #define DirectionSet              0xaa
  28:  #define MotorSetA                 0xa1
  29:  #define MotorSetB                 0xa5
  30:  #define Nothing                   0x01
  31:  #define I2CMotorDriverAdd         0x0f   // Set the address of the I2CMotorDriver
  32:   
  33:   
  34:  #include <IRremote.h>
  35:   
  36:  //The following describes the controller outputs on setting 1
  37:  #define None   0x85EC7D0F
  38:  #define u       0x9ACDD255
  39:  #define d      0xEE228A5
  40:  #define l      0x28C6631A
  41:  #define r      0xE6DFAB16
  42:  #define ur     0x3FC4F8DA
  43:  #define ul     0x27C66187
  44:  #define a       0x5D30FCF1
  45:  #define b       0xA51DA0F
  46:  #define x       0x96A9455E
  47:  #define y       0x657C3134
  48:   
  49:  int RECV_PIN = 11; //TSOP4038 set up on Arduino Pin 11
  50:   
  51:  IRrecv irrecv(RECV_PIN);
  52:   
  53:  decode_results results;
  54:   
  55:  void setup()  {
  56:    Wire.begin(); // join i2c bus (address optional for master)
  57:    delayMicroseconds(100);
  58:    irrecv.enableIRIn(); // Start the IR receiver
  59:    Serial.begin(9600);
  60:    Serial.println("setup begin");
  61:   
  62:  }
  63:   
  64:  void loop()
  65:  {
  66:    if (irrecv.decode(&results)) //When a nonzero value is read determine proper function to pursue based on button pressed
  67:    {
  68:      irrecv.resume(); // Receive the next value
  69:      Serial.print("Results =\t");
  70:      Serial.println(results.value);
  71:   
  72:      if (results.value == y)
  73:      {
  74:        SpeedFull ();
  75:        Serial.println("Y");
  76:        delay(1);
  77:      }
  78:        else if (results.value == b)
  79:      {
  80:        SpeedMed ();
  81:        Serial.println("B");
  82:        delay(1);
  83:      }
  84:      
  85:     else if (results.value == a)
  86:      {
  87:        SpeedStop ();
  88:        Serial.println("A");
  89:        delay(1);
  90:      }
  91:   
  92:      else if (results.value == u)
  93:      {
  94:        Forward();
  95:        Serial.println("U");
  96:        delay(1);
  97:      }
  98:   
  99:      else if (results.value == d)
 100:      {
 101:        Back();
 102:        Serial.println("D");
 103:        delay(1);
 104:      }
 105:   
 106:   else if (results.value == l)
 107:      {
 108:        PivotLeft();
 109:        Serial.println("L");
 110:        delay(1);
 111:      }
 112:   
 113:       else if (results.value == r)
 114:      {
 115:        PivotRight();
 116:        Serial.println("R");
 117:        delay(1);
 118:      }
 119:   
 120:   else if (results.value == ul)
 121:      {
 122:        SwerveLeft();
 123:        Serial.println("UL");
 124:        delay(1);
 125:      }
 126:   
 127:       else if (results.value == ur)
 128:      {
 129:        SwerveRight();
 130:        Serial.println("UR");
 131:        delay(1);
 132:      }
 133:   
 134:   
 135:   
 136:   
 137:    }
 138:  }
 139:  //function to set motor speeds
 140:  void MotorSpeedSetAB(unsigned char MotorSpeedA , unsigned char MotorSpeedB)  {
 141:    MotorSpeedA = map(MotorSpeedA, 0, 100, 0, 255);
 142:    MotorSpeedB = map(MotorSpeedB, 0, 100, 0, 255);
 143:    Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd
 144:    Wire.write(MotorSpeedSet);        // set pwm header
 145:    Wire.write(MotorSpeedA);              // send pwma
 146:    Wire.write(MotorSpeedB);              // send pwmb
 147:    Wire.endTransmission();    // stop transmitting
 148:    Serial.println("MotorSpeedSetAB");
 149:  }
 150:  //set the prescale frequency of PWM, 0x03 default;
 151:  void MotorPWMFrequenceSet(unsigned char Frequence)  {
 152:    Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd
 153:    Wire.write(PWMFrequenceSet);        // set frequence header
 154:    Wire.write(Frequence);              //  send frequence
 155:    Wire.write(Nothing);              //  need to send this byte as the third byte(no meaning)
 156:    Wire.endTransmission();    // stop transmitting
 157:    Serial.println("MotorPWMSetAB");
 158:  }
 159:  //set the direction of DC motor.
 160:  void MotorDirectionSet(unsigned char Direction)  {     //  Adjust the direction of the motors 0b0000 I4 I3 I2 I1
 161:    Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd
 162:    Wire.write(DirectionSet);        // Direction control header
 163:    Wire.write(Direction);              // send direction control information
 164:    Wire.write(Nothing);              // need to send this byte as the third byte(no meaning)
 165:    Wire.endTransmission();    // stop transmitting
 166:    Serial.println("MotorDirSetAB");
 167:  }
 168:   
 169:  void MotorDriectionAndSpeedSet(unsigned char Direction, unsigned char MotorSpeedA, unsigned char MotorSpeedB)  { //you can adjust the direction and speed together
 170:    MotorDirectionSet(Direction);
 171:    MotorSpeedSetAB(MotorSpeedA, MotorSpeedB);
 172:  }
 173:   
 174:   
 175:  //This last section my seem inessecary but it is arranged this way for ease of student use.
 176:  void Forward()
 177:  {
 178:    MotorDirectionSet(0b1010); //FWD
 179:  }
 180:   
 181:  void Back()
 182:  {
 183:    MotorDirectionSet(0b0101); //FWD
 184:  }
 185:   
 186:  void PivotRight ()
 187:  {
 188:    MotorDirectionSet(0b1001); //Pivot R
 189:  }
 190:   
 191:  void PivotLeft ()
 192:  {
 193:    MotorDirectionSet(0b0110); //Pivot L
 194:  }
 195:   
 196:  void SwerveRight ()
 197:  {
 198:    MotorDirectionSet(0b1110); //Swerve R
 199:  }
 200:   
 201:  void SwerveLeft ()
 202:  {
 203:    MotorDirectionSet(0b1011); //Swerve L
 204:  }
 205:   
 206:   
 207:  void SpeedFull ()
 208:  {
 209:    MotorSpeedSetAB(100, 100); //defines the speed of motor 1 and motor 2;
 210:  }
 211:   
 212:  void SpeedMed()
 213:  {
 214:    MotorSpeedSetAB(50, 50); //defines the speed of motor 1 and motor 2;
 215:  }
 216:   
 217:  void SpeedStop()
 218:  {
 219:    MotorSpeedSetAB(0, 0); //defines the speed of motor 1 and motor 2;
 220:  }
 221:   




Part B will follow once I have laid out the game and have attached some sharp objects to the robots.

Wednesday, August 5, 2015

On Planning Ahead

I was told today "You know that it's summer holidays right?" as I booked a field trip for one of my classes this year.

Which brings me to what I was doing today, laying out my Intermediate/Advanced Medical Studies Outline for the year.

The last bit is unfinished and I will likely need a few days of thinking about it to decide which credits I want to teach this time around.

Also, I get a set of damaged Roombas tomorrow. I will be posting my initial thoughts when I receive them.



Medical Studies Intermediate/Advanced Outline (WIP)


“Your body, your health, your career”


This course will be offered for those interested in a Healthcare career. It will be organized into the three themes above:


Your body: This course will act as an introduction to anatomy and physiology of the human body. This is also covered in Biology 20 and 30, but this course will seek to deepen students’ knowledge of these topics especially in how the apply to the human body.


Your health: The second theme of this course will focus on personal health and the choices that individuals can make to improve their own health and well-being. This will include personal studies into each student's health and interventions that can have a lasting impact on it.


Your career: There are a multitude of careers in medicine that students never consider. Many enter the area of healthcare assuming that it is only doctors and nurses, not knowing that the profession also includes paramedics, radiology technicians, occupational therapists to name just a few. This course aims to expose students to these other career paths as well as to shed light on the path to doing any profession in healthcare.


Credits offered:
CCS 1030: Caring for Body Systems 1
HCS 2020: First Aid/CPC C with AED
HCS 3050: Reproduction and Readiness For Parenting
HCS 3060: Pregnancy,Birth and Infant Care
HCS 2910: HCS Project B OR HCS 3910: HCS Project D


CCS 1030: Caring for Body Systems 1
In this unit, students will review concepts in Medical Studies that will assist them in the remainder of the course. This course will also be used as the foundational content knowledge for our semester-long project “The You Study.”


HCS 2020: First Aid/CPC C with AED
During this credit, an outside instructor will be welcomed to our class to certify all of the students in the class in Standard First Aid and CPR. This certification is recognized across Canada and is something that can be used on students’ resumes and professionally. The certification lasts for three years at which point individuals can re-certify with a short 8-hour course rather than this full 16 hour course.
Cost: $85 (This course costs $135 on average to take elsewhere)


HCS 2910: HCS Project B OR HCS 3910: HCS Project D
To earn this credit, students must successfully complete a semester-long project known as “The You Study” that will challenge them to study themselves physiologically before making a major change to their behaviour, lifestyle, or diet and measuring the results. They must carry out the study and then must present the results during the final week of the semester.


HCS 2120: Pain and Pain Management
HCS 3050: Reproduction and Readiness For Parenting
HCS 3060: Pregnancy,Birth and Infant Care
Two of the following three credits will be covered in the course. I received overwhelming support for doing a unit on pregnancy and childcare in my end-of-year survey last year and this is where the 3000 level courses come in. The 2120 course is appealing to me because I am planning to take this group on a field trip to Telus Spark’s Direct from the Operating Room Program.

These will be updated as I make a decision on what to do about them.

Friday, July 31, 2015

On Plug and Play Curriculum

One of the most loaded questions that you are asked as a teacher during the summer is "what are you doing this summer?"

en.wikipedia.org
The answer, depending on how you respond, is either used to reinforce someone's view about the general laziness of teachers or to reinforce their view that you are a sadistic workaholic who can't appreciate your time off.

In short, answering the question is a trap and you should simply avoid the question if you want to see the people you are talking to again without any sense of resentment.

During our tinkering session today with the Arduino based robots one of the other teachers there pointed something out that I already knew but hadn't thought about recently.

"Often, especially in junior highs, a teacher is handed one period of robotics or applied technology as an afterthought. This wouldn't be a problem except that as that teacher I now need to sink a ton of time into learning and developing this stuff that I may only use once."

A part of what I am putting together is aimed as an entry-level Arduino course that educators can use to begin an Applied Technology or Robotics program quickly.

I say quickly because our conversations at these sessions came back to inquiry and project based learning again and again. For those not paying attention to the current education system, we have produced a generation of kids that appear lazy and entitled to the outside world. In fact, what we have done is empowered these kids to not just ask what they are doing today, but why they are doing it.

To this end, we have to look at task and instructional design differently because very often there are other people doing what we do far better than we are doing it as educators. Which brings us to the problem of the internet and why we need an education specific sandbox for Arduino that educators can plug-and-play.

hyerboleandahalf.blogspot.com
I was lucky enough to have an education that straddles the internet divide, that is the point in time where the internet left the hands of the early-adopter and entered the mainstream to decimate the Encyclopedia Brittanica and make poorly written cat pictures a part of our collective consciousness.

In straddling this divide I went from the problem of "where can I find that?" to the problem of "What parts of this can I ignore so that I get what I need?"

When designing instruction in this age, the focus should be on an end-game where we release the students into the world to do something relevant with what they have learned or else structure the task within something relevant to the student's lives so that they learn via collateral-damage.

In the robotics world this is simple because we can easily structure a robot-build around any number of real world premises and then hand the students some basic tools and let them choose what is relevant to their particular project.

On a side note, I find this this last statement scares many educators. It implies that the teacher is no longer the centre of the class that manages big ideas, but instead they become a technician that uses a structured a challenge and troubleshoots the small problems that arise from inattention, limited foundation skills or technical problems(three problems that send teachers into fits of rage in my experience).

wikimedia.org
I'm in the process of revamping my basic electronics assignments which come in Google Form flavour to address the foundational skills in electronics. Would I be happy if they are never used as a part of a major project? Sure. Would I expect that a student should look to that smaller pool of knowledge before the ocean of the internet? Also yes.

If anyone reading this has found a plug and play Arduino curriculum, please post where it is below. I know that many introduction courses exist, but I find that they aren't aimed at absolute beginners in that they introduce too much superfluous information too early. My goal is to have something basic that can get students rolling quickly so that they can return to more theory later once they have a taste of success.

Wednesday, July 29, 2015

On Thorough Testing

Today I had the pleasure of attending / helping to host a session about Arduino as put on by my friends at Solarbotics.

These guys do awesome work in both supporting the local Robotics/Electronics community in Calgary (among other places) as a supplier and as an educator. I have had many trips out there to make sure that a piece of hardware or concept that I was using were being used correctly.

For all of you aspiring or prospective educators, check out their well built and cost-effective Sketchboard for Arduino fun.

Today's session allowed me to test out some of the Arduino Theory presentations with a couple of beginners and a couple of experts.

To no one's surprise, the experts found some holes in what I had created and the beginners found some errors in the presentations as well. Those holes have been fixed in Arduino 01-04.

What I took away from it is that even at my stage of being very new to this system I come with some assumptions including how a breadboard works. This is something that is very simple but that could throw a beginner for a loop. the main problem this illuminated was that the earlier units in my course this year are going to need to be slightly longer as I may need to sneak in some foundational skills from one area, such as breadboarding, into units where they don't explicitly belong, such as programming.
For anyone not aware of how a breadboard works, Colin Cunningham has one of the most informative lessons on them through his Collin's Lab Series on YouTube.

He also has a fantastic video about building an old-school breadboard.

With this being the case and my programming module being at a place where I can leave it, until the robotics project credits at least, I am going to tackle these electronics lessons next. Luckily, those were some of my more well developed assignments and sections so revamping them for 2015/2016 should be relatively simple.

This event was also a lesson that reminds anyone developing curriculum and lessons that your assumptions are invisible to you. Nothing is as humbling as watching something that you created to be simple and self-explanatory need significant explanation.

Good thing it's July and not September I guess.

Cheers.
Way

On Arduino Theory

Arduino Theory Folder

Monday, July 27, 2015

On Assessing Real World Skills

A significant amount of the current educational rhetoric has been focused around the idea of teaching real world skills to our students rather than institutional skills that are important for school.

I phrased this early in teaching school by asking the question, "is school a place for learning key skills or for social normalization."

I always found it cynical when I didn't receive a clear answer so I've always tried to shift my focus from the latter to the former.


To this end, our department has routinely used a work habits and employability rubric to assess our students and in accordance with 21st century learning, we also ask students to have a (rather significant) role in assessing their progress. While frequently a sore spot in your Gluteus Maximus, the information gathered by these type of activities has frequently allowed me to refine and develop my own teaching practice.

Image from




The rubric itself can be found at http://goo.gl/forms/dH4jPr4KE7 and any teachers reading this can feel free to email me if they want access or their own copy of this rubric. I have been an early adopter of Google Drive and I find the data collection power of Forms to be excellent.

If you choose to use this kind of rubric, you will need to trust that students are being honest about their names; in our district we have district email accounts that are automatically recorded if the Form is set up correctly.

The rubric clearly states what is expected of students and while some parts, such as attendance, are as institutional as they are practical (especially in creative or knowledge career fields), the rest allow students a peek into what is valued in the real world, especially that of technology.

The joy of jumping into the water of assessing real world skills, especially in technology, is that we can begin to modify and redefine what the tools we are teaching and using to teach mean, because we are less constrained by the expectations of a traditional teaching expectation. See the graphic on the right for the most succinct analysis of this effect that I have run across.

The most important part of that rubric is the Peer Support section in my opinion. This portion comes with a story from me because I have experienced this peer support early in my teaching career and I credit it with keeping me going through the rough early years of a teaching career.

The way peer support helped me was, as far as I know, through serendipity. During my first full year teaching contract I was tasked with teaching a full year of English as a replacement for a long-tenured teacher who had gone on disability leave for health reasons. This contract eventually branched out into Phys Ed and Robotics but not before I realized that I had the best classroom in the school. The school was built as one C-shaped hallway that encircled the library. Many of the classrooms, including mine, were attached to the library; but my room had the distinct advantage of being the perfect shortcut, being attached the the PE hallway and the library, to avoid one frequently locked door to the library (and therefore the photocopier).

This gem from theoatmeal.com is essential reading for all teachers.
Even those of you who claim to not be caffeine dependent.
It is important to note that I made a conscious effort to invite people to use my room as a highway into the library early in my year there. This veritable tide of people who wandered through were a great source of inspiration, motivation, and occasionally a place for post teaching-disaster counselling and gripe-fests (for myself and them).

The following year I was a part of a school that was at capacity due to a reshuffle of language programs. Myself and two other teachers were assigned to an office in the coffee room. Not the staff room mind you...the coffee room. Like my previous experience, having a couple of people to bounce things off of and help out was hugely helpful for me and, I hope, for them. The other advantage was that since we were teaching in other people's classrooms being at capacity, it frequently displaced other teachers to our Nomad's Hut...sorry, coffee room...to share their wisdom with us just starting out. Nomad's Hut was what I preferred even if other staff liked Cart People as our nickname(even though my cart was predominantly digital).

To any administrators reading this blog, please keep my experience in mind as I attribute this peer support experience to keeping me in the profession. Designing spaces to make people interact, and yes to occasionally come into conflict, is something that should be included in any plan involving new teachers. A quick shout out to @principalwise who was our fearless leader at the time and who, intentionally or not, spurred the development of these real world skills in a handful of her young teachers. I, for one, thank you for it Michelle.

The conclusion to all of this is that through technology, and good instructional and behavioral design, we can make sure that our students, and our developing teachers, can harness real world skills to not only survive but to thrive in challenges that may be impossible for somebody in a traditional learning or teaching environment.


Cheers, and enjoy the summer coffee detox. (Says the teacher still writing a blog after midnight in July)

Monday, July 20, 2015

On Arduino

Wow, so much for a post a day.

Life...right?


Anyways, I have made some progress on fleshing out one of the units that I feel I did badly this year and wanted to improve upon in the coming campaign. That unit was the introduction to Ardunio programming.

The awkward part of using the Arduino system is that it is quite new and many people disagree on how exactly to teach it to beginners. Some methods focus almost fully on teaching code, such as Arduino.cc 's tutorials. Other methods focus instead on hardware integration with no small amount of electronics such as Adafruits tutorials.

Since I have to blend this in my room I decided to focus on the software first and then work specific pieces of hardware into the curriculum when we embarked upon our robotics challenges.

sparkfun.com
The Arduino portion of the unit is meant to be used by students after they have completed CODE.ORG 's Accelerated Introduction to Computer Science Course.

This course is a great introduction to coding concepts and it can be administrated from a teacher account by having students add the teacher's course code before they start working.

It is advertised as a 20 hour introductory course, but I often selectively skip the unplugged activities and focus on the code-building. This course typically takes a motivated tenth grader no more than five classes (~7 hours) to complete.


The Arduino portion's theory is beginning to come together and can be found in the following links:


As always, feedback is appreciated. I will post more presentations as they are completed and plan on also posting the full unit plan including assignments.

Thursday, July 2, 2015

On Introductory Robotics

I realized tonight that I have begun to assemble resources and materials for the coming school-year without giving much of an overview of what it is I will be actually teaching so here is part 1: Robotics - Introductory Level

In introductory robotics, students are exposed to a wide variety of topics in robotics, mechatronics and engineering. A typical semester includes the following modules and credits.

ELT 1010 - ELECTRICAL ASSEMBLY 1

In this unit students are introduced to the fundamentals of electricity and safe work practices. They will learn to solder electronics components and will review the fundamental concepts involved with working on electronic circuits such as resistance, capacitance, inductance and electromagnetism.

DES 1050 - CAD 1

Using AutoDesk’s AutoCAD software as well as AutoDesk Inventor, students will learn the fundamentals of Computer Assisted Design and Drawing. They will apply these skills in a variety of design-oriented assignments that will lead them to producing portfolio-ready drawings. The skills they learn in this unit will then be applied to rapid prototyping with the lab’s 3D printer.

ELT 1910  - ELT PROJECT CREDIT A

Students will have the chance to learn a variety of system control methods and documentation for those systems as they explore the FESTO Didactic electropneumatic learning system. This system allows students to learn a variety of concepts in both manual and automatics electrical and pneumatic controls frequently used across the manufacturing sector.

CSE 1110 - STRUCTURED PROGRAMMING 1
(CSE 1240- ROBOTICS PROGRAMMING 1 for students already enrolled in Computer Science)

The Arduino programmable microcontroller is an up and coming technology that allows students to experiment with programming while seeing the results of their programming control their electronics from the Electrical Assembly unit. The system uses a variety of hardwares including the Arduino Uno and Redbot Mainboard as well as CODE.ORG to teach the basics of coding.

ELT 1130 and ELT 1140 - ROBOTICS 1 and ROBOTICS APPLICATIONS 1

Each robotics semester concludes with an overarching project that brings all of the technical and design elements that students have learned through the year. This challenge could involve an autonomous robot challenge such as RobotSumo or a remote control challenge that includes a more significant design component. This year it will likely be in the form of an autonomous challenge and a direct control challenge(either tethered or IR)


So there you have it, my upcoming semester in a nutshell. I will be updating this blog with notes and planning from all of these credits as the summer goes on.

In case anyone is wondering, anything I have created and posted here is free game for your classroom under a Creative Commons licence. Have at any of it and make sure to comment on any improvements that you make to it.


.

On Condensing ELT 1010

A couple of years ago a colleague mentioned that it would be great if we had a pre-made module for ELT 1010, an Alberta Ed. Career and Technology Studies (CTS) course that is a prerequisite for almost everything that I do in Robotics.
cartoon from xkcd.com

I've taken the liberty to summarize the curriculum using the major outcomes:

1. create a health and safety plan with special emphasis on conditions and factors related to the specific pathway or series of courses.
2. research common processes and methods of hazard identification, assessment and control specific to the pathway or series of courses.
3. apply the appropriate fabrication techniques, including proper soldering and component assembly procedures, to construct and test a simple electronic circuit.
4. apply the appropriate fabrication techniques to construct and test an electromagnetic device.
5. identify and assemble common electrical/electronic cables and connectors used in power, audio and video connections.
6. demonstrate established laboratory procedures and safe work practices
7. demonstrate basic competencies.
8. make personal connections to the cluster content and processes to inform possible pathway choices.

To this end, I will be putting parts of this module together in the following order and am happy to share what I have
in hopes that it might make someone else's life more simple as they step into the realm of teaching robotics.

  • Lab Safety
    • Powerpoint (Feel free to check the link and send feedback)
    • Lab Tour
    • Safety Quiz (minimum 80% on safety quiz to participate in course)

  • Basic Electrical Theory (to run concurrently with soldering due to lack of soldering irons)
    • Circuits, Ohm's Law, AC vs DC current
    • How to measure voltage (Multimeter use)
  • Soldering Basics (to run concurrently with electrical basics due to lack of soldering irons)
    • Soldering safety, terminology and workstation setup demo.
    • Soldering Activity(LED Light Board)
  • Electronics teardown
    • Students will be presented with an old electronic device from the recycling. They must:
      • Disassemble it.
      • Identify and photograph the major components (there will be support for this).
      • Put together a presentation on how those basic components work.
  • Final unit summary and review
    • Final quiz
    • Employability and Work Habits assessment (self and teacher assessed)


This module is meant to be a quick introduction and as I develop more than the safety presentation I will toss them up here.

For those interested in the theory portion, it will be drawing heavily from Sparkfun Electronics' online resources. (The linked page is just the tip of the iceberg)

I will also be using Collin Cunningham's wonderful, and slightly awkward, Youtube Videos

Feel free to comment if you know of any resources in the vein that could be helpful.

Tuesday, June 30, 2015

On Starting the Three D'sL Drawing Drafting and Design (DES 1050 Planning)

The first step towards developing my Robotics curriculum for this year has been at creating a way to teach AutoCAD.

The full credit description can be found here under DES1050 CAD 1.

Why AutoCAD? Because it is a very useful tool for documenting designs and planning robots. Our school board has always had a licence and now any student or educational institution can download a free 3-year licence, sweet.

It is a great place to begin as it quickly identifies shortcomings in mathematical ability that should be remedied early if students are to function in Robotics.

On my first attempt at teaching AutoCAD last year I identified two major shortcomings:

- I presented my theory via a great resource, myCADSite.com. This site is great, but it didn't connect with my learners at all being full of words and not pictures.

- I limited them to 2D models in AutoCAD which they quickly circumvented and wandered into 3D..

In short, we have to ask "will it blend?" Of course I don't mean this literally, but I do intend on doing a blended learning environment properly for this portion of my class.

Also, we will be venturing into using the most basic functions of AutoCAD Inventor in this unit.

From a logistics perspective I will have 8 computers available for this unit and nearly 30 students in the classroom; this unit will need to run itself as I will have 4 projects on the go during this unit with all of those kids and limited resources in the areas I want them to cover.

To this end, here is the overview of the video lessons that will be presented for this unit. They will be presented in video form with a maximum length of 5 minutes, If a lesson can't be taught in less than 5 minutes of tutorial, it will be split into multiple lessons.

Lesson 1:
Navigation of the drawing (select, zoom, pan)
First commands(LINE, CIRCLE, RECTANGLE)
Cartesian Coordinates
Absolute Coordinates
Relative Coordinates
Polar Coordinates

Lesson 2:
Creating Layers
Drawing Dimensions
Using the Model and Layout views
Saving as a PDF

Lesson 3:
Using OSnaps
TRIM/EXTEND
FILLET/CHAMFER
OFFSET

Lesson 4:
MOVE/COPY
MIRROR
STRETCH
ROTATE

Lesson 5:
Intro to Inventor

Each lesson will be designed to relate to a specific assignment that allows the students to demonstrate their knowledge of the tools in AutoCAD.

They will end up with five final drawings, each worth 19% of their final grade in this module(which will be designed to take approximately 14 hours to complete).

The next two weeks will be filled with me recording these lessons.

I'll post them as soon as they are complete.

On Beginning Again

I have tried blogging on and off since university when we encouraged to keep a blog of our work through teaching school at the University of Calgary.
Though it has fallen off of my radar due to the sheer insanity that is the workload inherent for beginning teachers, I want to keep a record of my development through the next 12 months.

This school year will see me teach classes in the areas of Medical Studies and Robotics at the high school level. I will be chronicling all of my lesson plans, developments, thoughts and feelings on those subjects here.

This work isn't intended for an audience beyond myself; that being said, if any teachers out there find it of benefit, I implore you to use whatever you would like.