dwhall is currently certified at Master level.

Name: Dean Hall
Member since: 2002-10-10 00:05:10
Last Login: 2009-06-19 13:59:20

FOAF RDF Share This

Notes:

Past Bots:

  • Robocat: large, 6-legged NASA/USRA- sponsored university project (1994).
  • RedWoody: medium, 3- wheeled university competition participant (1995).
  • Valkyrie: medium, 3-wheeled university competition participant (1996).
  • Reno: small, 3-wheeled wanderer (1997).
  • Aurora I: tiny, 2- wheeled photophobe (1998).
  • Snaggletooth: medium size, lightweight, 3-wheeled, uses MMB103. (2001).

Current Projects:

  • Argonaut: An outdoor, off-road autonomous vehicle for Long Haul-type competitions.
  • MMB103: Atmel ATmega103 based PCB for robotics. PCB is made and is in use.
  • PyMite: flyweight Python interpreter for 8-bit MCUs.

Projects

Recent blog entries by dwhall

Syndication: RSS 2.0

17 Nov 2007 »

I need a wireless data connection for my next bot, Argonaut. I am choosing Zigbee, specifically the Series 2 module from MaxStream (now Digi). The modules arrived from Digikey, but I'm still waiting on the carrier boards. I'll detail my work with Zigbee as it progress here .

1 Aug 2007 (updated 1 Aug 2007 at 18:58 UTC) »

Instead of the USBasp, me and the SHARP guys have made our own version of the UsbProg. We call it, oh so cleverly, UsbProg-SHARP. It works like a charm.

I also reworked my website so I edit reStructured text files, use a Makefile to build the static pages and rsync to upload to my web host. I wrote up some details on how I did it .

8 Jun 2007 (updated 14 Jun 2007 at 01:25 UTC) »

I designed the MMB103 that I am using for my controller board to have an Atmel-standard 6-pin ISP header as well as a PonyProg serial interface. I had been using the PonyProg interface with its software on a Win32 system for years. I lived with the 7 minute programming time (for 128 KiB Flash on the ATmega103). Even after I switched to a PowerBook in 2003, I would always borrow my wife's Dell to burn my chips.

Well, I finally got fed up with the long waits to test my code. I got an STK500 from Digikey. I got the package deal where the STK500 comes with the JTAG ICE MkII. I connected my Mac to the STK500 via a USB-to-serial adapter. I set "AVRDUDE_PORT = /dev/tty.KeySerial1" in my Makefile. I typed "make program" and BOOM! My programming time went from 7 minutes to less than 20 seconds.

This is SUCH an improvement in quality-of-robot- programming- life that it was well worth the money. Next I intend to find something smaller than the STK500 so it is portable. Hopefully I can also find something that is all-in-one, so I don't have to use a USB-to-serial converter and can use power from the USB port.

Follow up (2007/06/13): I plan to make my own version of the USBasp for my portable, USB programmer. I might even etch the PCB with the help of my club-mates at SHARP.

3 Jun 2007 »

I was recreating my encoder measurement set-up on my breadboard, but having significant trouble. I was just sticking copper wires into the motor ribbon connector. These wires were shaking loose and not giving good connections. I swapped-in some 2x and 1x headers and some Connectamundos and had a much more reliable connection. However, I still wasn't getting good numbers from my test software. It took me about 30 minutes to realize I had a floating ground between my MMB103 board and my breadboard. Once I connect their 2 ground planes, I was back in business.

<"> With this better test setup, I am finding that the encoders aren't that reliable. Supplying a short-duration (0.25 s) low current pulse to the motor and returning both motor leads to Vcc results in erradic counts: often little to no change in the count; sometimes the count is even backwards! I attribute this to back EMF: the motor is trying to overcome inertia and fight friction. The magnetic encoders are getting a larger back-current reading.

<"> A second source of trouble is when a low "leak" current is supplied to the motor leads. The output shaft doesn't spin any, but the encoders are counting away almost at the same rate as a full-speed spin. I can't explain this one.

30 May 2007 »

I ordered some motors from BG Micro at 3pm on Thursday last week. They arrived two days later at noon via the USPS! They are small MicroMo motors with Faulhaber gearboxes and, best of all, built-in magnetic quadrature shaft encoders.

I made the following measurements on just one of the motors using a crappy DMM:

  • No load current @ 5 V: 18 mA
  • Stall current @ 5 V: 180 mA
  • Angular vel @ 5 V: 84 RPM
  • Encoder output (low, high): 0.25 V, 4.87 V

Then today, I connected the encoder output (ChA only for testing) to pin PE4 on my Atmel ATmega103. I used that input so I could get edge-triggered interrupts. I wrote an interrupt handler in C that incr/decrements a 16-bit counter variable. The main program prints the counter variable to an LCD once every second. Here is the code (minus comments so it all fits):

#include <stdint.h>
#include <avr/io.h>
#include <avr/interrupt.h>

#include "libmmb103.h"

volatile int16_t encoderCount;

void init(void) { encoderCount = 0; DDRE = DDRE & ~(_BV(PE4) | _BV(PE5)); EICR = EICR | _BV(ISC41); EIMSK = EIMSK | _BV(INT4); sei(); }

ISR(INT4_vect) { uint8_t chBA;

chBA = (PINE >> 4) & (uint8_t)0x03; if ((chBA == 1) || (chBA == 2)) { encoderCount++; } else { encoderCount--; }

EICR = EICR ^ _BV(ISC40); }

int main(void) { init(); mmb_init(BAUD19200, ADC_CK_DIV_16, PWM_CK_DIV_8, 2); mmb_lcdPrintStr("EncA:");

for (;;) { mmb_lcdSetLine(1); mmb_lcdPrintHex16((uint16_t)encoderCount); mmb_sleepms(500); } }

4 older entries...

 

dwhall certified others as follows:

  • dwhall certified RayRenteria as Journeyer
  • dwhall certified dpa as Master
  • dwhall certified WildRice as Master

Others have certified dwhall as follows:

[ Certification disabled because you're not logged in. ]

Robot of the Day

F.A.O.R.

Built by
Austin Chandler

Recent blogs

22 Mar 2010 Flanneltron (Journeyer)
22 Mar 2010 Maliko (Observer)
20 Mar 2010 spirit (Journeyer)
18 Mar 2010 jmhenry (Journeyer)
12 Mar 2010 suckeroi (Observer)
7 Mar 2010 TrueAndroids (Observer)
6 Mar 2010 svo (Master)
3 Mar 2010 Pi Robot (Journeyer)
27 Feb 2010 motters (Master)
24 Feb 2010 middlecreekmerchants (Master)
23 Feb 2010 evilrobots (Observer)
14 Feb 2010 rgeraci (Apprentice)
11 Feb 2010 The Swirling Brain (Master)
1 Feb 2010 trossenrobotics (Observer)
23 Jan 2010 Myzhar (Observer)
17 Jan 2010 steve (Master)
13 Jan 2010 watsonjosh (Apprentice)
31 Dec 2009 AI4U (Observer)

Newest Members

22 Mar 2010 minnieweather (Observer)
21 Mar 2010 robotriot (Observer)
21 Mar 2010 deagle25 (Observer)
20 Mar 2010 PaxRobotica (Observer)
20 Mar 2010 TheMilnator (Observer)
18 Mar 2010 HASON_ALRFAIY (Observer)
18 Mar 2010 shoaib (Observer)
17 Mar 2010 bruffie (Observer)
17 Mar 2010 garima_jain (Observer)
17 Mar 2010 dracoryan (Observer)
15 Mar 2010 nithin (Observer)
14 Mar 2010 bil bad (Observer)
13 Mar 2010 chintu (Observer)
12 Mar 2010 piyushnjha (Observer)
11 Mar 2010 sc_0097 (Observer)

Newest Robots

7 Aug 2009 Titan EOD
13 May 2009 Spacechair
6 Feb 2009 K-bot
9 Jan 2009 3 in 1 Bot
15 Dec 2008 UMEEBOT
10 Nov 2008 Robot
10 Nov 2008 SAMM
24 Oct 2008 Romulus
30 Sep 2008 CD-Bot
26 Sep 2008 Little Johnny

User Cert Key

Observer
Apprentice
Journeyer
Master
X
Share this page