HELP WITH CAPACITOR BASED ROBOTIC BRAIN - Page 1
Forum section: electronics / projects

author: rickey1990
author_rank: Regular Contributor
timestamp: April 10, 2017, 09:54:55 pm
content: Hi. Recently iv become stumped by a robotics project i am wanting too do. which demonstrates different my ideas on robotics. The robot is pretty basic, its uses a magnitude comparator, sensors are off the shelf arduino modules, with a NOR gate in-between as when the sensor is active the output goes low. this also allows me to turn on and off sensors. Iv worked out communication between each robot when a food source is found, and with the Arduino sensors module i can detect IR,Heat,Light, Sound,magnetic fields,vibration,Obstacle's. just plug the module's straight in. really cheap too.My only problem is short term memory and introducing behaviours such as risk & indecisiveness, Making a decision on the information the robot has to hand. Also a vision system which weighs up the amount of light instead of a fixed ldr. This has been a headach. Any help on the circuit or got any ideas they would be much appreciated.The basic idea is to have voltages come in too charge a capacitor, sense when the voltage has reached a certain threshold and to then dump the stored energy out of the capacitor. This will tell the robot to go left or right,so there will be two circuits, after a decision is made both capacitors are emptied ready for new... il call it data :/. I also want to add a resistor to the A=B of the magnitude comparator , so over time this will fill both capacitors up and fire the one with the most charge. The eyes will use the same circuit but with a light to voltage converter connected to the inputs of the capacitor charge circuit. I am also wondering could i add a large resistor to the capacitor to slowly discharge it, thus deleting the older input data.Theres a bathroom light timer used to keep the transistor on to dump the charge's.

author: Perpetually_Debugging
author_rank: Contributor
timestamp: April 11, 2017, 04:03:44 pm
content: I'm a little confused by your post. Are you trying to feed an Arduino photodiode data? If that's the case then I'd say your best bet would be to use a photodiode amplifier and feed that into the ADC of your uC, if the resolution is acceptable for what you need. If you need more, then go for an external ADC, something that communicates over I2C or SPI. The capacitor integrator sounds harder to implement than what you need.If integration is a necessary parameter for your algorithim, just do it in software. Multiply the value by however much time has passed since you measured it last, add that to the previous value. Just calculating the area under a curve in real-time.It sounds like you want multiple inputs to your integrator, if that's the case it may be advantageous to do it in software so that you can tell how much of the total each input makes up. For example, if you had both your EMF and IR sensors charging the same capacitor (integrating) then you wouldn't be able to tell which was doing most of the charging, and you'd only be able to read the total, not each individually. You can get around this by mapping each one to an ADC input on your uC.Hope this helps!

author: Kalvin
author_rank: Super Contributor
timestamp: April 11, 2017, 04:21:20 pm
content: I suggest you to take a look at the analog-to-digital converter built in the Arduino. Using the ADC you can read sensor information from multiple sensors. Using an external analog multiplexer, you can use even more sensors.You may also want take a look at some expansion boards offering more digital input/output signals and/or analog signals.You may also want to take a look at the neural network code, for example:https://github.com/codeplea/genann

author: Luminax
author_rank: Regular Contributor
timestamp: April 12, 2017, 12:54:17 pm
content: I'm not sure if I'm reading you correctly here... but you want to have banks of different capacitors, probably one for each pair of sensor like say, the two sensors acting as 'the eyes', and then using the different charge-time, determines whether A cap reaches threshold first, or B. From there you'll act upon this discrepancy to introduce some sort of 'randomness' to the robot's behaviour? A little more information on your design intent would be helpful to assist in coming up with a suitable solution here.For the light intensity reading, TI for example have a good lux meter sensor (OPT3001) that reacts to light intensity modeled on how human eyes perceives them, which could be great for your project, and it interface with I2C