For your holiday entertainment:
RC Hammering Rubber Duck has been finished several times. I cant keep my hands off making tweaks. The last task will be defining the game rules.
The public demonstration at the community college robotics competition has been rescheduled 3 times due to snow and freezing rain maybe someday I'll get a video in action.
I may also have a chance to demo to a home schooler class before the SciFi convention.
The Chase Tank picks her animal theme: Shark -> because sharks can eat ducks and sharks are more generally menacing than a crocodile ->
Version 1 used an Arduino Uno Rev 4 , but discovered the Arduino PixyCam library (being nearly 10 years old) is not compatible with the Arduino R4. PixyCam did suggest a header file fix, but I had already moved forward to Ver 2 by then.
The Chase Tank Shark Version 2 uses an new bootloader Arduino Nano R3, and the old PixyCam header files worked. YAY ! The protoytype was kinda acting flaky while testing tho.
I added 3 diagnostic LEDs to display the main operating modes:
1) Stopped by PING SENSOR when there is an obstruction in the way. Tank treads attempt to run and climb over obstacles, not always the best thing for walls and table legs.
2) Target (Duck) seen by pixycam and the chasing ensues
3) pixycam Searching for target (Duck)
The diagnostic LEDs did not behave as expected or needed. Hours of troubleshooting and adjusting variables, just seemed to make it worse. The PixyCam Target acquired LED and the Search LED are mutually exclusive, but often were lit at the same time. The ping LED fast flashed, which meant it was processing bad data.
I concluded the ping sensor code and SPI library do not play nice together, the fix to be Version 3.
Version 3 The Chase Tank Shark splits functionality using qty 2 Arduino Nanos. One Arduino Nano is dedicated to PING sensors mounted on the front of the Chase Tank. The PING s Arduino Nano output is the STOP by obstruction LED, which is also wired back to the PixyCam's Arduino Nano as an input.
The PixyCam's Arduino Nano also controls the Tank H bridge. This version is still under test.
The PixyCam is a Rev 1.3 dated 2013. It's blob detection does not reliably differentiate colors especially under differing light conditions, that why the Rubber Duck sits on a 4 watt white LED ring.
However, the PixyCam will mistake a lit table lamp as the duck. Lucklily, places where these robots get demonstrated dont have table lamps.
I'm considering a PixyCam2, which advertises object detection, as an improvement step, but also wonder if NiclaVision could be even better using OpenCV and extensive model training.
I was pleasantly surprised as Charmed Labs product support provided some insightful advice on PixyCam and PixyCam2.
One Charmed Labs recommendation is to upgrade the Chase Tank Shark PixyCam to latest firmware. I often "freeze" FW updates once projects are working to avoid bricking them and adding unused complexity. Its a habit I developed at work, where software tools had updates and bug fix releases released seemingly monthly, that had no benefits for the products we worked with.
We'll see how Chase Tank Version 3 turns out.....