Thus far, Herbert has come along a fair ways during the Evolution Project. From a simple solar engine circuit, to a species with sensors and the capability of movement. In the world of robotics this really seems like a simple thing. In the world of evolutionary robotics this is a huge change. An artificial robotic life form that "just is," to one that is capable of self-sustaining behaviors. That really is huge.
The self-sustaining behaviors are still limited in Species C Gen 2. While Herbert moves towards brighter light sources, it will run into problems in the event of shadows or darkness. Once again we wind up with little comatose Herberts.
The reason for this behavior is the nature of the photodiodes in Herbert's circuitry. When there is minimal or no light hitting each photodiode the current flow to the NPN transistor base (ZTX1047A) is negligible, resulting in the transistor not turning on. Effectively Herbert goes to sleep when there is too much of a shadow over its sensors, regardless of how much energy it has in reserve (the capacitor). Not exactly a high survival genetic trait.
Herbert 1701 Species C Generation 3 is the solution to this problem. The addition of resistors in parallel with the photodiodes ensures that current will always flow to the transistor bases. This means that while Herbert has energy, the motors will turn and Herbert will continue on in its never ending quest for brighter light. How much the motors will turn depends on the size of the resistors used: too large of values and there is not enough current, too small of values and the photodiodes are effectively removed from the circuit. It is a balancing act that is determined by the characteristics of the photodiodes. While I am certain there is an electrical formula to determine the proper value, I used the trial and error method to come up with a value of approximately 50k ohms.
The next area of improvement for Herbert is in the form of additional senses. Species C Gen 3 possesses the ability to move toward brighter light sources, but will happily charge headlong into a wall and make a futile attempt to move the wall while expending all its energy.
Combating this overly ambitious and self destructive behavior, Herbert 1701 Species C Generation 4 develops a rudimentary sense of touch. As can be seen in the schematic, this rudimentary sense of touch occurs through the addition of two momentary (normally open) switches. In the robotics world these are generally termed tactile sensors. When one of these tactile sensors is triggered it causes near full current flow to the base of the corresponding NPN transistor, bypassing the photodiodes and, hopefully, causing Herbert to turn away from the object it touched.
A little side note here. When it comes to parts for solar robots, I almost always purchase from Solarbotics. Their prices are fair, their customer service is exceptional, and their quality is generally excellent. They are the premier for solar robotic supplies. As much as I love the company, I hate their omnidirectional tactile sensors. Perhaps it is just me, but I can never assemble these things to work well. And at $4.50 a pair, they are too expensive for me to be screwing up as often as I manage. Instead of trying "to get it right" any longer, I have created my own style of tactile sensor, which is basically the exact reverse of the Solarbotics tactile sensors. I will be posting a tutorial on the creation of these tactile sensors shortly, which I feel are less expensive overall and easier to assemble correctly, each and every time.
Returning back to Herbert, you may have noticed a lack of bread boarding for these two generations. That is because I have begun creating a fully functional artificial robotic life form with this species. This means using etched PCBs and actually soldering in parts. But rather than limit the PCB to a single generation, I have opted to include space for the components of generations four, five and six. So please ignore the through holes and solder pads that contain nothing in the following pictures (ignore the solder job as well, it was the only class I missed in Nuke school).
Should anyone so desire it, the ExpressPCB board layout can be accessed here: Herbert 1701 Species C Generation 4 PCB
If you decide to etch your own board, three circuit boards will fit on the standard RadioShack 2-sided copper PCB board and I have included the ExpressPCB board layout for printing both sides onto transfer film here: Herbert 1701 Species C Generation 4 Double Sided PCB Print Out
Lastly, the electrical component part list can be downloaded here: Herbert 1701 Species C Generation 4 Parts List. All of the connector components are not required if you wished to solder each to the PCB directly (labeled "OPTIONAL" on the sheet). I'm on a budget, so I reuse what I can by using connectors.