Airspeed Conversion with Arduino

Job ID: 39109416

Budget: $30 – $250 USD

Overview
Demonstrate pressure to airspeed conversion using air movement and hand-built Pitot.
Students will assemble a two 3/16” tubes into a 3D printed mount. Tubes will be inserted and glued, air conduit will be attached.
Students will test Pitot by connecting tubes to digital readouts and recording airspeed data.

Programing requirements
Read MS4525 ports as differential pressure
Calculate as velocity using Bernoulli’s Equation
Convert output from M/S to Mile Per Hour (MPH)
Display as MPH
Read MS4525 temperature
Convert from Centigrade to Fahrenheit (F)
Display as F

Hardware
Arduino UNO as a Seeeduino v4.2
Grove Base Shield
Grove 1.2-inch IPS Display
MS4525DO Digital Air Speed Sensor
Student built Pitot and static tubes

Programmer request
We have all elements needed to capture, calculate and display airspeed and temperature. We need all parts integrated into a working program. I have nether the time or inclination to learn required syntax, that will be your job.

Bolder flight publishes a working differential pressure and temperature program, ms4525do_example.ino. I have successfully read pressure and temperature as serial data output running ms4525do_example.ino. ms4525do_example.ino should be the base program. Existing Serial outputs should be commented out with /* */ but retained for diagnostic use. Output data will be written to Grove 1.2 IPS Display.

Grove publishes a demo display program with libraries for Grove 1.2-inch IPS Display I have revised the sample program to successfully display text over the entire display in various colors.

Airspeed calculations are taken from other programs. Presuming ms4525do_example.ino pressure differential output variable is pres.pres_pa in pascals, air speed in M/S calculation would be:
airSpeedMS = sqrt((2 * pres.pres_pa)/1.2041); where air density is given as 1.2041, sea level.
Conversion from M/S to Miles Per Hour would be
airSpeedMPH = (airSpeedMS * 2.236);
Presuming ms4525do_example.ino temperature output variable is pres.die_temp_c in centigrade, temperature output display would be:
Temp_F = (pres.die_temp_c * 9.0 / 5.0) + 32.0;
I am not sure of pressure or temperature output names; it may also be \N or \T
Display is four lines in Red and Blue with Black background, text size set at 6
“Speed”
airSpeedMPH
“Temp F”
Temp_F
Check the following program text. It writes to my test display as intended. You would replace text output “12.3” with variable airSpeedMPH, and “72.1” with variable Temp_F.

We will test program function on my known working hardware. Program must be submitted for testing within seven days or less with corrections completed in one day. We must have a fixed price for completed project prior to assignment.  



void setup(void)
{
lcd.init();
lcd.fillScreen(BLACK);

lcd.setCursor(0, 0);
lcd.setTextColor(RED,BLACK);
lcd.setTextSize(6);
lcd.println("Speed");
lcd.setCursor(20,60);
lcd.println("12.3");

lcd.setCursor(0, 140);
lcd.setTextColor(BLUE,BLACK);
lcd.setTextSize(6);
lcd.println("Temp F");
lcd.setCursor(20, 190);
lcd.println("72.1");

}

void loop()
Related categories: C Programming Arduino