Week #6

Week #6 #

Team #

Team Members #

Team MemberTelegram AliasEmail AddressTrackResponsibilities
Dmitriy Vizitei (Lead)@otkisaevd.vizitei@innopolis.universityLow level (embedded) + Electric circuit engineer + testingProject coordination, task delegation, programming and testing prototypes
Senea Belykh@SenyaZenyas.belykh@innopolis.universityLow level (embedded) + Electric circuit engineerProgramming and testing prototypes
Dmitry Ryabov@theDioxiderd.ryabov@innopolis.universityLow level (embedded)Programming
Anas Hamrouni@reachnastaa.hamrouni@innopolis.universityDesign engineerDesigning 3D models
Andrew Pavlov@chaleshka_0and.pavlov@innopolis.universityTech writerDocument the work and write reports

Specify here all the necessary links to your website, application installer, final demo, etc.

Final deliverables #

API Docs #

/**
 * Convert a raw ADC measurement to real voltage.
 *
 * @param adc: Raw ADC measurement
 * @return Voltage
 */
double adcToVolts(uint32_t adc)

/**
 * Convert voltage to index number of a triggered reed sensor.
 *
 * @param v: Voltage
 * @param N: Total number of sensors in the line
 * @return Index number of a triggered reed sensor in range [1, N]
 */
int voltToLineNumber(double v, int N)

/**
 * Pretty-print current measurement state of water level into the serial port.
 */
void printMeasurements()

Documentation #

Electrical Circuit The electrical circuit of the device consists of six normally closed (NC) reed switches (4x28 mm) that connect power and signal lines. A 10 kΩ resistor is placed between each reed switch to detect which one is closed using the voltage divider rule. A current-limiting resistor is placed before the first reed switch to prevent a short circuit. A separating resistor is placed after the last reed switch to distinguish between the last reed switch being closed and no switch being closed. A 100 kΩ resistor is connected between the signal line and ground to suppress contact bouncing. The circuit operates at 3.3 V.

PCB Design The printed circuit board (PCB) has a length matching the tank length (234 mm), which fits six reed switches with 0.85 mm spacing between leads, and a minimum possible width of 11 mm. The trace width is 1 mm for reliability and ease of manufacturing. The final device consists of two identical PCBs, but with the reed switches offset by 14 mm (half the length of a reed switch) relative to each other. This allows dual verification of magnet position and eliminates blind spots between reed switches on the opposite PCB.

Assembly
- The two PCBs are stacked together with the reed switches facing outward and a dielectric spacer in between.
- They are then placed inside a rod.
- Power (VCC), ground (GND), and two signal lines are connected to a microcontroller board mounted on the top cover.

Project overview #

This project is a request to develop a solution for the use of unmanned aerial vehicles in agriculture. The task was to develop a system for measuring the liquid level in the tank of an unmanned aerial vehicle for spraying crops.

Features #

  • Custom sensor of liquid level solution for a tank of complicated form
  • The sensor has an easy production and support abilities
  • The custom pcb with stm micro controller
  • The reliable way to measure liquid level
  • The custom easy to understand progress bar (visualization) of liquid level
  • Isolation of electric parts exposed to liquids
  • The smart step by step installation and uninstallation system of sensor rod and float configuration

Tech stack #

FieldStack
Embeded programmingC/C++, Cube IDE, Arduino IDE
Design engineerNX Seimens
Sensors MechanicsMath + physics

Setup instructions #

  1. Assemble the tool
  2. Assemble the float
  3. Attach the ‘bottomCap’ to the tool
  4. Place the float on the ‘bottomCap’
  5. Enter the tool into the tank through the filling neck
  6. Enter the rod into the tank from the top
  7. Align the rod with Float and the ‘bottomCap’
  8. Hold the tool and turn the rod to screw together the rod and the ‘bottomCap’
  9. Pull the tool from the filling neck
  10. Fix the rod with screws and place in the PCB

How to assemble the tool: #

  1. Glue the short side of toolHandler with toolHandler2
  2. Align the ’tool’ part with ’toolhandler2’ so they fit and glue them together

How to assemble the float: #

  1. Put some glue inside the groove of the float
  2. Attach both parts

Presentation draft #

https://docs.google.com/presentation/d/1ErlLMnh_HFSRYw7ifzSZqWEL7AQgV6kYaB8lmL1xhwc/view

Weekly commitments #

Individual contribution of each participant #

MemberContribution
Dmitriy ViziteiBoard assembly, testing
Senea BelykhBoard assembly, testing
Dmitry RyabovCode for calculating ADC, code for visualizing and interpreting the reed switch signal
Anas HamrouniUpdated version of the models
Andrew Pavlov6nd week report, presentation draft

Plan for Next Week #

  • Calibrate the sensor’s work to make it more reliable in magnet field
  • Update the demo presentation
  • Improve the materials used in assembly-
  • Complete assembly with custom pcb with stm32 controller
  • Test final assembly

Confirmation of the code’s operability #

We confirm that the code in the main branch:

  • In working condition.
  • Run via docker-compose (or another alternative described in the README.md).