Neuron Simulation
Procedure
4.1 Leaky Integrate-and-Fire
- Build the circuit shown in Figure 3 (including the ammeter and trigger signal to ’scope that aren’t shown in the figure). Have your TA check over the circuit to make sure your Arduino outputs aren’t shorted to ground or anything.
- Connect your ’scope to measure the voltage across the resistor in the RC circuit, and to take the trigger signal from the Arduino board.
- Take a look at the Arduino program and take a minute to understand what it is doing, and the order it is doing those actions in. In particular, take note of the voltage threshold and the ‘deadtime’ after each firing of the neuron, noted as in the text.
- Once the program is loaded onto the Arduino, you technically don’t need a PC anymore! Just power the Arduino using the transformer and press the reset button whenever you would like the program to restart and send the initializing trigger pulse. We’ll keep the PC so that you can edit the program and re-upload to the Arduino.
- You won’t be able to accurately measure the injection current while the RC circuit is constantly charging. To measure the injection current, set the threshold voltage to zero in the Arduino program. Think about why that works.
- Measure for various input injections using the oscilloscope and plot your results (which I guess you still need a PC for). Make sure you have a complete data set before you leave.
4.2 Adapting Leaky Integrate-and-Fire
- You’ll be changing the circuit to add an adapting conductance, thereby simulating neuron-firing adaptation to constant stimuli.
- In the previous section, we used 5 V to turn on the MOSFET and discharge the ‘neuron’. In this section, we’ll use a pulse-width-modulated voltage and filter to send less-than 5 volts. The MOSFET will then have a conductance that we can adjust every time the ‘neuron’ fires.
- Build the extra component for the circuit shown in Figure 5. Set the potentiometer to the minimum value, i.e. use the maximum injection current.
- Use the Arduino program ‘neuronsimulation adaptive’. Take a look through it and see how it differs from the previous program, especially how the pulse-width-modulated voltage from the Arduino is used.
- After running the program, you should see a spike-train on the ’scope that is similar to the one from the last section. One difference is that the amount of time to charge the capacitor to the threshold voltage is changing.
- Measure the inter-spike intervals using the cursors on the ’scope. If the first 3 intervals aren’t significantly different, then consider changing the PWM settings.
- Decrease the injection current by increasing the resistance of the potentiometer and measure the interspike intervals again. Your goal is to create a plot similar to the one of page 337 of Reference [1].