Just uploaded some new video of my color-tracking “smart wheels” robot:
Hi! I’m Dr. Orion Lawlor, and I love robots! I’m an assistant professor of Computer Science at the University of Alaska Fairbanks, and have helped Dr. Bogosyan set up the CYBER-Alaska project since the basic idea back in 2009.
Facts about Dr. Lawlor:
- Grew up in Glennallen, Alaska eating moosemeat and salmon, and donating blood to mosquitos.
- In a construction frenzy during the summer of 2009, built a 2,000 square foot shop with help from his dad Tom.
- Can weld with stick, MIG, or gas; cast aluminum, zinc, or urethane; cut steel on a manual mill or CNC lathe; and drive heavy equipment… all without leaving his driveway!
I’ve worked on a lot of different computer hardware and robotics projects over the years:
- In 2009 through today, I worked with a really broad array of students building a solar powered robot to drive around Greenland. We’re still waiting on NSF funding for the full build, but work continues on this project in my spare time.
- In 2007, 2008, and 2010, I worked with some great students building underwater robots for the worldwide MATE ROV contest. I used ever more complex PIC microcontrollers for this project: in 2007 I used a network of 16F676 chips running software serial code, in 2008 I upgraded to the PICkit 2 programmer and 16F690 chip for more pins and hardware serial communication, and in 2010 I used the 18F2455 for direct onboard USB.
- In the early 2000’s, I wrote usb_pickit, the first open-source driver for the PICkit 1 programmer. I learned a lot about hardware, including how to laser print and iron on printed circuit boards.
- Back in 1998, I soldered together an ISA card by hand, to collect analog data at a higher rate than I could get over a serial line. The card actually still works, although the ISA slot is so old, I can only plug it into an equally ancient machine!
My “day job” is writing software and building high performance simulations, so I’m excited to combine my fabrication, electronics, and software experience to build cutting-edge systems!
I’ve been playing with microcontrollers for over a decade now, and have hands-on experience with PIC, ARM, 68HC11, and MSP430 devices. Usually, it’s a long slow road where you (1) pick a processor to buy, (2) pick a device programmer, (3) pick a compiler, (4) read the processor documentation, (5) find/fix example code until it compiles, (6) program the chip, (7) figure out why the lights aren’t blinking. It’s usually very painful, takes a few days at the very least, and every new task or chip is just more work.
But this is easy!
- Buy an Arduino Uno R3 for about $30. Lots of places have the hardware, including Amazon (and cable) or SparkFun (and cable). The cable is an ordinary USB A to B cable, with the thick square end like on most USB printers.
- Download and unzip the Arduino 1.0 IDE. (On Linux, you’ll also need to “sudo apt-get install gcc-avr avr-libc” to get the compiler.)
- Open the IDE’s “Drivers” folder. Right click “Arduino UNO R3.inf” and hit “Install”. Plug in the Arduino, and it should show up as a serial port (something like COM3 or /dev/ttyUSB0.)
- The very similar Arduino Duemilanove 2009 board doesn’t need drivers; it shows up as an ordinary FTDI USB to serial device.
- Start up the IDE by double clicking Arduino.exe, and:
- Choose File -> Examples -> Firmata -> StandardFirmata.
- Hit File -> Upload. The TX and RX LEDs will flicker as the device is programmed.
- The Arduino now responds to the serial Firmata command protocol.
- Download the Firmata Test Program, run it, and choose the “Port” from the menu (like COM3 or ttyUSB0.)
- Click pin 13 on and off, and watch the LED blink! You can set any pin to input (reading low or high voltage) or output (producing low or high voltage), and many pins have other functions available like analog input, PWM(pulse width modulation), or servo control. Just click and drag to interact with all the pins!
The beautiful thing about this is you don’t have to figure out how to enable analog inputs, initiate ADC conversions, correctly set the PWM control registers, or set interrupt modes–it’s pure plug and play!