Software apps and online services
Hand tools and fabrication machines
Do you wish to know how many birds are thank to you for the food you gave them? Do you wish to know what kind of birds are around your house? How does temperture and other environmental data influence the number of visited birds? You can triger camera snapshot on bird arrival. The challenge would be to distinguish different kinds of birds with only proximity sensor.SparkFun Proximity Sensor VCNL4040
In order to get the sensitivity of the sensor, I made measurements of the sensor at different distances. In order to reduce the measurement error, I performed three measurements for each height and displayed average values. Even though the sensor was attached and the surroundings did not change, I noticed that the values fluctuate considerably. Oscillation or noise was more pronounced at smaller distances.More information about the sensor is available at: https://www.sparkfun.com/products/15177According to the specifications, the sensor is designed to detect the presence of objects up to a proximity of 20 cm. We can detect the presence of an object as well as a change in the object from the previous measurement. The sensor is not designed to measure distance to the object.The distance to the object is not the only value the sensor returns. Three values can be read from the sensor. In addition to proximity values, ambient light and white light levels can be read from the sensor.From the measurements obtained, I can confirm that the breaking point is when the sensor is most sensitive around a distance of 20 cm (Figure 1). However, the sensor detects objects that are well beyond this value. However, the sensitivity is greatly reduced. The sensor detects the presence of an object anywhere up to 50 cm when the returned value drops to 0. I did not perform measurements with distances below 5 cm. Proximity values below 5 cm increase exponentially to 13000 (at a distance of 5 cm the value is 266).
In ambient light and white light measurements, it is observed from the graph (Figure 2, Figure 3) that the result was influenced by the sensor's own shadow. Light values decrease when measured at a distance of 7 cm from the sensor.
Sensor sensitivity was an important consideration when designing the bird feeder. From the measurements I made, I confirmed the expectation that the sensitivity of the sensor was distance-dependent. In other words, the sensor will not detect a slight change in position if the object is further away from the sensor. The closer the object is to the sensor, the more accurate the measurements. However, the proximity should not be overstated. The closer the subject is, the more noise is present in the measurements.Types of bird feeder
When designing the bird feeder, we have to decide on the location of the food opening. The main difference is the availability of food. Some feeders contain a stick from which birds can access food. The advantage of this type of feeder is that all the birds come to the same place and are easier to detect and subsequently recognize. The disadvantage is that the feeder is only suitable for certain bird species. Another type of feeder has free access to the food area. Birds can enter the food area from different directions. The food is not always in the same place, and as a result, the birds' position varies greatly during feeding. I have opted for the second option, where there are no restrictions on the species of birds as we want to extend support to any area and to the largest possible species of bird.
Design of bird feederI opted for the standard roof. I designed the bird feeder which can be made using 3D printer. Most components can be 3D printed. Only metal poles (columns) connecting the roof and the part with the food content.In the design of the control room, from the perspective of the project, the most important loft was the area above the food. This is the place where the electronics is installed. Above the food are sensors and associated electronics. Space should be sufficient for extensions and equipment for development purposes. In the case of space shortage, the possibility of installing electrical cables is also provided. In the first phase, the power supply is installed under the control. Outside the bird feeder, there is currently a electronics for capturing of birds on detected presence.
Production of a bird feederMaterial for 3D printing is located on Thingiverse. It takes 18 parts to produce. Of these, most are for the roof.Address to Resources and Manufacturing Instructions: https://www.thingiverse.com/thing:4126803
Data acquisitionBefore we start working on data that cannot be much affected, it is a good idea to test the system on basic data. The first phase, therefore, was the recognition of known objects. When I was satisfied with the results, I started collecting real data. The problem with real data is that every measurement needs to be pre-evaluated. Each time the bird arrives, measurements from the sensors must be recorded. This is not enough to identify the bird species. All measurements must be accompanied by the type of bird. Bird identification will be performed by an expert reviewing the bird imagery. Only when more data is collected will it be possible to begin learning and automatic recognition. In building the system, we will simultaneously assist with the recognition system. The expert will review the correctness of the recognition and correct it if necessary. We will continue this until we are satisfied with the result.
Test dataFor starters, I decided to test the whole system on known data. This information is controlled, there are fewer species, and it is easier to infer the type of classification. I simulated the bird's arrival by dragging an object to the sensor area on a piece of paper. I had three different items to identify. I introduced the items at different speeds and from different directions. I didn't change the layout of the objects much. Later I added some measurements of the arm (the recognition of adding food to the feed).
Real bird dataIn order to start learning the system to recognize different species of birds, we need data. More quality data than we have more successful will be learning and the resulting new recognition.The goal is to use as few sensors as possible, which are easy to use. This would provide a system that would be largely portable elsewhere. Nevertheless, to begin with, I decided to record measurements from all currently available sensors. The SparkFun Proximity Sensor VCNL4040 returns three values: proximity, ambient light, and white light. All three sensors should provide sufficient data for successful identification. Once I am satisfied with the recognition system, I will begin removing individual measurements. The goal is to teach the system without data from the removed sensor and without reducing the recognition performance.
Taking photo of birdsSensor data (proximity, ambient light, white light) is not sufficient to manually identify birds. Birds are needed for identification. I decided on videos. Sometimes it is crucial to identify the bird in its entirety when recognizing the bird. One picture per bird may not be enought. Because we can't guarantee we'll get a picture of the bird from the side.The presence of a recognized object in the sensor area begins to store information from the sensors. Still, a recording request is sent. At each request, recording begins and is recorded for five seconds. Five seconds should be sufficient to identify the bird. Longer periods of presence of each bird are also not foreseen.I did the shooting with a Raspberry Pi and a connected camera.Learning Tensorflow models
To introduce machine learningn I used Tensorflow. Collecfed data were used to teach tensorflow.