Author Topic: Project “Parasite”: Hacking a toy RC car and upgrading it to a simple robot  (Read 219 times)

0 Members and 1 Guest are viewing this topic.

Offline NightMothTopic starter

  • Newbie
  • Posts: 2
  • Country: cn
Hello All!
Here I’m sharing my hobby DIY robotic project.



2203597-0

Main idea of this project is few decades old but fun: to make a robot from a toy RC car by hacking it and installing an autonomous control device on it. So a toy RC car’s behaviour to be controlled not by decoded RC signals, but by installed control device. It looks some similar to what some behaviour-altering parasites do with its hosts.

Before and after "infestation"

2203603-1

Hacking process

2203582-2

Infographic for the “Parasite” project

2203591-3

Main feature of this project is that the “Parasite” control device designed to be “LEGO”-like: as much as possible reconfigurable, upgradable and reusable in other projects. Because of this, the control device is not implemented as one all-in-one PCB, but as assemble of separate detachable robot’s “brain” modules (each responsible for specific task) and some auxiliary modules. For this moment there is three “brain” and three auxiliary modules.

Main disadvantages of this approach are high level of redundancy and increasing of physical size of such control device.

This project is related to behavior-based robotics: This robot’s “brain” is modular by design, and each of its separate modules is responsible for some specific stimulus-response reflex-like task or “behaviour”.
In a terms of behavior-based robotics, present implementation of robot’s “brain” doesn’t have an arbiter module but rather utilises subsumption architecture: behaviour modules wired in a chain in a such way that they can suppress or inhibit subsequent ones.

Technologies utilised in present project are very basic: through-hole soldering, no MCU, only two types of simple sensors (light sensors are simple LDRs and bumper sensors are simple snap-action switches), bang-bang control.
However, it is OK to use other sensors (for example IR sensors instead of bumper sensors) or add new behaviour modules or module with MCU unit just by attaching them to available connectors on present device.

Available robot behaviours can be configured manually (and, in theory, digitally) using jumpers and potentiometers.
  • Reaction to obstacles:
    • Bouncing-back of an obstacle with ICC at obstacle side;
    • Bouncing-back of an obstacle with ICC at free side;
    • Bouncing-forward of an obstacle;
    • Ramming/Sumo (pushing in a direction of detected obstacle);
  • Reaction to light:
    • Resting under the light;
    • Resting in the dark;
    • Default light seeking: move forward and steer in a direction of more illuminated sensor;
    • Indecisive light seeking: same as default, but stalls when illumination level sensed by left and right LDR “eyes” is the same;
    • Default hiding in the dark: moving forward and in a direction of less illuminated sensor;
    • Indecisive hiding in the dark: same as default, but stalls when illumination level sensed by left and right LDR “eyes” is the same;
    • Backing-away from light 1: trajectory with ICC at more illuminated side;
    • Backing-away from light 2: trajectory with ICC at less illuminated side;
  • Also it is possible to configure it as right or left wall follower/maze solver


Project design and implementation failures:
  • 2xCheap 9V 250mAh 6F22 zinc-carbon batteries can’t supply enough current: it was 0.22A max current where 0.8…0.9A need, so I had to buy 12V lithium-ion battery;
  • 6V power supply unit based on LM317 regulator is not effective, it always gets hot, a lot of energy dissipates in air. I have to consider SMPS based power supply unit;
  • Bumper sensors antennas sometimes stuck in robot’s body after it smashing into an obstacle.
  • Potentiometers (that controls robot’s sensitivity and reaction time) I mounted on PCBs has vertical adjustment type, so it is impossible to access them for adjustment when modules mounted in stack one on top of the other. Horizontal adjustment potentiometers have to be used;
  • Brain Layer3’s connector for tuning and troubleshooting has vertical pins, so it will be hard to access it if another module mounted above Layer3. Connector with horizontal pins have to be used;
  • I used JST-XH connectors, but color coding of available power supply wires does not match with on-board connectors pinout (red wires goes to GND pins and black wires to V+ pins) so I had additional work to re-solder JST connectors on power supply wires;

Possible upgrades, ToDo’s:
  • Fix all of the items from “Failures” section;
  • Design “Arbiter” layer that implements high level behavior and will decide which of low-level layers have to be activated (using MCU);
  • Design control layer with analog switches that will be connected to behavior-change jumpers on low-level layers, so it will be possible to change hide/seek, run/ram, etc. behaviors electrically;
  • Upgrade to photovore: Design photocell based power supply with a rechargeable battery, add battery charge level control. Activate light seeking behavior when battery running out of charge;

Final thoughts:
Despite simple technologies used, this project was challenging for me. It took two months (several hours per week) to finish design. Starting from copy-paste of a simple bumper-sensor robot schematic found on web and next subsequent adding all of the other features results in 7 to 9 schematic revisions for each of the robot’s modules. Also I had to order PCBs for two of the modules twice, because there were two mistakes in my design and I had to fix it.
But it was worth it, it was fun and very educational (especially in a field of Murphy’s laws), I’m happy with current level of the “Parasite” robot performance, it is really fun to play with it. Also there is still a lot of room for upgrades (adding new modules, sensors, change of chassis, etc.) so if I ever need a new project, I can always continue with this robot.


 
The following users thanked this post: BILLPOD

Online NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9083
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Consider adding an ESP32 camera board, then you'll be able to experiment with machine vision for robot control on a PC.
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 
The following users thanked this post: NightMoth


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf