Project “Parasite”: Hacking a toy RC car and upgrading it to a simple robot - Page 1
Forum section: electronics / projects

author: NightMoth
author_rank: Contributor
timestamp: May 14, 2024, 11:59:29 am
content: Hello All!Here I’m sharing my hobby DIY robotic project.Main ideaof 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"Hacking processInfographic for the “Parasite” projectMain featureof 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 disadvantagesof this approach are high level of redundancy and increasing of physical size of such control device.This project is related tobehavior-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 utilisedin 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 behaviourscan 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 solverProject 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.

author: NiHaoMike
author_rank: Super Contributor
timestamp: May 14, 2024, 12:57:55 pm
content: Consider adding an ESP32 camera board, then you'll be able to experiment with machine vision for robot control on a PC.