Skip to content

Software

CherenChin edited this page Apr 10, 2020 · 17 revisions

The Coding Language used for this system is c++ with the operating system as Linux on the Raspberry Pi. As it can be seen from the system diagram of the home page, the Raspberry Pi measures the generated voltage from the DC motor, adjusts the blade pitch accordingly using a PWM (Pulse-Width-Modulation) Proportional Controller and displays these information on the Linux Terminal.

Generated Voltage Measurement

The DC Motor generates an analogue voltage signal when the blades rotate. As the Raspberry Pi does not read analogue input signals, a 12-bit ADC (Analogue-to-Digital Converter) with 4 channels (ADS1015) is used to read the input voltage signal using the I2C communication bus. It has a programmable gain from 2/3x to 16x to amplify small signals and read them with higher precision. A written c++ library for using the ADC can be found on https://github.com/hallgrimur1471/Adafruit_ADS1X15_RPi.

Blade Pitch PWM Proportional Controller

Clone this wiki locally