CYBER-Alaska 2012 Workshop Notes

Notes from our summer-2012-cyber-alaska-workshop.

See also our list of topics to cover in class.


Fall 2012 Scheduling

  • Mt. Edgecumbe: Mark’s Fall Robotics 1 is 11:05-12:25pm every day of the week.  Mike & Steve can make Tuesdays, so we’ll do a weekly telecon Tuesdays (1 hour/week).

Fall: Animation 2nd period: 9:40-11am; Robotics 1 3rd period: 11:05-12:25pm.

Spring: Robotics 2: 1:15-2:35pm ;   Robotics 1: 2:40-4:00pm.

  • Lathrop: MF schedule has 50 minute classes. TWR schedule has 85 minute classes 2 of 3 days. Total is maybe 5 hours/week/class.

Robotics 1, two sections: 1st period & 4th period
1st period Robotics 1:
MF: 7:50-8:45 (Steve)
T: 7:50-9:15 (Steve)
R: 9:25-10:40 (Steve)

4th period Robotics 1:
MF: 11:30-12:20 (Mike will be 15-20 minutes late on these days)
T: 11:30-12:55 (Mike won’t be able to make these days, due to the telecon)
R: 11:30-12:55 (Mike)

5th period Digital Electronics: it’d be good to mix the PLTW boolean stuff with some more modern software stuff.  FIXME: verify class will actually run this year, and the schedule.
MF: 12:25-1:15 (Mike)
T: 1:05-2:15  (Mike could leave early)
W: 11:45-12:55 (Mike)

  • Effie: courses meet 3x per week, 80 minutes per session. Total is about 4 hours/week/class.

M:2:30-3:38 STEM Lab — helps students prepare for FTC competition.
W:2:30-3:38 STEM Lab — helps students prepare for FTC competition.
F:12:20-2:00 STEM Lab — (combined with Principles of Technology)  learn about arduino & robotics.
F:2:30-3:38 Middle School — robotics projects with 8th Grade


Mike’s Fall 2012 schedule:
MWF: 8am-noon busy.
T: 8am-9am, 2pm-9pm busy.
R: 2pm-5pm busy.
Steve’s Fall 2012 schedule:
MWF: 11:45-12:45 (EE 693)


Teacher: Mark Nance

Mt. Edgecumbe residential high school, in Sitka.

Mark’s classes: 85 minutes per day (“a year in a semester”). Starts the last week in August.

Robotics 1: taught both fall & spring
– Prereq: Algebra 1 and Computers 1 (office to web).
– FIRST robotics & contest. Has a pretty big curriculum, but could conceivably pack this down to Sept-early Nov; but then Nov to mid-December could be free. Enrollment is typically 4-9, but you add teams of 2-3 people each. Mark does a little programming in this course.

Robotics 2: spring
– More open design, better match with our stuff.
– FIRST contest early March (about March 1).
– Probably best CPS period is late March through May. More experienced kids can mentor less experienced.

To do a *dedicated* cyber-physical yearlong class, Mark would have to get his administration’s agreement, which isn’t doable this academic year.

Mark teaches an animation class in the fall. He was using Sticks (stick figures), Scratch (2D sprite animation), then Flash. They’re considering adding SYN studio.  Perhaps adding Mike’s Animation Library would be useful here: an example of animation for non-entertainment purposes.

Mark’s considering a high school electronics course. Orion suggested including appliance disassembly (and potentially repair). Steve suggested using adafruit badges; Mark could actually vinyl-cut custom stickers.

We’re trying to find travel funding: Mark will be asking around to get airline miles, so fellows or Orion can travel there.

Mark recommends adding an engineering log: start by having them list everything they already know (e.g., about microcontrollers), have a space available for questions to ask (read at end of lecture, or end of week), and a brief 5 minute thing at the end for “what did you learn?”.

Carnegie Mellon has a Robot C curriculum.

Mark got into robotics via the high tech biology program. He did a 1-week workshop at CMU on robotC to learn robotics. CMU uses lidar for a variety of tasks.

CMU has a bunch of RobotC curriculum; Mark teaches PID, but for lego software this is just “watch the video and check the PID box”.  You can’t tweak gains, or see the implementation, like you can with ArduPilot.

Mark got funding from BP to buy some robotics equipment:
– Half is going to a quadcopter (or hexcopter) to put a camera on top.  See below.

– Thomas ROV, hoping to compete in the state science fair in Engineering. Autonomous dive to 100ft, record whale sounds for a period, and then rise back to surface. Just need one pump, to fill and empty the dive bladder. Have a Scrips institute sound transducer for this. The same transducers are used in deploy-and-collect mode too. Needs some sort of radio communications; we recommended XBee.

Kids are doing 3D fabrication. The hardware is at Sitka High, but Mt. Edgecumbe supplies the ABS, and the students use solidworks to build robot parts.

Teaching style is more “challenge” based.

Current big needs:
– Communication skills; ability to work as a team
– Writing (engineering logs)

What Mark wants:
– Two weeks before lesson is given, send Mark the lesson plan for constructive criticism.
– Give lesson in class here in Fairbanks.
– Fix up lesson and send to Mark.
– One week later, Mark gives the same lesson.
– We do a skype video conference, probably Monday or Tuesday (losing kids for travel near end of week).

Teacher: Larry Ehnert

Lathrop High School

Lathrop’s Project Lead the Way (PLTW) national STEM core is:

  • Introduction to Engineering, Drawing, & Design (IED).  They do a few reverse engineering projects, where they disassemble an object, measure it, and build a virtual model.  Vision is to apply this to car design: model onscreen, use in reality.
  • Principles of Engineering (POE).
  • Senior design class (EED).  Find a problem, propose a solution, design matrix, get feedback on solution, prototype phase. This is a yearlong process (fall/spring); but kids pick their own project topics, so they have more buy-in on the final product.

Robotics 1 & 2, and Digital Electronics are PLTW electives.

Lathrop’s Principles of Engineering, taught by Pat Lovely, might fit well with our building infrastructure stuff.  That class has already done Robotics 1, so they should have seen electronics, microcontrollers, and some simple programming.  The course covers R values, energy analysis, etc.  Adding Autodesk Revit building analysis would be interesting.

Larry is willing to do a little bit of CPS stuff in his freshman “Robotics 1” class. Total enrollment is like 50 kids (but only one girl for 2012!). We might select a subset of kids to get supplementary CPS content; for example kids that finish their two-transistor flasher early, could go on to design their own PCB.
– Larry wants to start the course with some simple computer programming stuff, as a warning/filter (expected 2-3 students per 50 just can’t manage the computer side of things).
– Basic course model is to introduce them to robotics, go through contest, use tools & equipment. Fall: woodworking, wiring, metalworking, tad of programming. Spring: FIRST for 6-7 weeks, contest, open period at end.
– Starts class with basic shop safety.
– Does some basic drafting.
– LEDs, etc.
– Basic stamp: last six weeks of the class, after FIRST. Four weeks of content, two weeks of project.  Larry’s sticking with BASIC stamp, mostly because he’s got 50 copies of that, and the curriculum is debugged.
– One option is taking a small subset of kids to go beyond FIRST. – Important to develop ongoing relationship with kids: don’t just arrive for one lesson and then vanish.

Considering adding:
– Making printed circuit boards
– VERY simple microcontroller programming (e.g., PWM color organ)

Example: PLTW class does laser cut acrylic shapes, which are LED lit from below. Larry wants to do a PWM style four-LED color organ, but Arduino is too expensive. The 2553 chip has 3 PWM outputs, maybe six. I suggested the TI Launchpad; you’d need Mike’s online programming toolchain. Two AA batteries for the 3.3V supply.

Trying to figure out how to integrate Robotics 1 and Robotics 2. Trying to simulate Tetrix robot; RobotC Virtual Worlds is one option (if you use RobotC).  Would really like an NXT simulator.

Larry’s thinking about mostly adding our CPS stuff to his Digital Electronics course (another fall/spring course), although this has a pretty extensive national curriculum with a corresponding test.

This class starts with analog, then digital, simplifying boolean expressions to AND/OR circuits: stuff like decoding one counter to cycle through each students’ birthday; or building a stepper driver from a 555 oscillator, a flip flop counter, NAND decoders, and FET drivers. Then flip flops, then FPGAs, and finally microcontrollers and programming. By the end, students basically have the mechanical and control ideas. CPS demonstrations / simulations would be useful, especially for consciousness raising, but might not have the time to develop their own simulations. There’s about six weeks free there, near the end of the year: March-April period. Kids are mostly Juniors, and most continue on to senior design class.

Useful things for Digital Electronics:

  • Making printed circuit boards, in Fall.
  • Do extensive Arduino work in Spring, finishing with full CPS Challenge in April.

The FIRST Tech Challenge (FTC) will be held in Anchorage this year, very first part of March. Larry eventually wants to make a separate rookie division, with regionals and a lower entry fee.

Fully autonomous robotic competitions?
– Lawrence Tech does Robofest

Larry actually worked with the MicroPilot MP2028 UAV control system (6ft wingspan) for a summer project, for HiPAS back in about 2005. Dr. Wong, UCLA, ran the observatory out on Chena Hot Springs Road, using lots of surplus military generators and such. Little MicroPilot micro controller with onboard INU. Gas powered, 1 mile GPS guided transects, visual range. When it ran out of gas, or GPS dropouts, Larry had to land it manually.

Suggests: give students 6″ of solder, which is their *annual* supply. Otherwise students will melt arbitrary amounts of solder just to watch the shiny liquid splashing.

One good idea is to bring neat demo ideas into the classroom: laser harp, kinect toys, GPU simulations.

Larry just got training on Autodesk Revit, for architectural building design.


Teacher: Jeremy Nichols

Effie Kokrine K-12 magnet.

This fall, will be student teaching at Effie Kokrine, in “STEM Lab” and “Earth Science”. They’re having a hard time getting the good students recruited. Effie has 150 students in 7-12. When Effie was “Howard Luke”, it was something of a dumping ground, which they’re turning around.  Cultural differences, and serious personal challenges, can be a huge issue.

Suggests ArduPirates & UAV Scout
Teaches STEM Lab (aka robotics) class in the fall & spring, end of day. Most kids will be doing FIRST in spring.

Jeremy’s physics classes were experiment/discovery based, not highly structured. (No day-by-day lesson plans.)

Teaches Earth & Space Science: Earth, Weather, and Oceans, where he wants to cover at least some building infrastructure in the fall. This semester: how to be a scientist, earth systems, weather & climate, oceans.  Idea would be to cover insulation, earthquake safety, and other building design information.  It’d be very useful to have students be able to construct a model building, log the temperature/humidity/lighting information (via Arduino?), and estimate the occupant’s comfort, balanced against energy consumption.  You could even run actuators, like heaters, fans, or louvers.  Classes start August 14, time off for Moose season; probably start this section around October or so.  Later on, if students are interested, ROVs would be useful too.

Teaches 7th & 8th grade science class, 6th period, which is currently totally open. We definitely should do some cool demos there, probably something like October.  “Cool gadgets you can make on your own”, like a tiny DC motor car, as a way to tempt students to get into our robotics work.

Teaches STEM Lab, 6th period, alternates with 7th & 8th grade science class.  Basically totally open, probably focusing on robotics; robotics teams will probably go to Lathrop on Wednesday afternoons for FIRST.  FFA & Envirothon will be the same class.

Schedule: 6th period class is afternoons: about 2 to 3:30.  Earth & Space Science is 2nd period: so starting at 10am.


Collaborator: Greg Walker

UAF Poker Flat Research Range

Has 100+ Raven UAVs, wants to build (1) new electronics/camera based on ArduPilot, (2) launching catapult, (3) easier user interface.
Pitched user interface design idea again: how would you specify targets, use the map, return to base. Idea is kids provide a fresh perspective on the UI design; we’d really need to let kids actually *build* UIs.

Working with Colorado, Spain, a few other small collaborations. Also working with Hutchinson Career Center.

FAA center of excellence in UAVs: Fairbanks, Kansas, North Dakoda, MIT.

Challenge: how do you keep kids engaged, if you can’t fly every day.
– Opportunity: fly in gym/hangar/etc. GPS?
– Simulation?

Tasks for students to think about: basically end-to-end mission design:
– Payload design & fabrication. Aerosol counter for air quality monitoring? Geiger counter for Fukushima debris?
– UI design & construction.
– Security & privacy issues: how do we protect important things from UAVs? How do people protect their privacy, while letting science happen?
Larry thinks this general task would fit well in his senior design class.

USGS would like to fly volcanos, although it’s hard to get out there and back on one battery. Greg is hoping the balloon-launched version will give more range for this.


PI: Seta Bogosyan

BS & MS in ITU
UCSB PhD, working in industrial robotics.
Started doing micron accurate wafer assembly hardware, mostly motor modeling.
Getting into network-mediated bilateral control, especially compensating for network delay. Need to get stability without “loss of transparency”: the feeling of being there, and being in control.

Also has a grant for control of combustion engines, for minimum fuel consumption.

Project Manager: Rex Estrada

Did BS in political science, MBA. Took UAS project management course.

High school in California wasn’t good at all: no outreach, low standards. Rex’s goal is to improve high schools.

Goal is to integrate this sort of outreach into the university system (not just a short project). Another goal is to get more distance delivery going.

Fellow: Steve Kibler

Originally from Denver, came to UAF for BS in EE. Got MS in EE last year.
Got hooked on home automation via Star Trek: automatic doors, etc.

Steve is the current Alaska champion for micro-mouse maze solving robots.

Original micro mouse team:
Steve Kibler –
Dave Giesel –
Devin Boyer – software

Micro Mouse:
People have really hard time with (1) building a robot (hardware), (2) building a fast robot (speed), and (3) solving the maze (software).

Expert class world contest is in Japan, Steve’s robot would probably be competitive with the *bottom* competitors there. Evidently the top competitors are currently from Taiwan, and amazingly fast.  A lot of “fast” consists of tuning acceleration, cornering, and sensor parameters, not just hardware.

2012-07-16, 1pm:
Seta talk on Cyber-Physical Systems
“physical and engineered systems whos operations are monitored, coordinated, controlled, and integrated by a computing and communication core.”

“integrates computing, communication, and storage capabilities with the monitoring and/or control of entites in the physical world.”
– Dependably, safely, securely, efficiently, and in real-time.

“Convergence of computation, communication, and control.”

CPS == embedded++

Goal is cyber capability in *every* physical component.

Example: auto consists of 30-90 processors per car (engine, ABS, airbag, wipers, door locks, entertainment): 53 8-bit, 11 16-bit, 3 32-bit. 2m lines of code.

Toyota developed “VDIM” (vehicle dynamics integrated management), which prevents you from steering into a skid (for example). Only problems I can find are car enthusiasts whining that they can’t break the back end loose anymore.

In-body disease modeling: exists for cancer, possible for infectious diseases.

Can reduce road salt application rates by combining sensor data, precipitation-driven simulations, building “Maintainance Decision Support Systems”. RWIS (road weather information system).

Inuktun company builds search and rescue telepresence robots, for pipe inspection/borehole.


2012-07-17: Steve, Microcontroller I/O

Steve uses timers in nearly every project.

The big microcontrollers: Atmel ATMega (Arduino), TI MSP430 (UAF EE), Microchip PIC (low size PIC), Parallax Basic Stamp (runs basic) and Propeller (8-way hyperthreading), ARM (cell phone), and various ancient designs: Intel 8051, Motorola 68HC11. I was surprised to see the MSP430G2001’s standby mode current is 500nA, and even “Off mode (RAM retention)” is 100nA; yet the PIC 12F675’s standby current is just 1nA (though the watchdog timer is 300nA, and Timer1 is 4000nA).

Hand soldering surface mount chips:
– Tack down one corner
– Line up with the leads
– Tack other corner, so it won’t move
Solder the rows of pins. Two methods:
– Flood the whole row with solder, pull up excess with solder wick.
– Glob of solder on three pins, carefully run the glob down the row. Cleanup shorts as above.
Work clean! This makes surface tension work for you.

GPIO=General Purpose Input Output

Suggested additions:
– THE I/O STORY: should probably define “register” if you mention it.
– To add: explain voltage, and voltage range used in digital logic. Something like “0v == GROUND == false == 0 bit”, “5v == HIGH == true == 1 bit”, with “analog voltages” in between. Maybe some example voltages, like a AA battery (1.5v), a 6v lantern cell (6v), an arrow for 120v wall voltage.
– For “THE I/O STORY”, you probably should include the “digitalWrite(2,HIGH);” command.
– Need alligator probes for Arduino breadboarding. We probably should buy some of the Adafruit arduino breadboards.
– THE I/O STORY: INPUT. Really needs a 10K pull-down resistor to make the low input reliable.
– TIMED EVENT: add kid-specific events, like end-of-day 3pm bell.
– Arduino timers: delay(), millis(), micros(), tone().
– Arduino interrupts: interrupts(), noInterrupts(), attachInterrupt(), detachInterrupt(). Only pins 2 and 3 have interrupt on change on the default Arduino board.
– Might be a simplified flash ADC ladder would be easier to describe for ADC, than a successive approximation.
– The R-2R ladder is indeed a really interesting circuit, but you might add some disclaimer like “I was really happy to finally figure this one out… but it happened after about four years of college EE!”
– The SPI, I2C, etc stuff is very cool, but actual *examples*, like Lego NXT (I2C?), SD card (can do SPI), would be easier for kids to stay interested in.

Maybe a V versus I curve for microcontroller output pin: starts at 5V (at 0mA draw), down to 3.5V (at 80mA draw), down to 0.0V (at 90mA draw). I’m surprised that a 4401 NPN transistor, switching the low side of the motor can actually fire up one of my molon gearmotors (stall current 10A, but idle is more like 150mA). We did kill a transistor (always on) by running PWM for a short while.

Arduino properties:
PWM: 1khz, 1.5% to 96.6%
Servo: 0.54ms to 2.4ms, 50Hz pulse rate

Single-layer board with relays:

SD cards can use an SPI interface (or a one-bit SD bus, or a four-bit SD bus)
UCLK clock line, driven by master
MOSI is data from master to slave
MISO is data from slave to master

Board layout:
Mark: uses iCircuit to lay out the design.  A similar open-source package is “qucs“.

Larry: designs boards with NI MultiSim. Has a Gecko-driven Denford micro 3D mill. Wants to drive 7-segment displays, incrementally adding the decoder chip.


Steve showed us how to build a relay controller board layout in Eagle CAD, following the point to point wiring shown here:

– Library: components
– Schematic: electrical connection
– Board Layout: mechanical puzzle

Set dimensions in mils.

Randomly picked out a relay, from relay.lib.
Move tool: grab with left button, rotate with right button

Net tool: Draw net (Steve doesn’t use wires, nets have names)
Place a label with Label tool
Name tool (R2): change name

Layout process:
Yellow is “airwire”: represents an unrouted schematic wire.
Light version: MUST keep in +,+ quandrant.
Move tool: spacebar scrolls

– Shuffle parts around to get close
– “Smash” tool separates name from actual part
– Route tool lets you route wires
– Add labels with text tool.

For a via:
Route tool.
Click to start route
Click to end wire
Switch layers
Click to continue on other layer (automatically adds via)

Design rule check: .dru file, from fab house.
Errors are circled with a hashed circle.

Set dimensions of board:
Wire tool
20 Dimension layer
White outline==outside of board

Copper pour:
Polygon tool
Draw closed shape
Name tool — match NET
Ratsnest tool
Ripup tool to undo the pour
“change isolate 20″

Export: needs a .cam file, for example

Gerber file output:
GBL: bottom layer copper
GBO: bottom silkscreen
GBP: ??
GBS: soldermask
GTO: top silkscreen
GTL: dimension outline

You can view gerber files in Linux with “gerbv“.

kicad is another option: open source CAD layout.

Printed Circuit Board (PCB) Fabrication   (Recommendations from Steve)

ITeadStudios:  10 boards for $25 + shipping.  4″x4″ and 2 layer limitation:

DorkbotPDX:  2 layer.  No limit on board size.  $5 per  You get 3 copies of the board for that price.  Nice purple color!

33each:  For students, they will let you buy 1 board at $33 dollars.  I believe shipping is free.   You have to be a student to get the deal.  Educators might as well.  You’d have to ask.

(go to student program for the 33 each deal)

I’ve used Epec engineering as well, but they would be a last choice option.  They are better priced if you are doing larger order quantities.

Steve’s recommendations for radios:
– XBee serial link radios.
– $50 Turnigy 9X remote control (servo control) radio.
– Buying parts: for tons of components. for nice integrated boards and HOWTOs.

Mike Moss

Tour of the Arduino IDE, which is a pretty nice and well-integrated compile/program/monitor.  Missing a debugger, though.

You can measure the amount of free RAM in the heap using:

void setup()

void loop()
void *ptr=malloc(100);
int v=0;
if (ptr) v=1;

For my Uno, the LED goes out after 19 seconds, so about 1900 bytes of RAM.

Here’s the Arduino code for the little bang-bang sensor-driven Trilobyte controller we built Wednesday afternoon:
void setup() {
unsigned char clamp(int v) {
if (v<0) return 0;
if (v>255) return 255;
else return v;
void loop() {
pinMode(A1,OUTPUT); digitalWrite(A1,1);
pinMode(A2,OUTPUT); digitalWrite(A2,0);
int v=analogRead(A0);
int dir=1; /* 1: forward; 0: backward. */
int go=100;
int target=290; /* target A0 value */
int dead=10; /* size of deadband == move tolerance */
if (v>target+dead) dir=0;
else if (v<target-dead) dir=1;
else go=0;
int mA=3; /* pin 3 motor A power */
int mB=11; /* motor B power */
int dA=12; /* direction */
int dB=13;
int trim=-10;
pinMode(mA,OUTPUT); analogWrite(mA,clamp(go+trim));
pinMode(mB,OUTPUT); analogWrite(mB,go);


We gave platform demos for the dozen students in Mike Baccus’ ASRA “Advanced Robotics” (who use NXT):
– They liked the R/C TurtleBot.
– They really liked the Kinect sensor & IR dump.
– Got a good Micromouse demo, but some problems getting stuck at board boundaries.


Creating simulations. We definitely need good tools for:
– 2D or 3D visualization, with 3D model
– Serial communications (or bluetooth) to the robot.
– Keyboard/mouse/joystick interaction.

Slowly bring up with:
– Cartesians
– Angles in radians
– sin and cos level trig
– Vector arithmetic

2012-07-20: Mike, with his new 2D animation library

load_texture gives you a Texture
Sprite object

Need to explain concepts first:
– “Texture”: it’s a picture, stored in a file.
– “Sprite”:
– Grand unified programming model, like Arduino: rename “create” as “setup”, and “step” as “loop”. Make “Serial.begin” and “Serial.print” work, and you’d get tons of users!
– Cartesian coordinates. Locations are in pixels. Origin is in the center of the screen. Rotation in degrees–how do we do sin & cos?

I always pass a hardcoded set of args to glut:
char *someName=”foo”;

Fixed pixel count, or fixed width is interesting. I’m not sure about using a bool, rather than just picking one and sticking with it.

The stripbook style animation is pretty interesting. How do you decide horizontal versus vertical cuts? What are the units for “.update”? Inverse seconds?
Kids would like:
– Being able to draw their own images.
– The *POWER* of programming: close with the ‘q’ key if you want!

General Teaching Observations:

It’s surprising how primitive teacher education actually is right now.  Basically teachers are plopped into a classroom and told to “figure it out”.

There’s a good list of: MGED Teaching Strategies

Mark Nance suggested we ensure we’re doing “Formative Assessment” (day to day checks, distinguished from “Summative Assessment” at the midterm & final). Mark uses thumbs-up/thumbs-down to ask if students are comfortable with understanding stuff.

We need to decide what vocabulary we need each day, write glossaries, and decide how to teach and evaluate that vocabulary.

“think-pair-share” is a common technique: ask an open-ended question, have them talk amongst themselves, then announce their answers.

+ Teacher has a well-organized outline for the lecture, so they won’t miss big pieces.
+ With powerpoint online, students can focus on the lecture, not on notes.
– Yet reading the slides is really boring, so most students actually prefer board work.

Mark’s recommendations for in-class work:
– *active* stuff: motors, lights, sounds, thermistors.

Maintaining order:
– First week, lay out rules: no swearing, no …. Enforce with *one* student, and it’ll stick. It’ll even become the cultural norm (students whisper “he doesn’t like that!” after an infraction.)

One idea:
– Start with pre-NXT basic motors, gears, microcontroller, etc.
– In Oct-Nov period, switch to NXT.
– Jan-Feb, pretty solidly FIRST.
– March 1, FIRST contest.
– April-May, beyond NXT: networks, simulations,
– May: virtual contest

NXT, or Arduino?
– Get more done via NXT
– Understand more detail via Arduino
– Go beyond NXT into networks


Broader University/High School Integration

One broad outcome of this project should be better integration between high schools and universities.  If students have seen UAF students, teachers, and projects, they’ll be more likely to come to UAF.

Integration with other disciplines, like printing sculptures with the 3D printer, synthesizing music with virtual instruments, making beautiful computer graphics, may be a way to get more students interested in STEM.

If UAF did a FIRST Robotics Contest (FRC) team, like Wade Roach’s UAA team, that might provide an impressive draw for the best FTC kids.  FRC takes six weeks of amazingly dedicated effort: a tennis-court sized playing field, workshop access, and 100% dedication from students and mentors.

How do we make STEM as popular as sports?  Follow the sports model, with teams and rivalries; and recurring events, like a Friday night robot fight, with refreshments?

Broadening participation:
– Send cool, beautiful demos out to middle schools, for feeders.
– Get underrepresented students interested via: artistic beauty (LEDs?), musical processing, wearables like lilypad. Aesthetics: brushed aluminum cases, paint jobs.
– Middle school is evidently a huge cultural adaptation period, where people decide what to focus on.  This is where we have a chance to reach people!

2012-07-16: Competition (or “challenge”?) discussion

Scheduling: For FNSB, 13-17th of May is last full week of instruction.
– Mark recommends third week in April: 22-26. Doesn’t want this hanging over kids’ heads during finals week, nor disrupt his schedule with travel. Finals week is April 29-May 3.
– Larry could run all the way to May 10 or so.

Green building contest:
– Good for Jeremy Nichols’ Climate & Earth Science class. (Some students are dragooned there!).
– Probably towards end of October, about a weeklong activity.
– Build an insulated box (foam?).
– Sensor: thermistors, amp meter.
– Actuation: resistive heater.
Ideas for moving beyond FIRST:
– Have a price limit for the whole robot. This prevents big teams/schools from dominating.
– Instead of *just* the contest, also have an engineering evaluation and presentation, with bonus points for fabricating your own parts.
– Land, Sea, Air categories. Bonus points for same robot competing in multiple categories.
– Simulation category. Stuff only shows up on the screen, which would be hard to keep people interested.
– Teleoperated robots. This eliminates travel costs, which are a *huge* chunk of total costs for Alaska FIRST teams.
– Could ship robot to Fairbanks, for robots to compete on main board.
– Jeremy suggested leaving their physical robot in place, in a “holodeck” type environment (kinect?).
– Goal is would enable cooperation, *not* competition.

Mission ideas:
– Per-school missions: each school (teacher) decides on their own mission?
– Mark map obstacles with bright colors, or QR codes.
– Interoperation between aerial and ground vehicles; for example by exchanging map information.
– Search & rescue robot: find person, get person on vehicle, return. Could emphasize different sensors and actuators by having:
– Some people with known locations
– People with magnetic heads (easier to pick up)
– People with big orange streamers (easier to see)
– People with an integral heater (FLIR vision, or PIR)
– People near a gas leak (LPG gas detectors are $3 at sparkfun)
– Person “trapped down a well” (a 3″ ABS pipe), harder to pick up
– Traverse difficult terrain, like bodies of water (multi-vehicle)
Compare with:
– Clean up oil spill in middle of ice: how do we communicate between subs and satellites, with the ice in the way? [Jeremy]
– Fire extinguishing robot contests (candle). [Larry]

One option: year-by-year different focus? People that have done FIRST know ground vehicles, so that’s a place to start.

Another option: discourage remote control operation, encourage more simulation & control algorithm work, by adding artificial lag. Similar to real problem with space exploration.

For example, use UAV to provide a top-down live video link showing the playing field. And/or use UAV to supply reliable comm link. Or use UAV could provide search for the grid cells.

Another way to go is to have kids start with a commercial, non-skid steer, R/C ground vehicle. The cost should be fairly moderate, possibly even cheaper than parts (or even tetrix for non-FIRST teams). Students would then focus on electrical interfacing (sensors, steering), and especially the control scheme.

Playing field:
– Obstacles should be portable, and easy to set up.
– Parking lot? Soccer field? Gym? Outdoor is hard if we start in March, and very flaky in April.  Indoor is probably more reliable.
– Sector-based? Field is a series of squares.

We do need to convince students that this entire simulation business is actually worthwhile.  What happens when you can’t see the robot, and the onboard video shows just a white wall?  What happens to the robot when the Samantha module drops out?  What happens if the robot goes inside a steel drum, where there’s no wifi reception?  A simulator might have enough fidelity to let you drive out of the wifi dead zone.  We could even manually force this by killing wifi for a few minutes during the contest.

Options for physical layout of contest:

  1. Robot & teams come to Fairbanks.  Robot & UAV are physically colocated.  This is the FIRST model, but travel costs dominate, and it’s tough to motivate the simulation half.
  2. Robot stays at school, UAV data is virtually piped in via the network.  One advantage is that robot mechanical debugging can happen locally.
  3. Robot shipped to Fairbanks, student team stays at home and teleoperates the robot over the network.  Similar to real remote rescue operations.

Final challenge design:

  • Random field generator.  The FIRST field is 12ft x 12ft, so everybody has that; but we should also support larger areas.    Robot should fit in an 18 inch cube, but obstacles may be as close as 1ft.
  • Geolocation support is provided by a Kinect  ($150), mounted rigidly off to the side of the field.   This provides 3D location information for the ground vehicle (when in view) and position feedback the UAV.
  • UAVis a Parrot 2.0 AR drone ($300), which provides a reliable top-down camera view.  We will provide an API that includes these abilities:
    • Display the UAV video stream.
    • Display the Kinect video stream.
    • Display the locations of all the obstacles on the field.
    • Extract X,Y field-level coordinate information for a particular color (for example, the ground vehicle, or the target, or a colored obstacle).
    • A command protocol to position the UAV at a specified X,Y,Z location over the field, within an allowed flight volume.
  • For obstacles, we’ll use dimensioned lumber pieces, and for larger obstacles plastic storage bins.  Not all obstacles will sit flat on the floor–there may be tunnels as small as a 12″ cube.  Obstacles cannot be moved.
  • Each target will be a 2″ PVC end cap.  Live targets will include both a strong magnet and an infrared LED.   Dead targets will look the same in visible light, but should not be collected.  The ground robot’s sensors (up to you!) should be able to detect the object you’re looking for.
  • Students search the field for all targets, while avoiding the obstacles, and using the video and 3D location information from the aerial robot.
  • The student team will mark the verified X,Y position each of the targets, both live and dead.
  • The student team will collect live targets.

2012-07-23: Lesson Plan discussion

Goal is to convey cyber-physical systems: the first day, get overall vision across *first*, so kids know *where* they’re going and why they *want* to get there. For example, explain the basic idea of the contest.

Mark suggests starting with the end product: what skills and tools will kids need to build what they need?

Ground robot: GOAL is search and rescue contest (with teamwork!)
– Mechanical design for chassis
– Motors
– Microcontroller, such as NTX or Arduino
– With encoders for PID
– Software:
– PID motor control?
– Mechanical simulation
– Animation
– Maze search
– Communication with UAV

Aerial robot: built and run by grad students
– As above, but maybe purchase entire chassis
– Standardized communication protocol

Building control system: GOAL is green building contest
– Platform: build insulated box
– Sensors: thermistor, fuel consumption, airflow
– Actuators: electrical heaters, fans

Style should be challenge-oriented, for formative assessment & inquiry-based teaching.

One trick is to explain things with very simple terminology, like “rate of change”, then *at the end*, once kids understand things, to show them the scary greek equations.

Expected difficulties:
– Kids need math. Lots of math. Algebra level.
– Classrooms will have a wide range of existing skills

Simulations generally:
– Need good, reliable tools: graphics, physics.
– Students need at least some rudimentary programming ability.

Offline simulation:
– Simulate parts: 10 oz-in torque motor lifting 5lb arm. Newton + tooling?
– Learn control algorithms, tune/debug maze search.

Online simulation:
– Useful even for simple open-loop systems, to see when reality & simulation diverge.
– To make them match, need good sensors; otherwise it’s tough to tie together with reality.
Simulate during NXT/Samantha module dropouts?
Weissmann controller senses outside temperature, and adjusts heating rate to match. [Jeremy]
– Lego & Tetrix hardware exists at each school (for FIRST).
– Larry has 15+ Arduinos; 50+ NXT; 50+ Basic Stamps.
– Jeremy has maybe 3 NXTs, and a quadcopter + ArduPilot 1.
– MSP 430 Launchpad is only $5 each.
– Arduino is $30 each.
– XBees? $20 for the board, $20 for the shield, etc.

Larry recommends going beyond NXT, to some other microcontroller.

Typically, *you* provide equipment to schools that you want to work with.

Jeremy has used Audacity and the PC audio port to trace connections (very cheap widespread ADC).

Panchromatic photodiode sensor:

IR-only photodiode:

Both of these are surface mount, $0.15 each.
Larry uses the solarbotics gm3 “gear motor 3″ 224:1 90 degree gear motors.


Ultimate goal: kids operate a vehicle via an onscreen live simulation.  For the simulation/software side, the NXT would an extremely handy tool: this means the hardware is basically not the problem.  NXT has shaft encoders already, so that side is totally taken care of.

Using NXT would enable kids all the way down to Robotics 1 to actually get CPS content.  We’d probably want to go beyond NXT for the CPS UAV challenge.

NXT Hardware:

  • Internally, it’s a 32-bit ARM7 chip.  256kB flash, 64kB RAM, 8-bit AVR I/O microcontroller.
  • It runs on 9vdc.  By default this takes 6 AA batteries, but it runs for quite a while off one 9v battery.  It just won’t power itself from USB.
  • The 6-pin phone-looking plugs have pinout: +9V/analog, GND, GND, +4.3V, I2C clock (SCL), I2C data (SDA).

Software infrastructure for NXT:

  • RobotC: Actually C++ based.  The IDE has pretty good debugging, joystick support.  Mark basically follows the RobotC + TETRIXcurriculum.  The IDE also supports Arduino.
    • Toggle Settings:  Robot->Motors and Sensors Setup (Virtual mode has only one type of motor).
    • Might not be completely Wine compatible?  (Driver issues?)
    • Can connect directly via USB.
    • Bluetooth:  Shorter range but better reliability.
      • Default PIN is 1234.
      • Less reliable when multiple connection are running in the same room (connection errors?).
      • NXT Bluetooth setup guide.
    • Samantha Module:  Longer range but less reliable.
    • NXTBee:  XBee radio for NXT, $55.01 per end (or $99.02 for two).
  • Virtual Worlds: RobotC simulator, runs fully 3D and 2D simulations.
  • LabView:
    • NXT by default ships with NXT-G Firmware.  You need to update this to Labview Firmware, under Tools-> NXT Terminal -> Update Firmware.
    • “Target to NXT”, and the program runs only on the NXT.  “Target to Computer”, and   you need a connected computer.
      • For “Target to NXT”, compiling takes a surprisingly long time.  Your compiled code uploads into a “.rxe” file on the NXT, which you use the NXT buttons to find and run.  If you don’t wrap the entire control flow in a loop, the program instantly runs once, and exits.
      • For “Target to Computer”, you get a computer Front Panel, but the NXT action devices still work (sent in via USB or BlueTooth).  This requires “NXT Shell.rxe” onboard the NXT.
    • Pick layout of hardware: motor in port A, sensor in port 1.  Can test-drive hardware there.
    • Start with “New VI (Virtual Instrument)” or “New NXT”.  Has a “Front Panel” and “Block Diagram” for processing.  Drag and drop “Numeric Constants” onto the Front Panel, cool GUI stuff like sliders, vats, gauges, then wire together using operators in the Block Diagram.  NXT operations are connected via a purple control flow line. Draw a box around a loop.  Multiple loops run in parallel unless explicitly sequenced (VHDL style).  If-then-else blocks have different contents.  Like functions, virtual instruments can be nested.  You add a “constant” to select a particular motor, or pick a control button.
    • Has an awesome “Remove Control Editor” (.rcc) that generates the corresponding LabView code for a given joystick control style.
    • Tom Johnson (INE/energy & power center) is our local LabView expert.
  • Microsoft Robotics Developer Studio?
  • Hitechnix:  NXT parts source.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>