CAD v4

/sigh

So I redesigned the robot again. and I failed… /sigh

Here’s a quick picture of the CAD model:

You’ll note that I’ve removed the room for the back sensors. It makes the robot smaller, and moves the wheels further towards the back, so the robot lean distinctly forwards (so it doesn’t move like a chicken). This also removes room for the back sensors… but I’m not using them in the code anyway.

A Few pictures of the build:

Okay I thought it turned out looking SUPER CUTE (and reliable). Here’s a full-blown pic of the front view:

Continue reading “CAD v4”

Picking Out Patterns pt.2

Hello!

I’ve got the robot running off of timestamps! I’ll separate this out into steps:

1. run the simulated neural network

Here’s the code and resulting output-display:

W = log(abs(randn(15)));
>> [spk NetParams V] = SimLIFNet(W,'simTime',50,'tstep',1e-2,...
'offsetCurrents',1.1*ones(length(W),1));

2. detect intersections

Continue reading “Picking Out Patterns pt.2”

Picking Out Patterns (pt. 1)

Hello!

The neural-network simulation I’m working with does output an array of spike times for each neuron. Rereading through the reference paper, though, that’s useful only if you can correlate it to a particular input; each input (pattern of stimulation based on sensor values) is correlated to a particular pattern of spiking, which is then translated into the action-command for the robot.

Since I can’t (or haven’t yet figured out how to) ‘stimulate’ the neuronal network I’m working with, I thought it might be a good idea to just choose a random pattern and see if I could write code to pick it out.

Here’s the situation I’ve decided on: neurons in the simulation (I’m now using 12) will spike, and I’ll get an output of all their respective spike times. Then I intervene and pick the three with the most spiking. Tell me at what time all three are spiking together.

Continue reading “Picking Out Patterns (pt. 1)”

Cell Culture & MATLAB Interfacing (pt. 1)

Hello!

So this is the reference article that I am basing my project off of. Since the Arduino MEGA/autonomous navigation code is not working properly and I don’t yet have a replacement for the former, my mentor suggested I begin working on the cell culture-MATLAB connection instead.

What the reference article does

Before I got started replicating what they did, I first had to understand it. Anyway, here’s a nice flow chart I drew up that describes how their ‘output decoding’ works: Continue reading “Cell Culture & MATLAB Interfacing (pt. 1)”

USB-unplugging Issue

Succinct update: stuff stops working after I unplug the USB cable. There wasn’t anything really helpful already in the Arduino forums, so I created a new thread.

Here’s a bulleted summary of what’s in there and what I’ve done since then:

To start
  • First response suggest that I’m only drawing 100mA from the 12V batteries unlike the 500mA from the 5V USB line. This could be the reason.
  • I mess around with the power supply (more to come) and then realize that I am supplying via a TURNIGY 5A SBEC that supplies a constant 5V and 5A. So that shouldn’t be a problem…
Next I look at where I’ve plugged it in.

From what I can recall, it’s always been plugged into pin A12 on the sensor shield v2.0, and I only remember changing it after I started having issues. So here’s where things get interesting:

Continue reading “USB-unplugging Issue”

Encoders (and a general update)

Hello!

The next step in my plan was finding a way to run Roomba in the background while the robot communicated with the neurons, but I’ve come upon a (really big) bump in the road: ‘Roomba’, which I wrote a couple months ago, is no longer working.

I’m not sure what it is that’s wrong… I thought it was the sensors, so I debugged those. Then I thought it might be the battery, so I soldered up new ones of those. Then I thought maybe it was delay variations caused by the new (fully powered) batteries, so I finished testing the encoders (see below). Now–according to the Serial Monitor–it looks like the Arduino is just getting stuck somewhere in the code, leaving the motors running to just ram into things??

So back to encoders. I think it might help with the ramming-into-things if I rewrite the code so that it moves forward one rotation, then checks the sensors instead of the way it’s working right now…?

Continue reading “Encoders (and a general update)”

Controlling Robot via Simulated Neurons (pt.1)

Hello!

Note that the title says simulated and not stimulated. The current goal is to run the robot in a closed-loop with a neuronal cell culture, but a step in getting there is running the robot off of some simulated neurons. Here, I’ll explain what I’ve done since last time:

In the last two posts, I discussed how to send packets to Arduino via XBee, and how I controlled my robot via MATLAB. The next step, then, was controlling the robot via packets I send through MATLAB :). I’ll start with the necessary background:

Continue reading “Controlling Robot via Simulated Neurons (pt.1)”