General setup
Here I will show practical use of open
science in the life and work of a neuroscientist. I am interested in social
interactions of honey bees and the related brain activity.
On the behavioral level I use cameras and
electrical devices that I have to build by myself. Brainwise I use
extracellular recordings, it's kind of an EEG inside of a bee's brain. In this
entry I will describe a project I just started, along the way I will point out
in witch way open* made that possible / faster / cheaper.
Until now, my experiment was purely
explorative (Method paper). I have a honey bee colony on a flat
surface, 50 by 50 cm. The bees can leave the hive to forage through a tube to the
outside nature. For an experiment I collect a bee, cool her down in a vile on
crush ice to anesthetize her and fix the animal in a cylindrical holder. Then
the bees head will be opened and the electrode inserted into the brain at the
region of interest (alpha-lobe). Once neuronal activity is present in the
recording channels the electrode is fixed to the brain / head and the again
anesthetized bee will be put back into the hive. The electrode inside the brain
of the bee is over one meter in length; it is connected to amplifiers at the
roof of the hive, hanging down into the hive arena where the bees live. Since
the electrode is quite fascinating for bees and they always play with it, I
have to lift it up. But the recorded bee should be able to walk around in the
hive, thus the electrode must be of variable length (corners are further, think
about a pendulum). Luckily, with what could have been a horrible problem, we
quickly came up with the idea to use fishing line like a spring. If you unroll
it slowly and carefully it keeps it circular shape. I tried a few different
lines and found one that can unwind 15 cm when 8 mg is hanging on it. That is
the difference between center and corner of the hive and the electrode weighs
around 8 mg. So the electrode is more or less weightless.
Now the bee’s brain activity can be measured while it is in the hive it always lived in, unhindered to do whatever it pleases. Unfortunately bees like to relax. I need them to do something repeatedly so I can statistically analyze it. So to get repetition and a more straightforward analysis, I am introducing a feeding device. This new machine will be the center of the following posts. It can offer sucrose solution and at the same time light up a LED; after a few seconds the reward gets retracted and the light is switched off. So it is a programmable flower where bees learn to associate the color of the light and the rewarding sucrose.
The flower is a complex and advanced
looking device but thanks to open* it was very easy to build. There is a whole
universe of parts that are all easily usable. The centerpiece is arduino, a
microcontroller, which is open hardware and open source, so everything is online,
nicely accompanied with instructions. Nearly all of the instructions start at a
very basic level. I started using arduino in 2012, I had no idea about
electronics, soldering or even programming.
The beginning
For my diploma thesis I needed a machine to
stimulate a bee with differently colored light at different positions in front
of her eyes. I heard about the arduino, this little chip that you can connect
to your computer via USB and then put code on it, like
...
void loop() { // loop as in over and over again
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Now a LED is flashing, at pin 13. I needed
3 LEDs (green, blue, UV - bee vision colors), so some copy paste and the
different colors were flashing. The motors to move the LEDs up and down or
right and left are slightly harder. Not really; something like
...
myservo.write(val); // sets the servo position according to the scaled value
will let the motor know to move to position
‘val’. I had a table with the positions, where I wanted to flash the light and
the arduino told the motors and LEDs when and where to be active. It took me a
week or so to get it working out of thin air, it’s that easy! You just google
arduino and the thing you want to do and you get the code for the arduino, open
source of course, nicely explained, often you get a Youtube video with even
more explanation, circuitry suggestions / plans, parts, breakout boards – in
short everything to get it done without any knowledge about pretty much
anything. It is so easy und so much fun that I would heavily suggest starting
programming this way. The hard part of programming is language independent,
once you are decent in one, it is very easy to switch between languages.
To play with hardware, so microcontrollers,
displays, knobs, lights, motors and sensors, all the sensors alone… just
fantastic, there is nothing you can’t measure. It sometimes evolves into a
procrastination-like occupation. This is only possible because of open*, at
least for me. I would not have ever even opened the 660 page datasheet (manual)
of the main chip involved in the arduino world, the Atmel MEGA328P for example.
You have to care about voltage, current, clock speed, synchrony, bits,
addresses … a full engineering degree of knowledge. Not with the open community
and all the different ways of documentation. There are even sets for children.
I would have been so happy if I could have played with those things! I would
guess if a child is old enough to read / write it can use these. You don’t even
need to solder, there are breadboards that you can push the parts in and change
connections, later you can completely dissemble everything.
So what are you waiting for? Get an Arduino and get started – and let me know how it’s going for you.
Comments
Post a Comment