Introduction - Start Here!

The purpose of this project is to build a behavioral training system using an arduino and computer running Python. This can be used for operant conditioning -- that is, when the subject is presented with a certain stimulus, it should respond in a certain way to receive reward (or avoid punishment).

I know that many people have built such systems already and I was surprised that there was so little information available online about it. Please feel free to comment or contact me with suggestions or questions.

I was very inspired by the `bcontrol` software system in designing this project. bcontrol uses a Finite State Machine philosophy to implement each trial. The basic idea between FSMs is that, at every moment, the system's outputs are a function of its current state and its current inputs. New events, for instance lever presses or timers, trigger changes of state and possibly changes of outputs. This turns out to be a very natural way to think about behavioral training systems. It also makes debugging easier as the system grows in complexity, because we can debug each state and each state transition individually.

No comments:

Post a Comment