barcodebot

The local junk shop had some old barcode scanners for $5 so I bought one thinking I could use the camera for something, like following lines.... The result is a mongrel robot made from scrounged parts that tracks a black line on white paper* How's that for a couple of days' work?

 

Features

  • atmel mega8 @ 15.36Mhz (good baud rates), pulled off a teaching board and given to me by a labtech. he told me it was poked, but it's clearly not!
  • 2088-pixel NEC uPD3753 ccd linear image sensor / line-scan camera
  • 2x orphaned sanwa servos hacked for CR
  • 2x 700mAH li-ion batts
  • runs megaload, Sylvain Bysonnette's serial bootloader for the avr. it's great but the PC app needs a bit of work (v. annoying popup), and the autobaud config didn't work well (on the micro) so i just set it 9600 or whatever the default was. otherwise its great! the code loads blindingly fast. my laptop doesn't have a parallel port (needed by my poor-man's isp progger), but does have a serial port so the bootloader was perfect for uploading code through the mega8's uart
  • double-sided pcb made with press 'n peel
  • funky red lights
  • C source (not much use unless you have the exact same hardware).
  • serial debugger for matlab

*I could have implented features like white-on-black and dynamic ambient light nulling, but just wanted to prove I could make a robot out of a barcode scanner, an odd hack if ever there was one.... Next time I'll use a better (faster, smaller) camera, and probably some micro servos. Perhaps then it'll be worth playing with more, maybe get a gruntier micro and put a neural net in it ...

barcodebot
Navigating a perilous trail...
The rubber shield blocks ambient light, the leds illuminate the image.

The wide, hi-res camera view allows full PID control (I'm just using P)

Control board under chassis with li-ion cells.
 
sensor output Camera waveform. You might want to peruse the datasheet if this doesn't make much sense.