Go Down

Topic: I need Guidance to build Arduino - based particle counter for whale study (Read 316 times) previous topic - next topic

Darksea13

Oct 18, 2019, 09:31 pm Last Edit: Oct 18, 2019, 09:41 pm by Darksea13 Reason: I sounded a bit over teh top.
Thanks for reading.  I am needing someone who could give guidance as to how I can build a sensor to count particles of plankton fed upon by the nearly extinct whale I study.  I have imagined that I might use a laser and a beam - breaking counting program on Arduino Uno.  A couple of things add to the challenge(all do not need to be solved at once):
* to be effective the size of the particles counted should be adjustable (a pin hole?) & be in  3 particle size ranges preferably: (1) < 0.25 mm, (2) 0.25 - 0.5 mm, and (3)0.5 - 1 mm.
* the sensor/hardware should be small so that it can be carried by a sea-surface landing aerial drone or in a surface small boat (remote control).
* particle count data would be logged along with GPS, time, and environmental data

I know this is a lot of detail but any help to get me over my struggles would be great.

The whales I study are nearly extinct, only 400 left and declining, and we suspect that food limitation is an issue but more data are needed in the vicinity of where they feed (Cape Cod Bay) to know for sure.

Any thoughts by people who understand how a particle counter could be conceptualized will be much appreciated.
stormym33@pobox.com
P.S.  It sounds like I am looking for someone to make this unit, actually I am looking for some ideas and I will try my hand at it if I can get a handle on the sensor part of the project.

hammy

I think you need to look at learned articles on how this is done by others .
I'd doubt an Arduino would have any part in it.

I googled and found this :
https://link.springer.com/article/10.1007/BF00007775

MorganS

You are looking for the density of plankton in the water column? A simple beam break detector will count dust and other particles.

I expect there are commercial units available. Find one that is close to what you need, regardless of cost. Then we can try to replicate it with cheaper components. For example, the commercial unit may dive to 1000m and you just need something that goes to 5m on a stick.
"The problem is in the code you didn't post."

Darksea13

Hammy, thanks for your thoughts.  The paper is excellent BUT the estimation of phytoplankton particles using a Coulter counter is, to my knowledge, not effective for the larger particles of zooplankton, particularly in the very small size we need to be carried in a small drone.  But the coulter principal IS useful, being based upon a beam breaking approach.

MorganS, than you too.  Your approach is a smart one and I have worked (in the 1990's) with a very clunky simple beam-breaking plankton counter.  It does work so it does as a principal make sense and generally we have borrowed that approach, but the unit weighs more than 40#.  So to properly carry a counter I have thought that I need to try to borrow the concept (as you rightly suggest) and see if there might be an answer by designing with Arduino - based sensors.   

jremington

Arduino is not a sensor, nor is it the basis for a sensor. It is a general purpose microcontroller.

It will take some work to develop a sensor that can accurately characterize the particles of interest, and Arduino need not be part of that effort.

Darksea13

Thanks for that Jrem.  I obviously need to take a course in Arduino.  I assumed that I needed to work through a microcontroller to sample a sensor (I was figuring on a laser/sensor combo) to count beam breaks of particles of the selected size in a flowing stream of seawater.  My thought was, though apparently not well informed, to count beam breaks from a sensor connected to the Arduino and programmed to handle incoming data from the sensor with time and GPS stamps and then to save to a memory device for later analysis.  Sounds like that plan doesn't work?

jremington

If beam break detectors form the basis for a sensor that successfully meets your criteria, then of course an Arduino can be used to collect data.

But this is going to be quite a difficult challenge, and Arduino won't be a part of meeting it:
Quote
* to be effective the size of the particles counted should be adjustable (a pin hole?) & be in  3 particle size ranges preferably: (1) < 0.25 mm, (2) 0.25 - 0.5 mm, and (3)0.5 - 1 mm.
Most people would use some sort of imaging device, and a fairly powerful computer to process the images; thousands to millions of times faster and more accurate than a beam break detector.

Such a device need not be large or expensive. Check out the several initiatives like PublicLab Microscopes.

MorganS

Landing your drone on the ocean sounds like fun. Then the particle sensor can say yes-or-no if there is a particle there.

I expect you need to pump a known volume of water past the sensor to get a total count. Look into using a peristaltic pump for that.
"The problem is in the code you didn't post."

Darksea13

To some of the points made:

Yes to work we would need to pump a known volume of water or a flow meter record as part of the data stream. 

And yes also, imagery analyzed by a PC or bigger makes sense but, though I will check the reference you gave, from what I can get a handle on the photographic equipment needed is not easily miniaturized.  I did consider an oceanographic sampler that used a beam breaking system, however the unit that I eventually purchased from a company in Canada back in the 1990's weighed many pounds.  So I thought of seeing if there is a way that beam breaks using the Arduino would work in this IoT world, to see if anyone might know of  a laser/sensor combo that could work with Arduino collecting the beam breaks and logging them. But is there beam breaking hardware for which the sensor could be perhaps made size-sensitive by using several size pin holes.  I think the real issue would be the size discrimination but I would need to know what laser/sensor combo might work and then, of course, work up the sketches needed to collect beam breaks along with GPS, time, and environmental data and lastly log the data, I assume, to a memory card.  That was my thought, but I just lack a knowledge of the appropriate hardware and a facility with Arduino.  People's responses have been a big help and any further thoughts about the my idea (including those negative ones) are a big help in giving me an idea as to where to start.  Thanks all stormym33@poobox.com

jremington

Quote
the photographic equipment needed is not easily miniaturized
Technology, especially cameras and detectors, has really, really moved on since the 1990s.

Your cell phone is a far more powerful computer than anything you might have seen then, and it has a high quality camera and several radios, too!

chopsuwe

How are you imagining this sensor will work? What quantity of plankton per unit volume of water are you expecting? Is this going to operate at the water surface or need to be taken at various depths? How long does it need to spend deployed? How do you determine it's a plankton passing the sensor not some other flotsam?

If it's a break beam sensor how far does the light source need to be from the sensor to give a reasonable chance or a plankton passing through it? If the beam is only 0.5mm diameter, what happens if the plankton misses the beam by a few mm? Can you funnel an area of water through a narrow diameter pipe to improve the chances of the plankton passing through the beam?

All a break beam can tell you is how long the beam was broken for. How would you differentiate between a large particle moving fast compared to a small particle moving slowly? Both would obstruct the beam for the same length of time.

Maybe you could use a system like a photoelectric smoke detector. It's similar to a break beam but looks for sudden dimming of the sensor as smoke obstructs the light source. How would you differentiate between plankton casting a shadow compared to murky water?

Maybe you could use a wide beam of light shining on grid of small sensors. You'd see each sensor dim as the shadow of the particle moving across the grid. By tracking how quickly the shadow passes across the sensors and how much each sensor dims you could infer the particle size. But that's probably getting beyond the capability and into Raspberry Pi territory. If you're going to go that direction it would be easier to use something like a Raspberry Pi and camera and some sort of image recognition to count the plankton. But that's getting quite complicated, it would be much easier to just to record video for a period then have someone watch the video later and count the number of plankton.

Darksea13


Chopsuwe: excellent and informed questions and suggestions.  If you have some time I will below answer your questions and respond to suggestions - thanks for bearing with me.

A. On your questions: " (1) How are you imagining this sensor will work? (2) What quantity of plankton per unit volume of water are you expecting? (3)Is this going to operate at the water surface or need to be taken at various depths? (4) How long does it need to spend deployed? (5)How do you determine it's a plankton passing the sensor not some other flotsam?"

(1)   I imagined the sensor to be the diameter that an oval object of around 0.5 mm and if that broke the beam then it would be one hit - but as you asked some interesting questions I realize that only perfect beam breaks would give the result I need.  In that regard, I expect to validate and calibrate the data by comparing plankton collections and scaling the beam break data against the actual density of plankton. 
(2)   I anticipate concentrations of plankton from 4/liter (= approx. a quart) on up to 50+/liter and it is that count that I am trying to get.  What is the concentration of plankton here and there over an area of sea surface of about 1 square kilometer where the rare whale I work on is feeding.  Basically how much food is a right whale getting and how is it strategizing to get that food; because of our need to get answers to those questions we need a lot more spatial data and that is why I am wanting to deploy a particle counter in a drone.
(3)   It would be great to allow the imagined sensor to work at depth but for now I'd expect to have it work in the upper 10 cm (5-6").
(4)   On a calm day I would want the drone to  land and take off 10+ times through a period of 15 mins. and if we could get those data that would be spectacular, however longer would be even better and that will depend on battery life.
(5)   In the area where whales feed the flotsam problem is right now not too bad, however the issue of other organisms triggering the sensors could confound the data.  I imagine that the validation/calibration (#1 above) would solve some of these issues.  The counts we would look for would have to be corrected against validation collections analyzed in our lab for flotsam, other organisms, and partial beam breaks.

B. "If it's a break beam sensor (1) how far does the light source need to be from the sensor to give a reasonable chance or a plankton passing through it? (2) If the beam is only 0.5mm diameter, what happens if the plankton misses the beam by a few mm? (3) Can you funnel an area of water through a narrow diameter pipe to improve the chances of the plankton passing through the beam?"

(1)I imagine that the sampling would happen in a "cell", a unit through which water would be pumped.  And perhaps the drone would land for enough time to allow as much as 2 liters of water to be sampled by the laser/sensor pair.  Imagining the cell, I am thinking that the beam would pass through 50 cm of water but that would be up for discussion.
(2) The way I conceptualize this is that our actual plankton collections will correct the beam break data, this would be the validation from which we would calibrate the beam break data.  So imagine if the beam break said 10 plankton organisms/L and the actual collection said 30/L, after a lot of collections we would calibrate by multiplying the beam breaks by 3.  That approach would, one would hope, correct for misses.
(3) Yes, BUT enough water would have to be scanned to give relatively stable results.  If the volume is so low that very few beam breaks are available for validation then the statistics related to the calibration will likely be unforgiving.

C. "All a break beam can tell you is how long the beam was broken for. (1) How would you differentiate between a large particle moving fast compared to a small particle moving slowly? Both would obstruct the beam for the same length of time."
   (1)  Yes, true.  But if the water through the cell is passing the sensor at a set and regular a velocity then the break time should have a relationship to the size of the particle……. except for the fact that the plankton is oblong and the organisms may be tumbling when in the flow (Yikes!).  I'd have to see what the relationship looks like I guess.

D. "Maybe you could use a system like a photoelectric smoke detector. It's similar to a break beam but looks for sudden dimming of the sensor as smoke obstructs the light source. (1) How would you differentiate between plankton casting a shadow compared to murky water?"
   (1) I believe that the murkiness of the water (turbidity) in the off shore areas where we are sampling is pretty low and not significant over potential beam distances of 50 cm.  True the off shore water is murky over several to many meters but over small distances I am pretty sure that it would not be an issue.  If collections were in very near shore areas or in rivers the murk would likely be a much bigger issue, but the off shore waters are much less turbid.

E. "Maybe you could use a wide beam of light shining on grid of small sensors."

Excellent thought that might circumvent some of the issues of sample volume and particle density.  In a grid I assume that each sensor would have to be paired with its own laser (I am assuming that laser would be the way to go??) and each would have to be sampled at as high speed as possible to yield the data stream combining the sensor results.  If there were a grid that you mention then sensors could have some size discrimination or could be monitored individually by Arduino or RPi to give a usable result (though I can assure you that this more sophisticated sensor package is for me right now beyond both my wiring and programming skills!).  This is a great idea because then there is some potential to "tune" results in post processing.


F. "If you're going to go that direction it would be easier to use something like a Raspberry Pi and camera and some sort of image recognition to count the plankton. But that's getting quite complicated, it would be much easier to just to record video for a period then have someone watch the video later and count the number of plankton."

Again that does make sense to me and let me say, the reason I am going on and on here, taking up people's time, is because a solution to the problem of measuring plankton density would, truly, be an immense value to the conservation of the very nearly extinct right whales that I work on.  So…… I have thought of imaging (though again I am a class 1 novice in that too!).  I agree, for me building shape recognition software would be a big hurdle.  Given the criticality of getting data on feeding by right whales I've thought of using an imaging system and reviewing images by eye having volunteers review the resulting images.  I have tried using a GoPro as a video recorder and grabbed and counted particles from frames illuminated by a strobe (every 4-6 frames).  That approach seems to work but the images were fuzzy in the closeup configuration. And again I am not confident/don't know much about photo work with either Arduino or RPi. 

??So, with the peripherals now available could one or the other platform (Ard/RPi) be set up to photograph a gridded field in a cell of perhaps 25x25 cm (10x10")with a depth of 2cm (=1.25 liters)and IMPORTANTLY would the depth of field of the camera be great enough and the width of field be close enough to 25x25 cm to yield visible and in focus particle images so that one could count all particles that look like plankton?  To get images are there both lighting (flash?) peripherals and special RPi/Arduino cameras and lenses that I could try?

Enough!  Thanks much for your thoughts, they clearly awakened many ideas, which, I know, is what this posting system is intended to do.
-Darksea13

haresfur

Do you need real-time numbers? As, mentioned previously, there are bench-top particle size analysers, but that would involve collecting samples. I suspect it would be hard to replicate for in situ measurements.

Here's another approach that might work for you. Use a camera with a microscope lens of known power and an led light to take photographs in the water column. You would probably need several to get a representative sample. Then download the photos and use digital image processing to count particles and measure their sizes.

You could probably do the processing in situ but I'm not sure I see the advantage. Incidentally, there was a company that had a system to measure groundwater flow down wells by taking two photos of colloids in the water and then processing to match them up and determine how they were drifting.

Darksea13

Do you need real-time numbers? As, mentioned previously, there are bench-top particle size analysers, but that would involve collecting samples. I suspect it would be hard to replicate for in situ measurements.

Here's another approach that might work for you. Use a camera with a microscope lens of known power and an led light to take photographs in the water column. You would probably need several to get a representative sample. Then download the photos and use digital image processing to count particles and measure their sizes.

I do not need realtime numbers, thank god, but I would need a closeup camera, perhaps with either an Arduino or RPi.  I have been looking on the internet to see if the available Ard or Rpi cameras are able to obtain the field of view (around 600 square cm or 25x25 cm) and good resolution of low contrast objects around a max of 1 mm and a min of around 0.5 mm.  I am still looking.  I make the assumption (also trying to check this) that sucn cameras camn be programed to work in tandem with an LED and that the camera/LED combo can be programmed to take images and store them at intervals (say every 5 seconds).  In this configuration the drone would land on the sea surface (or possibly hover close in rougher conditions) with imaging package on a wire 2-3 meters off the surface.  If that approach works, initially a visual review of the images would go a long way to determine the distribution of plankton in a feeding area - later an automated image analysis would of course be a real help.

Thanks all for helping with this.  Darksea13

Darksea13

I have taken the suggestions from the several people who have given ideas above.  From the exchanges it seems like a camera, probably an Arduino camera will permit the collection of high quality images.  May I assume that the standard Arduino Camera reconfigured to use M12 lenses will permit high resolution video from which I could grab a frame and process to count plankton?  I may see if there isd a more appropriate forum here to sk camera questions but help here will also be appreciated.

Go Up