Anemometer
As described in week 11 my final project has changed to a sun tracker. However, I'm going to continue nevertheless with the tilting anemometer and keep documenting here.
In the moulding and casting week (14) I made a flexible joint from silicone.
Design
I then continued drawing the associated part for the mounting and cable routing/connector.
Here is the 3D model of the design.
The location that is easily accesible and I can use for colocating the anemometer has a 40 mm x 40 mm square tube bracket, so I made a clamp for that size.
Sensor and Software
I got the 9-axis BNO085 breakout board from Adafruit. To test it I used a XIAO SAMD21 and followed their instructions on the UART RVC connection method.
The example from the library was uploaded and worked perfectly fine.
This is the example code from Adafruit for plotting the data:
/* Plotter-friendly version of the test sketch for Adafruit BNO08x sensor in
* UART-RVC mode */
#include "Adafruit_BNO08x_RVC.h"
Adafruit_BNO08x_RVC rvc = Adafruit_BNO08x_RVC();
void setup() {
// Wait for serial monitor to open
Serial.begin(115200);
while (!Serial)
delay(10);
Serial1.begin(115200); // This is the baud rate specified by the datasheet
while (!Serial1)
delay(10);
if (!rvc.begin(&Serial1)) { // connect to the sensor over hardware serial
while (1)
delay(10);
}
// Print labels for the values
Serial.print(F("Yaw"));
Serial.print(F("\tPitch"));
Serial.print(F("\tRoll"));
Serial.print(F("\tX"));
Serial.print(F("\tY"));
Serial.println(F("\tZ"));
}
void loop() {
BNO08x_RVC_Data heading;
if (!rvc.read(&heading)) {
// Data not available or parsable, keep trying
return;
}
Serial.print(heading.yaw);Serial.print(F(","));
Serial.print(heading.pitch);Serial.print(F(","));
Serial.print(heading.roll);Serial.print(F(","));
Serial.print(heading.x_accel);Serial.print(F(","));
Serial.print(heading.y_accel);Serial.print(F(","));
Serial.print(heading.z_accel);
Serial.println("");
}
Calibration and other consideration
Note
I realized, that the inbuilt compass in the BNO085 makes things a lot easier. Given, that there is no disturbance from ferritic objects I can set up the sensor in any direction and correct for the local declination in the software.
For calibration purpose I need to compare the new anemometer to a standard one.
- I'm going to collect the raw data (9-axis output) in high resolution (maybe 1 Hz or faster?) for a certain period of time.
- I need to identify the relationship and filtering methods suitable to produce meaningful wind direction and speed data from the raw data.