Flying Fish Rover (2024)

This was my science fair project for 2024

Designing

This is a description of my thought process along the way, and the project coming together.

Designing

Rubric

The CSCOE Big Bang science fair had this printed for all of the competitors, as a rubric and a guide. Unfortunately, there is no record of the original packet for 2023, I don't know why because there was a fair, but the only difference is the dates and the location. 

Screenshot_2025-11-27_09-44-54.png

Screenshot_2025-11-27_09-45-08.png

Screenshot_2025-11-27_09-45-19.png

Screenshot_2025-11-27_09-45-28.png

Screenshot_2025-11-27_09-45-37.png

Screenshot_2025-11-27_09-45-55.png

 

Screenshot_2025-11-27_09-46-03.png

Screenshot_2025-11-27_09-45-47.png

 

Designing

Brainstorming

My original idea was to make a rover that would be sent to unknown areas and take temperature and humidity readings, plus has a carbon monoxide detector. My pi would be connected to a screen that displays the information received. The idea was to use the Elegoo v4.0 smart robot kit as sort of a base for the following additions. 

Actually, I was at first thinking of making a bird encyclopedia website but that never worked out.

The original component list: 

Designing

Engineering Design Process

Engineering Design Process

  1. Define the problem
  2. Do background research
  3. Specify requirements
  4. Brainstorm, Evaluate, and choose solution
  5. Develop and prototype solution
  6. Solution either partly or fully meets requirements (testing)
  7. Communicate results

Untitled_design_3_600x600.webp

Defining the Problem/challenge

Building a rover that takes temperature and humidity readings, can avoid obstacles, detects carbon monoxide, and more. It can be used by firefighters, scientists, anybody who wants to be sure an area is safe.

Do Background Research

Robot can be used to fight fires or just explore a cavern, like a mini mars rover. Mars rovers do almost the same thing as my rover: temperature readings, rock and soil samples, and pictures. With more developments, it could become a rover, checking if somewhere is suitable for human life. In this way, it is a lot like a Mars rover.

Rover picture:                                                                   Base rover project:

mars-rover-sulfur-hero-940x529.jpgScreenshot_2025-11-21_16-51-03.png

Specify Requirements

Carbon monoxide detector temperature and humidity sensor, mounted with the Arduino and breadboard, and jumper wires on top of the robots. The LCD will display the temperature and humidity readings. The Arduino will control and power the sensors. Another rechargeable battery powers the screen.

Brainstorm, Evaluate, and Choose Solution

Using the Elegoo robot as a base, adding cool sensors and a screen to the top to complete the requirements.

#include <DHTStable.h>

#define DHT11_PIN 7
DHTStable dht;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int chk = dht.read11(DHT11_PIN);

  Serial.print("Status: ");
  Serial.println(chk);

  Serial.print("Temp: ");
  Serial.println(dht.getTemperature());

  Serial.print("Humidity: ");
  Serial.println(dht.getHumidity());

  delay(1000);
}

This is the code for the dht sensor, also a test code.

Develop and Prototype Solution

Add a photoresistor module to detect light, program it to light an LED if there is light and red LED if no light. Another Battery, no Pi, only Arduino.

 

Designing

Materials and Procedures

There were many variations of each, I will start with oldest to newest.

The Original Materials List

The Original Procedure

 As you can see, these are a bit patchy.

Materials (Updated version)

Procedure (Updated Version)

Still quite patchy but it worked for a bit.

Materials (take 3)

Procedure (take 3)

Designing

The Code

There were a lot of draft codes, like a lot, which is why these are the finalized code. Who wants to see broken code?

int buzzer = 9;
int co_sensor = 8;
int co_detected;
int msr = 0;
int sensor = A0;
int LED = 4;


#include <LiquidCrystal.h>
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

#include <dht.h>
dht DHT;
#define DHT11_PIN 7

void setup() {
  int ts = DHT.readTemperature
  int hs = DHT.readHumidity
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(4, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(co_sensor, INPUT);
}

void loop() {
  int chk = DHT.read11(DHT11_PIN);
  lcd.setCursor(0,0);
  lcd.print("Temp-");
  lcd.print(ts);
  lcd.print("c");
  lcd.setCursor(0,1);
  lcd.print("Humidity-");
  lcd.print(hs);
  lcd.print("%");
  Serial.print
  co_detected = digitalRead(co_sensor);
  if(co_detected == LOW) {
    Serial.println("co detected... run for your life!");
    digitalWrite(buzzer, HIGH);
  }
  else {
    Serial.println("no co detected... go eat some pizza");
    digitalWrite(buzzer, LOW);
  }
  msr = analogRead(sensor);
  Serial.println(msr);
  if (msr > 100) {
    Serial.println("soft light");
    digitalWrite(4, LOW);
  }
  else {
    Serial.println("hard light");
    digitalWrite(4, HIGH);
  }
  delay(1000);
}

The Finalized code

Screenshot_2025-11-27_08-14-22.png

Screenshot_2025-11-27_08-14-43.png

Designing

Wiring

Here is the wiring diagram that I used on the board for the presentation.

image7.jpeg

Then, here is a better wiring diagram made with Tinkercad. There was a slight problem though, because Tinkercad doesn't have some of the components that I used, like the DHT11 temperature and humidity sensor, so I could only show what the LCD wiring looked like. As for the remaining sensors, I used digital pin 7 for the DHT11 sensor and  pins ~9 and 8 for the CO module and buzzer.

Screenshot_2025-11-27_09-09-13.png

Presentation

This is a shorter section but it is about the overall presentation of my project

Presentation

Challenge

There was some conflict with this, because with all of my sensors and breadboard extension module, There was little to no space for the carbon monoxide sensor, so I had to cut that, also because the circuit was barely running, as there was only 5v supplied. I didn't realize I could use a power source.

The Challenge

Design an addition to a robot where the addition can take temperature and humidity readings, detect light, detect carbon monoxide, and display information on a screen, using the Arduino Uno as the controller. 

Presentation

Abstract

Abstract

In this design challenge, there were no obstacles until my original rover controller, a Raspberry Pi, was fried because a voltage regulator is needed when you power the Pi with batteries. As a substitute for the Pi, the Arduino Uno was brought in. The Uno is a microcontroller good for beginners in coding and electronics. After assembling the robot and adding the top layer, there was no display/notification for the sensors and their readings so an LCD screen was added for the temperature and humidity sensor along with a buzzer for the CO sensor and a LED for the photoresistor module. The next problem was uploading the code to the Arduino. The computer used originally was not recognizing the Uno for what it was, meaning the code was not able to be uploaded. To take care of that, another Pi was brought into the equation. This time, the Pi was not fried and worked perfectly to upload the code. (Raspberry Pis are small computers) The robot was receiving code just fine. When I tried to upload the project code, I was getting an ‘avrdude: content does not match: verification error’ . Then, all I could do was to double check everything. I disconnected the LCD and tried to upload the code, same error. I disconnected the CO monitor next, uploading the code, and this time there was no error! I rewired everything I had taken off really carefully and there was no error, but the monitor was not doing its job monitoring. After more testing, I found that the CO monitor was not getting enough power because of the amount of things on the breadboard,so it only had enough power to turn on its LED that signifies it is on. At that point I decided adding more power would probably not be safe for the other components so I got rid of the CO monitor and buzzer to make sure the LCD and photoresistor were getting enough power. I uploaded the code again and it worked! The rover was not quite what I imagined it to be, but it still accomplished most of what I wanted it to do, which is a success to me, because after the first error in uploading , I thought it might never work at all, but after a bunch of rewiring, it did.

Presentation

FINAL VERSION Materials and Procedure

Materials

Procedure

  1. Assemble the Elegoo kit

  2. Drill holes in the top platform and the chalkboard

  3. Secure the chalkboard on top of the platform using four screws, eight washers, and eight nuts

  4. Secure the breadboard on to the surface of the chalkboard with double-sided tape

  5. Put the batteries in the battery box

  6. Put double-sided tape on the bottom of the battery box and fix it to the top of the robot car battery

  7. Secure the Arduino to the bottom of the Raspberry Pi case using two small screws

  8. Fix the Raspberry Pi case with the Arduino inside across from the breadboard using double-sided tape

  9. Wire the photoresistor module and LED

  10. Wire the DHT11 temperature and humidity sensor

  11. Wire the CO module and active buzzer

  12. Wire the LCD, resistor, and potentiometer

  13. Connect power to the breadboard

  14. Code the sensors, LCD, LED, and buzzer

  15. Upload the code to the Arduino

  16. Connect the Arduino to the battery pack with the Arduino cord

  17. Test the robot (drive it, light a match near the CO sensor, test the LED and photoresistor, and the LCD screen and DHT11 sensor)

  18. Record results

Presentation

Result

The rover met three out of four standards for this challenge: temperature and humidity readings, detect light, and display information on a screen. There was not enough power to control all of the sensors, so I had to either add another power source or cut a sensor. I had to go with the latter because too much power could damage your components, a fact I learned all too well when the first Pi got fried. Overall, the project did better than I thought it would but it did not achieve what I wanted it to be.

I personally, looking back, don't like this conclusion, but oh well. That was for the deadline.

 

Pictures

What is a good science fair board without pictures?

Pictures

Pictures

image0.jpegimage1.jpegimage3.jpegimage4.jpegimage5.jpegimage6.jpeg