early work / getting warm with open source

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. 
electrode tip, 2 x copper, insulated 15µm diameter  and one silver, bare, 25 µm diameter
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