1. Context of the Experiment
In the previous experiment, the concept of capacitance measurement was introduced. The principle is based on measuring changes in capacitance or the influence of a changed capacitance on an electrical circuit. One field of application is acceleration measurement, which are covered in this experiment.
This experiment is dived into three parts, with the first part focusing on choosing a suitable sensor for different applications. In the second part, a digital sensor is provided and to be evaluated with an Arduino mirco-controller. The data shall give insight and understanding of the sensor's advantages and drawbacks. In the third part, a measurement of the often only theoretically discussed pendulum is to be conducted and the data to be analyzed.
Similar to already conducted experiments, questions concerning knowledge, understanding and your results have to be answered correctly, to pass this experiment. The questions are VIPS only and can be answered during and after the experiment.
2. Learning Goals of this Experiment
- Knowledge:
- Understanding sensor principle
- Learning about limits of capacitive sensors due to their principle of operation
- Selecting a suitable sensor according to predefined requirements
- Skills
- Skimming through datasheets for desired information
- Working with an Arduino micro-controller for data acquisition of digital data
- Processing of measurement data in Matlab
3. Literature
[1] Kern, A. Abbasimoshaei, C. Hatzfeld, Engineering Haptic devices, 3rd edition, Springer, 2022.
[2] Craig Aszkler, CHAPTER 5 - Acceleration, Shock and Vibration Sensors, Editor(s): Jon S. Wilson, Sensor Technology Handbook, Newnes, 2005, Pages 137-159, ISBN 9780750677295,https://doi.org/10.1016/B978-075067729-5/50045-8.
[3] Lectures: Electrical Measurement Technology, Capacitive Sensors
4. Basics/Fundamentals
4.1 Acceleration measurement
A fundamental part of mechanical dynamics is acceleration. It is used to measure vibrations, impulses and can be further used to get velocities and positions. Acceleration is sensed by accelerometers, where several different types of accelerometers are commercially available. These types can be distinguished by their principle of operation. There are for example, piezo-electric, piezo-resistive, and capacitive sensors.
4.2 Capacitive accelerometers
The capacitive accelerometer provides an output voltage according to the change of an internal capacitance, where Fig. 1 shows the basic structure of one type of capacitive accelerometer. Inside, there are two fixed and one movable electrodes that make two capacitors in total. The capacitance of each capacitor depends on the distance between the movable and the outer electrode, where the movable electrode is influenced by its mass and moves according to forces affecting the mass.
From this point it is clear, that the mass is affected by a multitude of forces such as friction, material elasticities, friction and gravitation to just name a few. The most important ones are dynamic forces, such as acceleration ( ).
Fig. 1 Structure of one type of capacitive accelerometer
By knowing the mass, the relationship between displacement and force and the relationship between displacement and capacitance, the acceleration can be calculated. An electronic circuit is used to convert the change of capacitance into a useful voltage signal as sensor output. The output signal can then be used directly (analog sensor) or be transformed into a digital signal (digital sensor). In analog-sensors, an analog-to-digital converter is required to digitalize the sensor values. This process typically includes filtering noise and amplifying the signal. On the other hand side, a digital sensor consists of a small micro-controller, that filters and digitalizes the sensor signals and communicates with the main processing unit (Computer, Main controller) transmitting the sensor output as already digital signals.
4.3 Parameters of Capacitive accelerometers
There are several specifications for capacitive accelerometers. The specifications are usually listed in the datasheet of the sensor. Some of them are:
4.3.1 Measurement range
The output acceleration is usually scaled to multiples of and typical capacitive accelerometers range from to .
4.3.2 Sensitivity
Sensor sensitivity defines, how sensitive the sensor output (in ) is to changes in acceleration. The sensitivity depends on the excitation frequency and is typically higher for smaller sensor ranges. Usually, the sensitivity is given in .
4.4 How to choose a suitable sensor
Depending on the application's requirements, a suitable accelerometer has to be chosen. Typical parameters to respect are:
- The range of acceleration to be measured
- The required sensitivity
- The number of required axes of measurement
- Maximum allowed error
- The operational ranges (pressure, temperature)
- Linearity-factor (how reliable can values be reproduced
5. Technical Basics & preparations
In the following are some aspects to be considered before starting a measurement
- What is supposed to be measured → What values are to be expected (sine-wave-like shape, spikes etc.)?
- What measuring device can be used for measuring → Does it need to measure analog values or digital protocols? Does it provide the necessary accuracy?
- What are the possible (systemic) errors and external limitations that exist in the setup?
Preparations:
For the first part:
- Check the following datasheets:
For the second part you need:
- Arduino UNO (Version R3)
- ADXL 345 (digital accelerometer)
- Jumper wires
- Make sure that the Adafruit ADXL345 and Adafruit Unified Sensor libraries are installed on Arduino IDE:
For the third part, use one of the provided measurement pendulums and computers to generate data. A user-guide can be found below to explain the procedure. The goal is to adjust and use the data to analyze the pendulum.
6. Experiment 6A : Choosing a suitable sensor
6.1 Choosing the correct accelerometer:
In this section, different applications are introduced and a suitable accelerometer are to be chosen for each application. The decision on the sensor for this shall be based on the conditions and circumstances of each application.
For each application, one sensor is considered the optimal solution. The task is therefore, to find the optimal sensor.
All the required properties and features of each sensor are given in the datasheets.
The sensors in question are:
- ASC 4221 MF
- ADXL 377
- ADXL 335
6.1 For each of the following applications, choose the most appropriate accelerometer from the given three sensors. Note down the correct sensor and use it later in VIPS!
6.1.1 The environment of an application requires sensing of acceleration over 1 axis at 90°C. {VIPS}
6.1.2 An application requires acceleration sensing over 3 axes with a range of (Hint: The non-linearity error of the sensors would be a decisive factor!) {VIPS}
6.1.3 An application requires 3-axes acceleration sensing with a range of and a maximum resolution of {VIPS}
6.2 Experiment 6B: Working with a capacitive accelerometer:
In this section, you will use an off-the-shelf capacitive accelerometer (ADXL345) and derive a relationship between accelerations and angles. The following file is the datasheet of the sensor.
As a digital sensor, the ADXL345 uses a communication protocol to exchange data with the main processing unit (for us, this is the Arduino). For this sensor, the communication protocol is called I²C. The sensor is located on a so called breakout-board, that provides some electronics and connection pins. The sensor itself is the small, black block in the middle of the breakout board. In total, the breakout board has 10 pins, of which four are of our interest for this experiment:
- 3.3 V → supply voltage (not 5V!)
- GND → Ground connection
- SCL → Clock pin (for I²C communication)
- SDA → Data pin (for I²C communication)
Connect the sensor to your Arduino board as follows:
Use the following Arduino code to get the acceleration data from your sensor:
When you upload the code on your Arduino board, open the serial monitor:
You should see something like this:
In the next step, use your desk and the provided triangles to put the z-Axis of the sensor into different angles with respect to your desk. Use the Arduino Serial monitor for reading the sensor.
(Note the direction of the axes!)
- (flat on the table with z-Axis pointing up) {VIPS}
- {VIPS}
- {VIPS}
- {VIPS}
- (flat on the table with z-axis pointing down) {VIPS}
6.3 Experiment 6C - Analyzing a pendulum
As a famous example for oscillations and kinematics in general, the pendulum is an often discussed topic. As part of this experiment, you will be using a prepared setup to generate your own measurement data and analyze it in Matlab.
Pendulum | Acceleration sensor | Arduino connection |
---|---|---|
- The experiment included typical questions regarding
- Frequency
- Mass
- Forces
- Amplitudes
- This experiment does not include us giving you all the equations, so you need to look up a few of them in your scripts or on the internet
- As an example: the relationship between mass, pendulum radius and frequency is given by , but what that means is yours to find out
- The experiment consists of 2 measurements
- Measurement A: simulate a slow, constant angular velocity while measuring accelerations in tangential and normal direction
- Measurement B: simulate a free oscillation by initially displacing the pendulum while measuring normal acceleration, tangential acceleration, angular velocity
- The measurements will be conducted by using our Matlab app at one of our computers
- The app is only for taking measurements, not for analyzing the data!
- There currently are only 2 pendulums, so please respect the time
- But please feel invited to observe different behaviors
- Afterwards, you will receive the measurement data via Email and post-process it to find the answers to our questions.
- We will also receive the same measurement data and calculate your solutions depending on your measurements
- DISCLAIMER:
- Treat the pendulums with respect and care! → No unnecessary swing-ups and/or games!
- Warn people around you, that they won't get hit by the pendulum's mass!
Matlab App:
App after logging in with credentials | App after connecting to Arduino | App after performing Experiment A | App after performing Experiment B |
---|---|---|---|
|
|
|
|
Experiment 6A
This experiment is about understanding the dynamic behavior of the capacitive sensor and ignore the angle/angular velocity. The VIPS questions are related to the accelerations, their amplitudes, their mean and their relation to each other. The output accelerations should look similar to sine/cosine waves. Everything else is most likely a false measurement and has to be repeated.
Procedure:
Open the App, connect to the Arduino and use the "Start Measurement" button to initiate the recording of data.
→ Best practice: Take the mass in your hand, start the measurement and move it with a slow and constant angular velocity as seen in the animation below:
Experiment 6B
This experiment is about actually taking measurements to recover the pendulum physics. The focus is about recording data and analyzing it in Matlab. The output accelerations should look similar to sine/cosine waves. Everything else is most likely a false measurement and has to be repeated.
You will receive a *.mat file containing a Matlab struct. Inside of that struct, you will find different arrays with the measurement data. To get the data, a "." index is required (e.g. "all_evaluation_data_6.experiment" will output 6, as this is Experiment Nr.6 and the variable is inside the struct).
You will find the following:
- From Measurement A
- accelTime : time vector of the measurements
- accelX : acceleration in X direction of the sensor
- accelY : acceleration in Y direction of the sensor
- angle : angle of the mass about the pendulum (rotation about the sensor Z-axis)
- angleVel : angular velocity of the mass about the pendulum (rotation about sensor Z-axis)
- From Measurement B
- accelTimeTriggered : time vector of the measurement
- accelXTriggered : acceleration in X direction of the sensor
- accelYTriggered : acceleration in Y direction of the sensor
- angleTriggered : angle of the mass about the pendulum (rotation about the sensor Z-axis)
- This angle may not be correct, but please use it for your VIPS questions
- angleVelTriggered : angular velocity of the mass about the pendulum (rotation about sensor Z-axis)
Procedure:
Open the App, connect to the Arduino and use "Start Measurement B" button to initiate the recording of data.
→ Best practice: Take the mass in your hand, displace it to somewhere between and (PLEASE AVOID MORE THAN THAT), start the measurement and let go of the pendulum
- Repeat the experiments as often as you must, to generate a reasonable sensor output (sine/cosine wave shape).
- When you are done, send the data and start with the post-processing
- You may need the length of the pendulum though!
7. Evaluation of Experiment Results
Some useful Matlab functions and ideas will be provided here. If you find yourself new to Matlab, We recommend using the tutorial, as it provides a great starting point
Add Comment