Messaufbau mit Arduino: Gyroskop: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(168 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]  
[[Kategorie:Projekte]]  


[[Datei:GyroVideoGIFwiki.gif|mini|600px|Abb. 1: Gyro-Messsystem]]


 
'''Author:''' [[Benutzer:....| .... ]]<br/>
'''Author:''' [[Benutzer:Syed-Rafsan_Ishtiaque| Syed Rafsan Ishtiaque ]]<br/>
'''Art:''' Praxissemester<br>
'''Art:''' Praxissemester<br>
'''Dauer:''' 02.05.2023 - 21.08.2023<br>
'''Dauer:''' 02.05.2023 - 21.08.2023<br>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing Ulrich Schneider]]<br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing Ulrich Schneider]]<br/>


== Einleitung ==
== Einleitung ==
 
Das Gyroskop-Projekt wird es uns ermöglichen, die Daten einer kontinuierlichen Drehung eines Gyroskops zu erfassen und sie zur Analyse an unsere Steuereinheit zu senden. In diesem Projekt werden wir das Gyroskop drehen und seine Daten über einen Schleifring übertragen. Das Hauptaugenmerk des Projekts liegt darauf, die Daten an das DS1104 R&D Controller Board zu senden. Und dafür brauchen wir ein robustes System, das einen Schleifring und einen Encoder enthält. Die größte Herausforderung beim Aufbau des Systems ist die Hardware-Montage. Wir werden uns also mehr darauf konzentrieren.
 


== Anforderungen ==
== Anforderungen ==
Zeile 26: Zeile 22:
|-
|-
| 1
| 1
|  
| Ein Haltebereich für PCB zwischen der Hauptstruktur und der Gyro-Struktur
|  
| Marc Ebmeyer
|  
| 27.07.2023
|  
| Rafsan
|  
| 07.08.2023
|-
|-
| 2
| 2
|  
| Ein Servomotor (SG 90) zum Drehen des Gyroskops, des Rades des Inkrementalgebers und des Schleifrings
|  
| Marc Ebmeyer
|  
| 27.07.2023
|  
| Rafsan
|  
| 09.08.2023
|-
|-
| 3
| 3
|  
| Einem Inkrementalgeber (FC 03) zur Messung der Drehung des Servomotors (SG 90) und des Gyro (GY 35) 
|  
| Marc Ebmeyer
|  
| 27.07.2023
|  
| Rafsan
|  
| 14.08.2023
|-
|-
| 4
| 4
|  
| Ein Gyro (GY 35), der in der gleichen Achse wie das Servo und der Schleifring platziert ist und über einen Draht mit dem Schleifring verbunden ist
|  
| Marc Ebmeyer
|  
| 27.07.2023
|  
| Rafsan
|  
| 09.08.2023
|-
|-
| 5
| 5
|  
| Ein Schleifring (SN M022A-06), der über eine Welle mit dem Servo verbunden ist, um die Daten vom Gyro zu übertragen
|
| Marc Ebmeyer
|
| 27.07.2023
|
| Rafsan
|
| 09.08.2023
|-
| 6
|
|
|
|
|
|-
| 7
|
|
|
|
|
|-
| 8
|
|
|  
|  
|  


|}
|}


== Funktionaler Systementwurf/Technischer Systementwurf ==
== Funktionaler Systementwurf/Technischer Systementwurf ==


<gallery widths="650" heights="400">
Datei:GyroUMLdesign.jpg|600px|mini|Abb. 2: Dieser Entwurf zeigt die Wechselwirkungen zwischen den Komponenten des Systems
Datei:WireConnection1.jpg|600px|mini|Abb. 3: Dieses Diagramm zeigt die Verbindung zwischen den Schaltelementen
</gallery>


== Komponentenspezifikation (Elektronische Komponenten) ==
== Komponentenspezifikation (Elektronische Komponenten) ==


===Sensor===
==== GY-35-RC one-axial Gyroscope/ Analog ENC-03RC ====
Der Sensor, den wir verwenden werden, hat die Modellnummer GY-35. Auf ihm ist ein ENC-03RC-Chip montiert. Der GY-35 ist ein einachsiges Gyromodul, das heißt, ein Modul kann nur eine Achse messen. Die Spannungsversorgung beträgt 3 bis 5 V. Die Größe beträgt 10mm <big>×</big> 17.5mm <ref> https://www.christians-shop.de/GY-35-RC-one-axial-Gyroscope-analogue-ENC-03RC </ref> <ref> https://www.lxxtech.com/gy-35-rc-axis-gyroscope-analog-gyro-module-enc-03rc-module-p299.html </ref>. Eine Alternative zum Sensor GY 35 kann der Sensor MPU 6050 oder GY 521 sein.
<gallery widths="400" heights="300">
Datei:GY35 sensor.jpg|400px|mini|Abb. 4: GY 35 ENC-03RC
Datei:GY35.jpg|400px|mini|Abb. 5: Installierte GY 35 im System
</gallery>
==== Inkrementalgeber/ optischer Geschwindigkeitsmesser (FC 03) ====
Wir haben einen Encoder-Drehzahlsensor verwendet. Er besteht aus dem Chipsatz und dem Rad. Das Hauptziel des Encoders in unserem System ist es, die Geschwindigkeit des Servomotors zu messen. Das Rad ist oben auf dem Servomotor befestigt, und der Chip des Encoders ist auf einem Halter an der Seite des Rads montiert. Das von uns verwendete Modell ist FC 03 <ref> https://techmaze.romman.store/product/99187844 </ref>
<gallery widths="400" heights="250">
Datei:Fc03.jpg|400px|mini|Abb. 6: Encoder Geschwindigkeit Optische Kopplung FC-03 Sensor
Datei:Fc03mountedWheel.jpg|400px|mini|Abb. 7: Installierte FC 03 mit Rad im System
</gallery>
=== Servo motor SG 90 ===
Wir haben den normalen Servomotor, der normalerweise in Arduino-Projekten verwendet wird, so verändert, dass er sich kontinuierlich um 360 Grad drehen kann. Wir verwenden Tower Pro micro servo 9g SG90 <ref> https://datasheetspdf.com/pdf/791970/TowerPro/SG90/1 </ref> . Der Änderungsprozess ermöglicht es uns, das Servo kontinuierlich in beide Richtungen zu drehen. Wir können auch die Geschwindigkeit kontrollieren <ref> https://www.youtube.com/watch?v=JhHSXCLsN4k&t=13s </ref>
<gallery widths="400" heights="300">
Datei:Servo Motor SG90.jpg|400px|mini|Abb. 8: Servomotor 9g SG90 (von uns modifiziert)
Datei:ServoInstalled1.jpg|400px|mini|Abb. 9: Installierte Servomotor 9g SG90 im System
</gallery>
=== Slip ring SRC022A-6 ===
Für unser Messsystem ist es sehr wichtig, dass das GY 35 kontinuierlich gedreht wird. Dafür haben wir den Servomotor modifiziert. Aber dann standen wir vor einer Herausforderung. Da der GY 35 mit der Steuereinheit verbunden ist, würde eine kontinuierliche Drehung die Drähte, die mit der Steuereinheit (PCB/Arduino) verbunden sind, verwickeln. Um das Problem zu lösen, haben wir einen Schleifring installiert. Dieser Schleifring hat 6 Drähte auf beiden Seiten, was bedeutet, dass 4 verschiedene Arten von Anschlüssen des GY 35 leicht mit einer der beiden Seiten verbunden werden können. Wir haben die dünnere, drehbare Seite des Schleifrings gewählt, um den GY 35 anzuschließen. Die maximale Stromstärke, die er übertragen kann, beträgt 2A. Außerdem kann er sich mit bis zu 300 rpm drehen <ref> https://www.adafruit.com/product/736#description </ref>.
<gallery widths="300" heights="200">
Datei:SlipRingMounted.jpg|400px|mini|Abb. 10: Installierte Schleifring im System
</gallery>
=== Controller unit ( DS1104 R&D Controller Board oder Mikrokontroller) ===
In diesem Projekt werden wir zunächst einen Mikrocontroller und später eine Controller Board verwenden, die alle für das System benötigten Steuereinheiten enthält. Wir verwenden Funduino Uno <ref> https://funduinoshop.com/en/electronic-modules/other/microcontroller/873/funduino-uno-r3-microcontroller-arduino-compatible/ </ref>.
<gallery widths="300" heights="200">
Datei:microcontrollerfunduino.jpg|400px|mini|Abb. 11: Der Mikrocontroller Funduino zum Testen des Systems
</gallery>


== Umsetzung (Hardware) ==
== Umsetzung (Hardware) ==


=== Die Systemgrundlage ===
Die Hauptbasis des Systems ist der Boden, der alle Komponenten trägt. Sie ist in zwei Teile unterteilt, einer ist der Haltebereich für Servo, Gyro, Encoder und Schleifring. Der andere ist die Erweiterung, die die Leiterplatte aufnimmt. Die Leiterplatte fungiert als Hauptsteuergerät. Wir können auch einen Arduino anstelle der Platine einsetzen.
==== Der Base ====
Der Boden ist der Bereich, in dem sich die Komponenten befinden
==== PCB-Halter-Verlängerung ====
Wir haben den vorgesehenen PCB-Erweiterungsbereich. Dieser überbrückt den Leiterplattenhalter und den Hauptkörper des Systems.
<gallery widths="600" heights="400">
Datei:System Base.jpg|600px|mini|Abb. 12: Der wichtigste Aufbewahrungsort für alle Komponenten
Datei:PCBHolderExtension.jpg|600px|mini|Abb. 13: Die Verlängerung der Hauptstruktur, die die Leiterplatte hält
</gallery>
=== Schleifring-Halter ===
Der Schleifringhalter ist so konzipiert, dass er den Schleifring auf dem Servo und dem Gy35 in der gleichen Achse hält. Er hat 3 Flügel, die ihn mit der Säule verbinden und einen Haltebereich für den Schleifring.
=== Tragsäule für Schleifringhalter ===
Wir haben drei Stützsäulen auf dem Boden montiert. Sie stützen den Schleifringhalter.
<gallery widths="500" heights="400">
Datei:SlipRingHolder.jpg|500px|mini|Abb. 14: Der Haltebereich für den Schleifring
Datei:Column.jpg|500px|mini|Abb. 15: Säule zur Unterstützung des Schleifringhalters
Datei:Shaft&Holder.jpg|500px|mini|Abb. 16: Die Verbindung zwischen Schleifringhalter und Säule und der Welle
</gallery>
=== Servomotor (SG 90) Halterung ===
Wir haben eine Halterung für das Servo, es ist auf dem Boden montiert. Er hat einen Platz für die Drähte, die aus dem Servo kommen. Außerdem gibt es ein kleines Teil zur Stabilisierung des Motors. Bei der Konstruktion des Servohalters mussten wir die genauen Maße berücksichtigen, denn wenn der Halter nicht stabil ist, wird unser ganzes System keine gute Leistung erbringen.
<gallery widths="600" heights="400">
Datei:ServoHolder.jpg|600px|mini|Abb. 17: Die Halterung für den Servomotor
Datei:Servomounted.jpg|600px|mini|Abb. 18: Montierter Servomotor im Inneren des Halters
</gallery>
=== Der Schaft ===
Die Welle ist ein einzigartiges Design, um die Verbindung zwischen Schleifring, Gy35, Encoder und Servo herzustellen. Sie besteht aus drei Teilen.
==== Schleifring- und Gyroskophalter-Anschluss ====
Der erste Teil ist ein abgerundetes zylinderförmiges Verbindungsstück zwischen dem dünneren Ende des Schleifrings und dem Gy35-Halter. Seine Hauptfunktion besteht darin, den rotierenden Teil des Schleifrings zu drehen. Es hat auch ein Vakuum im Inneren für die Drähte, die aus dem Schleifring kommen. Das andere Ende dieses Teils ist mit dem kastenförmigen GY 35-Halter verbunden.
==== Gyroskop (GY 35) Halterung ====
Der mittlere Teil der Welle ist der kastenförmige Halter. Er hat zwei Aufgaben. Zum einen hält er den GY 35 auf der gleichen Achse wie das Servo und zum anderen dient er als Brücke zwischen dem Schleifring und dem Servo
<gallery widths="500" heights="500">
Datei:SlipRing_Gyro-Connector.jpg|500px|mini|Abb. 19: Der rot markierte Bereich zeigt den Stecker und die Kabel, die durch ihn gehen
Datei:GyroHolder.jpg|500px|mini|Abb. 20: Die rot markierte Kastenform, die den Halter GY 35 kennzeichnet
Datei:OverallShaft.jpg|500px|mini|Abb. 21: Der rot markierte Bereich zeigt die gesamte Welle
</gallery>
==== Servo- und Gyroskophalter-Anschluss ====
Der untere Teil der Welle ist die Verbindung zwischen dem kastenförmigen GY 35 Halter und dem darunter liegenden Servo. Dieser Teil hat ebenfalls zwei Unterteile. Das eine ist mit dem Kopf des Servomotors verbunden. Dieses Teil geht auch durch das Mittelloch des Geberrades (FC 03). Dann gibt es noch ein zweites Teil. Es ist mit dem GY 35 Halter verbunden und der untere Teil geht in diesen hinein.
<gallery widths="500" heights="400">
Datei:GyroServo1.jpg|600px|mini|Abb. 22: Der obere Teil des dritten Steckers, der den GY 35-Halter und den unteren Teil, der das Geberrad hält, verbindet
Datei:WheelHolder.jpg|600px|mini|Abb. 23: Der untere Teil des 3. Teils der Welle. Er enthält das Geberrad und ist mit dem Servokopf verbunden
Datei:Servo&ShaftBottom.jpg|600px|mini|Abb. 24: Das Servo und der untere Anschluss der Welle
</gallery>
=== Inkrementalgeber (FC 03) Halterung ===
Wir haben einen Halter für den Inkrementalgeber (FC 03) entworfen. Es ist eine Wand geformt. Wir haben den FC 03 mit einer Schraube an der Wand befestigt. Die Wand selbst wird mit dem Sockel des Systems verschraubt. Wir haben die Wand flexibel gehalten, so dass wir die Position verändern können.
<gallery widths="600" heights="500">
Datei:EncoderWall.jpg|600px|mini|Abb. 25: Der Halter für den Inkrementalgeber FC 03
Datei:EncoderMountedWall.jpg|600px|mini|Abb. 26: Der FC 03 ist auf dem Halter montiert
</gallery>
=== Der vollständige Aufbau des Gyroskop-Messsystems ===
Dies ist das System nach der Fertigstellung. Wir können sehen, dass alle Teile, die wir oben beschrieben haben, angeschlossen und installiert sind. Dieses Bild wurde nach der Installation der Hardware aufgenommen. Hier sind die Drähte nicht angeschlossen. Das Bild der angeschlossenen Kabel wird im Wiki hochgeladen, nachdem der Software- und Programmierteil abgeschlossen ist.
<gallery widths="600" heights="400">
Datei:FrontViewEncoder.jpg|600px|mini|Abb. 27: Der Aufbau des Gyro-Messsystems (Frontansicht)
Datei:Topview.jpg|750px|mini|Abb. 28: Der Aufbau des Gyro-Messsystems (Draufsicht)
</gallery>


== Umsetzung (Software) ==
== Umsetzung (Software) ==


=== Programmierung ===
=== Programmierung ===
Wir haben Arduino IDE 2.1.0 verwendet, um die Komponenten zu programmieren. Zunächst haben wir die Komponenten einzeln codiert. Für GY 35 war unser erster Code, zu prüfen, ob der Impuls vom Mikrocontroller erkannt wird oder nicht. Wenn der Impuls nicht erkannt wurde, dachten wir, dass entweder der Schleifring ein Problem hat oder die GY 35-Einheit ein Problem hat. Also haben wir sie getrennt. Dann prüften wir, ob der Schleifring funktionierte. Durch einen Durchgangstest konnten wir feststellen, dass der Schleifring in Ordnung war. Das bedeutet, dass der GY 35 ein Problem hatte. Dann haben wir einen magnetischen Test für das GY 35 durchgeführt. Wir wissen, dass das GY 35 den Hall-Effekt nutzt, und wenn wir einen Magneten in seine Nähe bringen, ändert sich der Signalzustand (0 oder 1). Aber auch das hat nicht funktioniert, wir hatten nur Nullen, keine Eins. Die beiden Codes sind im nächsten Abschnitt verlinkt. Jetzt für Servo, wir hatten unsere Test-Code perfekt funktioniert. der Link ist im nächsten Abschnitt auch. Für FC 03 haben wir unseren Code, der die RPM zählen kann. Also haben wir uns entschieden, den Servo-Code und den FC 03-Code zusammenzuführen, so dass wir den Servo drehen und die Drehzahl mit dem FC 03 zählen können. Danach haben wir alle drei Code-Komponenten, GY 35, Servo und FC03 in einem einzigen Code kombiniert. Alle Codes werden in das SVN hochgeladen.


=== Link zum Quelltext in SVN ===
=== Link zum Quelltext in SVN ===
==== Code für GY 35 ====
Einfacher Impulstest-Code für GY 35: [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/SimpleGY35Test/SimpleGY35Test.ino <code>SimpleGY35Test.ino</code>] <br>
Code für die Magnetfeldprüfung für GY 35: [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/MagnetTestGY35/MagnetTestGY35.ino <code>MagnetTestGY35.ino</code>] <br>
Code für GY 35 zur Ermittlung der RPM:  [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/GY35rpmTest/GY35rpmTest.ino <code>GY35rpmTest.ino</code>]
==== Code für Servomotor ====
Servomotor getrennt, Geschwindigkeit und Richtung: [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/ServoMotorContinuous/ServoMotorContinuous.ino <code>ServoMotorContinuous.ino</code>] <br>
Im folgenden Abschnitt ([https://wiki.hshl.de/wiki/images/e/ea/ServoTestData.jpg Servo Motor Test Data]) finden Sie weitere Angaben zu Drehzahl und Drehrichtung.
==== Code für FC 03 ====
RPM messung mit FC 03 (separat): [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/FC03rpmTestWheel/FC03rpmTestWheel.ino <code>FC03rpmTestWheel.ino</code>] <br>
RPM messung von Servo (kombiniert): [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/Servo_FC03_merged/Servo_FC03_merged.ino <code>Servo_FC03_merged.ino</code>] <br>


==== Alle Komponenten (Servo, GY 35 und FC 03 zusammen) ====
[https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/Servo_FC03_GY35_Combined/Servo_FC03_GY35_Combined.ino <code>Servo_FC03_GY35_Combined.ino</code>]


== Systemtest ==
== Systemtest ==


Wir haben ein Matlab-Skript für den Systemtest des Speed Tracker-Projekts: [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Geschwindigkeitsmessstrecke/Software/Ergebnisauswertung/berechneMessunsicherheit.m <code>berechneMessunsicherheit.m</code>]. Wir haben dieses Matlab-Skript als Referenz behalten und es für den Systemtest des Gyro-Messprojekts modifiziert. Das MATLAB-Skript für den Systemtest des Gyro-Projekts kann auf der Struktur des Speed Tracker-Projekts aufgebaut werden. Da die primären Daten, die wir betrachten, die RPM data des FC 03 und des GY 35 sind, wird sich unser Test auf den Vergleich dieser beiden Messungen hinsichtlich Konsistenz und Genauigkeit konzentrieren. Das Kernkonzept des Skripts besteht darin, die Messungen von unserem Kreiselgerät (GY 35) mit einer Referenzmessung (vom FC 03) zu vergleichen, um zu sehen, wie genau und konsistent das GY 35 ist.<br>
Das modifizierte Matlab-Skript für das Gyro-Projekt: [https://svn.hshl.de/svn/HSHL_Projekte/trunk/ET_Versuchsaufbauten/Gyroskop/Software/Ergebnisauswertung_Gyro/berechneMessunsicherheit_Gyro.m <code>berechneMessunsicherheit_Gyro.m</code>]
Anmerkung: <br>
* Dieses Skript geht davon aus, dass wir die gemessene Drehzahl des GY-35 mit einer Referenzdrehzahl des FC03 vergleichen.
* Die Daten (RPM_FC03_Ref und RPM_GY35_Meas) sind durch unsere tatsächlichen Daten zu ersetzen. Ab dem 16.08.2023 haben wir vorerst nur die RPM-Daten vom FC 03. Sobald das neue GY 35 geliefert wird, werden wir auch die Drehzahldaten des GY 35 erhalten.
* Um die Messungen zu simulieren, müssen wir den Abschnitt "Simulation of the RPM measurement" auskommentieren und die Werte entsprechend anpassen.
* Dieses Matlab-Skript liefert uns die Messunsicherheit für unser Gyro-Projekt, basierend auf den RPM data des GY 35 im Vergleich zu einer Referenz des FC 03.
* Aus der Messung wir das vollständige Messergebnis mit Messunsicherheit Typ A (<math>u_A</math>) berechnet. Wir haben das in Matlab berechnet und die Daten in Tabelle 2 eingetragen
* Referenz, Messwerte und Ergebnis werden in Tabelle 2 eingetragen. Alle Werte sind in Tabelle 2 gespeichert
* Der Systemtest gilt als bestanden, wenn der Mittelwert <math>\bar{RPM_{Mess}}</math> dem Referenzwert <math>RPM_{Ref}</math> entspricht und  <math>u_A <1\,\%\cdot RPM_{Ref}</math>. Der Systemtest ist erfolgreich bestanden <br>
{| class="wikitable"
|+ style = "text-align: left"|Tabelle 2: Systemtest für die Gyro projekt
|-
! # !! <math>RPM_{Soll}</math>    !! <math>RPM_{Ref}</math>!! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! 10 !! <math>\bar{RPM}</math> !! <math>u_A</math>!! <math>u_A <1\,\%\cdot RPM_{Ref}</math>
|-
| 1 || 000 || 000|| 000|| 000  || 000  ||  000    || 000||  000  ||  000 || 000 ||  000 ||000  ||000  || 0,00000 ||  ✅
|-
| 2 ||  || || ||    ||  ||      || ||    ||  ||  ||    ||  ||  ||  || 
|-
| 3 ||  || || ||    ||  ||      || ||    ||  ||  ||    ||  ||  ||  || 
|-
| 4 ||  || || ||    ||  ||      || ||    ||  ||  ||    ||  ||  ||  || 
|-
| 5 ||  || || ||    ||  ||      || ||    ||  ||  ||    ||  ||  ||  || 
|}
<gallery widths="1060" heights="570">
Datei: GY35&FC03RPM.jpg|600px|mini|Abb. 29: Die RPM-Daten für das System (GY35 und FC03).
</gallery>


== Komponententest ==
== Komponententest ==




=== Test im Labor ===




== Projektunterlagen ==
==== Servo motor test ====
=== Projektplan ===
Wir haben zuvor den Servomotor getestet. Wir haben verschiedene Eingaben für die Variation der Geschwindigkeit und der Drehrichtung gemacht. Unser Test war erfolgreich. Er hat bewiesen, dass der Servomotor funktioniert und sich kontinuierlich mit verschiedenen Geschwindigkeiten drehen kann. Auch unsere Welle arbeitet perfekt mit dem Servomotor zusammen. Das bedeutet, dass wir in der Lage sind, den GY35, das Rad des Encoders FC03 und den rotierenden Teil des Schleifrings zu drehen.
Von unserem Test haben wir  [https://wiki.hshl.de/wiki/images/e/ea/ServoTestData.jpg die Daten erhalten], die die Geschwindigkeit des Servos und die Richtung zeigen.


<gallery widths="600" heights="338">
Datei:ServoTestGIF.gif|600px|mini|Abb. 30: Testen des Servomotors
Datei:ServoTestData.jpg|600px|mini|Abb. 31: Daten aus dem Servotest. Zeigt die Richtung und Geschwindigkeit des Servos in Abhängigkeit von der Eingabe im Code
</gallery>


==== Slip ring test ====
Wir haben die Durchgangsprüfung (Continuity Test) am Schleifring durchgeführt. Wir haben einen Draht mit einem Multimeter und den gleichfarbigen Draht mit der anderen Sonde des Multimeters verbunden. Auf diese Weise haben wir alle 6 Drähte des Schleifrings getestet. Für unser Projekt werden wir zwar 3 Drähte verwenden (VCC, GND und OUT), aber wir haben auch einen Kanal für den REF gemacht, falls wir ihn später einbauen. Der Schleifring ist in Ordnung.


==== FC 03 test ====


== Hardware ==
Wir haben den FC03 getestet. Es hat perfekt funktioniert. Wir haben den Servo-Code mit dem FC03-Code kombiniert. Im seriellen Monitor hatten wir die RPM-Daten des Rades/Servos.


=== Sensor ===
<gallery widths="600" heights="338">
Datei:FC03TestGIF.gif|600px|mini|Abb. 32: Wir haben den FC03 getestet. Hier in diesem Video sehen wir die vom FC03 gemessenen RPM daten des Servos
Datei:ServoFC03combined.jpg|600px|mini|Abb. 33:Mit dem FC03 gemessene Daten
</gallery>


'''GY-35-RC one-axial Gyroscope/ Analog ENC-03RC'''<br>
==== GY 35 test ====
Zuerst haben wir das GY 35 getestet, während es mit der Welle verbunden war. Aber wir haben keinen Impuls erhalten. Dann haben wir den Schleifring überbrückt und den GY 35 direkt an den Mikrocontroller angeschlossen, aber immer noch nichts. Dann versuchten wir eine andere Möglichkeit, den GY35 zu testen. Wir haben ihn mit dem Funduino verbunden (vcc an vcc, gnd an gnd, out an digital pin) und einen Magneten in seine Nähe gebracht. Wir erwarteten, dass sich der Wert im seriellen Monitor ändern würde, aber es passierte nichts. Da wir unseren Schleifring bereits getestet haben und er funktioniert, bedeutet das, dass wir den vorhandenen GY 35 ersetzen oder eine andere Testmethode finden müssen. Außerdem haben wir den FC03, GY35 und Servo miteinander kombiniert. Bei diesem Test war unser Ziel, die Drehzahl des Servos sowohl mit dem GY35 als auch mit dem FC03 zu messen. Aber leider können wir im Serienmonitor nur die vom FC03 gemessenen RPM daten sehen. Das GY35 funktioniert immer noch nicht. <br>


The sensor we will be using has the model number of GY-35. There is an ENC-03RC chip mounted on it. The GY-35 is a single axix gyro module, that means one module can only measure one axis. The power supply is 3 to 5 V. The size is 10mm <big>×</big> 17.5mm <ref> https://www.christians-shop.de/GY-35-RC-one-axial-Gyroscope-analogue-ENC-03RC </ref> <ref> https://www.lxxtech.com/gy-35-rc-axis-gyroscope-analog-gyro-module-enc-03rc-module-p299.html </ref>. An alternative of GY 35 sensor can be MPU 6050 sensor or GY 521.
'''Update''': GY 35 funktioniert jetzt auch. Die von GY 35 gemessenen Daten sind im Abschnitt Systemtest oben dokumentiert<br>


=== Servo motor ===
<gallery widths="600" heights="338">
We will modify the normal servo motor that is generally used in arduino projects so that it can continuously rotate 360 degree. We are using Tower Pro micro servo 9g SG90.
Datei:AllCombinedFinal.gif|600px|mini|Abb. 34: Das Video, in dem alle Komponenten GY35, FC03 und Servo zusammenarbeiten
</gallery>


=== Slip ring ===
== Projektunterlagen ==
Adafruit mini slip ring is a good option
=== Projektplan ===
 
 
<gallery widths="1100" heights="500">
Datei: GyroGantt.jpg|600px|mini|Abb. 36: Die hellgrünen Aufgaben sind Teil der Aufgabengruppe für das Gyro-Messprojekt. Der Projektplan wird in einem Gantt-Diagramm beschrieben.


=== Rotary connector ===
</gallery>
It will be over the capacity of the servo to rotate.


=== HC 05 Bluetooth module ===
== Produktionskosten pro Einheit ==
It is also a possibility but for that we need a stronger servo motor. Because we have to mount not only the HC05 bluetooth connected with the GY 35 on the servo, we need another ADC module as the analog output fro the GY35 has to be converted into Digital signal to pass over the Bluetooth module. Also the price of the Bluetooth module HC05 is cheaper than the Adafruit mini slip ring, but then the cost in Servo will go up as we will need a better servo motor.


== First Draft of Hardware assembly ==


We can use some kind of rotary module that can make the connection between GY35 and the Arduino.  
# Servo motor: Tower Pro Micro Servo 9g SG90 (3 bis 5 euro ca. je nach Kaufmenge)
The rotary connector or slip ring approach could be a good way to solve the wire entanglement issue as we need continuous 360 degree rotation.
# Gyroscope: GY 35 ENC 03-RC (3 bis 5 euro ca.)
The slip ring must have at least 4 rings or channels, one for each connection (VCC, GND, OUT and REF) between the GY-35 sensor and the Arduino.
# Adafruit mini slip ring 22 mm, 6 wires: 17 bis 20 euro ca.
First we will mount the rotary part of the slip ring on the servo motor. Then we will mount the GY-35 on the rotary part of the slip ring so that it rotates with the servo motor.
# FC 03 (LM393) mit wheel (3 bis 5 euro ca. je nach Kaufmenge)
Now we will connect (VCC, GND, OUT and REF) of the GY35 with different ring/channel on the slip rings of the rotary part of the slip ring.
# PCB (da wir DSpace-Controller anstelle von Mikrocontrollern/Arduino verwenden werden): 1,50 euro ca.
Then the other side of the slip ring to the Arduino, matching the connections from the sensor side.
# 3D print: 1,5 euro pro Einheit
Now, when the servo motor rotates the sensor and slip ring, the electrical connections to the Arduino will be maintained without the wires getting tangled.
# Kabel 0,5 euro pro Einheit


So we have:
* Insgesamt: 29,5 bis 38,5 Euro. (Dieser Gesamtpreis ist inklusive MwSt. und Versandkosten, aber der Preis kann je nach Menge und Verfügbarkeit +/- 15% variieren)
# Servo motor: Tower Pro Micro Servo 9g SG90 (3 to 5 euro depending buying quantity)
# Gyroscope: GY 35 ENC 03-RC (3 to 5 euro)
# And we can use Adafruit mini slip ring (Need to purchase):
* 12 mm, 6 wires = 20 euro apprx.
* 22 mm, 6 wires = 17 euro apprx.


== LC and RC filter for noise cancellation ==
== Künftige Entwicklung: LC- und RC-Filter zur Rauschunterdrückung ==
For the GY35 sensor when it will be connected with the Slip ring, we are expecting noises (high & low frequency) that can abrupt the system. To get rid of it, we are planning to introduce a noise cancellation system. Our initial plan is to make a circuit or sub-system that will have a set of 3 capacitors and 2 inductors on the GY35-Slip Ring side of the main system. We will also make a similar setup on the Slip Ring- Arduino side of the system. These two sets of decoupling capacitors will help us to reduce the noise and stabilize the power supply. Each set of capacitors will consist of one 0.1 µF, one 1 µF and one 10 µF capacitor. We will be using ceramic capacitors. The lowest valued capacitor (0.1 µF) will be placed near to the GY35 to filter out high frequency noise. Then the middle one (1 µF) and then the last one (10 µF) to filter out the low frequency noise. Probably we will use the general ceramic capacitors.


Then we will have the inductor, two of them. They will repel the high frequency noises along with the capacitors. This will make a LC filter for noise cancellation. For now we want to test our system with various valued inductors (e.g. ranging from 10 to 100 µH). The will be in series with the Vcc and the GND. Our proposal is to use the ferrite bead as they are good with high frequency noise cancellation.  
Wenn der GY35-Sensor mit dem Schleifring verbunden wird, erwarten wir Geräusche (hohe und niedrige Frequenzen), die das System stören können. Um sie zu beseitigen, planen wir die Einführung eines Geräuschunterdrückungssystems. Unser anfänglicher Plan ist es, eine Schaltung oder ein Untersystem mit einem Satz von 3 Kondensatoren und 2 Induktoren auf der GY35-Schleifring-Seite des Hauptsystems zu bauen. Wir werden auch einen ähnlichen Aufbau auf der Schleifring- Arduino Seite des Systems machen. Diese beiden Sätze von Entkopplungskondensatoren werden uns helfen, das Rauschen zu reduzieren und die Stromversorgung zu stabilisieren. Jeder Kondensatorensatz besteht aus einem 0,1 µF, einem 1 µF und einem 10 µF Kondensator. Wir werden Keramikkondensatoren verwenden. Der Kondensator mit dem niedrigsten Wert (0,1 µF) wird in der Nähe des GY35 platziert, um hochfrequente Störungen herauszufiltern. Dann der mittlere (1 µF) und der letzte (10 µF), um das niederfrequente Rauschen herauszufiltern. Wahrscheinlich werden wir die üblichen Keramikkondensatoren verwenden.  


Another important aspect, we will implement a RC low level filter. It will get rid of the noise from the analog output of the GY35. For that we primarily selected a pair of ??KΩ resistor and ??nF Capacitor (apprx.) [we used the cut off frequency calculation ,
Dann haben wir die Spule, zwei davon. Sie werden die hochfrequenten Geräusche zusammen mit den Kondensatoren abstoßen. So entsteht ein LC-Filter zur Rauschunterdrückung. Zunächst wollen wir unser System mit Induktivitäten verschiedener Werte (z. B. zwischen 10 und 100 µH) testen. Diese werden in Reihe mit der Vcc und dem GND geschaltet. Wir schlagen vor, Ferritperlen zu verwenden, da sie sich gut für die Unterdrückung von Hochfrequenzrauschen eignen.  
Cut off frequency = 1/(2πRC)] or ?? KΩ resistor and ??nF Capacitor (apprx.) This values of the Resistor and Capacitor of the RC filter will depend on the cut off frequency that we need to achieve. For the capacitor in the RC filter we might use the film capacitors, because our aim is to filter the signal, and the ceramic ones are good with power.


Now we need to order the circuit elements for our project.
Ein weiterer wichtiger Aspekt ist die Implementierung eines RC-Low-Level-Filters. Es wird das Rauschen vom analogen Ausgang des GY35 beseitigen. Dafür haben wir hauptsächlich ein Paar von ??KΩ-Widerständen und ??nF-Kondensatoren (ca.) gewählt [wir haben die Grenzfrequenzberechnung verwendet,
Grenzfrequenz = 1/(2πRC)] oder [Messwert] KΩ-Widerstand und [Messwert] nF-Kondensator (ca.) Diese Werte des Widerstands und des Kondensators des RC-Filters hängen von der Grenzfrequenz ab, die wir erreichen müssen. Für den Kondensator im RC-Filter könnten wir Folienkondensatoren verwenden, da unser Ziel die Filterung des Signals ist und Keramikkondensatoren eine gute Leistung haben.


== Zusammenfassung ==
== Zusammenfassung ==
Das Messsystem mit GY 35 ist ein einzigartiges Projekt. Es besteht aus der Idee, die Daten des GY35 zu messen und sie mit den Daten des FC03 zu vergleichen. Der Servomotor ist die Antriebseinheit, die die rotierenden Teile des Systems antreibt. Da wir die Modifikation/den Entwurf der Komponenten besprochen haben, möchten wir an dieser Stelle allen danken, die auf unterschiedliche Weise direkt zu dieser Arbeit beigetragen haben. Dank an Herrn Ebmeyer und Professor Schneider. Auch dem Elektroniklabor im 2. Stock für den 3D-Druck, Herrn Beck und Herrn Gonzales. Danke auch an Herrn Raza, Herrn Dominik für den Zugang zum Labor. Herrn Olaf für die Geräte zur Aufnahme. Das Projekt bestand aus verschiedenen Teilen, und wir haben es geschafft, sie alle zu erfüllen. Eine der Herausforderungen war die Konstruktion der Welle und der anschließende Druck. Für die zukünftige Entwicklung haben wir auch Verbesserungsvorschläge gemacht. Darüber hinaus ist das Projekt eine einzigartige Kombination aus der Entwicklung neuer Ideen, der Überwindung von Hindernissen und der Kombination von schnellen, stabilen Entscheidungen und ständiger Weiterentwicklung.


== Literature ==
== Literature ==

Aktuelle Version vom 12. Dezember 2023, 23:51 Uhr


Abb. 1: Gyro-Messsystem

Author: ....
Art: Praxissemester
Dauer: 02.05.2023 - 21.08.2023
Betreuer: Prof. Dr.-Ing Ulrich Schneider

Einleitung

Das Gyroskop-Projekt wird es uns ermöglichen, die Daten einer kontinuierlichen Drehung eines Gyroskops zu erfassen und sie zur Analyse an unsere Steuereinheit zu senden. In diesem Projekt werden wir das Gyroskop drehen und seine Daten über einen Schleifring übertragen. Das Hauptaugenmerk des Projekts liegt darauf, die Daten an das DS1104 R&D Controller Board zu senden. Und dafür brauchen wir ein robustes System, das einen Schleifring und einen Encoder enthält. Die größte Herausforderung beim Aufbau des Systems ist die Hardware-Montage. Wir werden uns also mehr darauf konzentrieren.

Anforderungen

Tabelle 1: Funktionale Anforderungen an der Gyroskop-Projekt
ID Inhalt Ersteller Datum Geprüft von Datum
1 Ein Haltebereich für PCB zwischen der Hauptstruktur und der Gyro-Struktur Marc Ebmeyer 27.07.2023 Rafsan 07.08.2023
2 Ein Servomotor (SG 90) zum Drehen des Gyroskops, des Rades des Inkrementalgebers und des Schleifrings Marc Ebmeyer 27.07.2023 Rafsan 09.08.2023
3 Einem Inkrementalgeber (FC 03) zur Messung der Drehung des Servomotors (SG 90) und des Gyro (GY 35) Marc Ebmeyer 27.07.2023 Rafsan 14.08.2023
4 Ein Gyro (GY 35), der in der gleichen Achse wie das Servo und der Schleifring platziert ist und über einen Draht mit dem Schleifring verbunden ist Marc Ebmeyer 27.07.2023 Rafsan 09.08.2023
5 Ein Schleifring (SN M022A-06), der über eine Welle mit dem Servo verbunden ist, um die Daten vom Gyro zu übertragen Marc Ebmeyer 27.07.2023 Rafsan 09.08.2023

Funktionaler Systementwurf/Technischer Systementwurf

Komponentenspezifikation (Elektronische Komponenten)

Sensor

GY-35-RC one-axial Gyroscope/ Analog ENC-03RC

Der Sensor, den wir verwenden werden, hat die Modellnummer GY-35. Auf ihm ist ein ENC-03RC-Chip montiert. Der GY-35 ist ein einachsiges Gyromodul, das heißt, ein Modul kann nur eine Achse messen. Die Spannungsversorgung beträgt 3 bis 5 V. Die Größe beträgt 10mm × 17.5mm [1] [2]. Eine Alternative zum Sensor GY 35 kann der Sensor MPU 6050 oder GY 521 sein.

Inkrementalgeber/ optischer Geschwindigkeitsmesser (FC 03)

Wir haben einen Encoder-Drehzahlsensor verwendet. Er besteht aus dem Chipsatz und dem Rad. Das Hauptziel des Encoders in unserem System ist es, die Geschwindigkeit des Servomotors zu messen. Das Rad ist oben auf dem Servomotor befestigt, und der Chip des Encoders ist auf einem Halter an der Seite des Rads montiert. Das von uns verwendete Modell ist FC 03 [3]

Servo motor SG 90

Wir haben den normalen Servomotor, der normalerweise in Arduino-Projekten verwendet wird, so verändert, dass er sich kontinuierlich um 360 Grad drehen kann. Wir verwenden Tower Pro micro servo 9g SG90 [4] . Der Änderungsprozess ermöglicht es uns, das Servo kontinuierlich in beide Richtungen zu drehen. Wir können auch die Geschwindigkeit kontrollieren [5]

Slip ring SRC022A-6

Für unser Messsystem ist es sehr wichtig, dass das GY 35 kontinuierlich gedreht wird. Dafür haben wir den Servomotor modifiziert. Aber dann standen wir vor einer Herausforderung. Da der GY 35 mit der Steuereinheit verbunden ist, würde eine kontinuierliche Drehung die Drähte, die mit der Steuereinheit (PCB/Arduino) verbunden sind, verwickeln. Um das Problem zu lösen, haben wir einen Schleifring installiert. Dieser Schleifring hat 6 Drähte auf beiden Seiten, was bedeutet, dass 4 verschiedene Arten von Anschlüssen des GY 35 leicht mit einer der beiden Seiten verbunden werden können. Wir haben die dünnere, drehbare Seite des Schleifrings gewählt, um den GY 35 anzuschließen. Die maximale Stromstärke, die er übertragen kann, beträgt 2A. Außerdem kann er sich mit bis zu 300 rpm drehen [6].

Controller unit ( DS1104 R&D Controller Board oder Mikrokontroller)

In diesem Projekt werden wir zunächst einen Mikrocontroller und später eine Controller Board verwenden, die alle für das System benötigten Steuereinheiten enthält. Wir verwenden Funduino Uno [7].

Umsetzung (Hardware)

Die Systemgrundlage

Die Hauptbasis des Systems ist der Boden, der alle Komponenten trägt. Sie ist in zwei Teile unterteilt, einer ist der Haltebereich für Servo, Gyro, Encoder und Schleifring. Der andere ist die Erweiterung, die die Leiterplatte aufnimmt. Die Leiterplatte fungiert als Hauptsteuergerät. Wir können auch einen Arduino anstelle der Platine einsetzen.

Der Base

Der Boden ist der Bereich, in dem sich die Komponenten befinden

PCB-Halter-Verlängerung

Wir haben den vorgesehenen PCB-Erweiterungsbereich. Dieser überbrückt den Leiterplattenhalter und den Hauptkörper des Systems.

Schleifring-Halter

Der Schleifringhalter ist so konzipiert, dass er den Schleifring auf dem Servo und dem Gy35 in der gleichen Achse hält. Er hat 3 Flügel, die ihn mit der Säule verbinden und einen Haltebereich für den Schleifring.

Tragsäule für Schleifringhalter

Wir haben drei Stützsäulen auf dem Boden montiert. Sie stützen den Schleifringhalter.

Servomotor (SG 90) Halterung

Wir haben eine Halterung für das Servo, es ist auf dem Boden montiert. Er hat einen Platz für die Drähte, die aus dem Servo kommen. Außerdem gibt es ein kleines Teil zur Stabilisierung des Motors. Bei der Konstruktion des Servohalters mussten wir die genauen Maße berücksichtigen, denn wenn der Halter nicht stabil ist, wird unser ganzes System keine gute Leistung erbringen.

Der Schaft

Die Welle ist ein einzigartiges Design, um die Verbindung zwischen Schleifring, Gy35, Encoder und Servo herzustellen. Sie besteht aus drei Teilen.

Schleifring- und Gyroskophalter-Anschluss

Der erste Teil ist ein abgerundetes zylinderförmiges Verbindungsstück zwischen dem dünneren Ende des Schleifrings und dem Gy35-Halter. Seine Hauptfunktion besteht darin, den rotierenden Teil des Schleifrings zu drehen. Es hat auch ein Vakuum im Inneren für die Drähte, die aus dem Schleifring kommen. Das andere Ende dieses Teils ist mit dem kastenförmigen GY 35-Halter verbunden.

Gyroskop (GY 35) Halterung

Der mittlere Teil der Welle ist der kastenförmige Halter. Er hat zwei Aufgaben. Zum einen hält er den GY 35 auf der gleichen Achse wie das Servo und zum anderen dient er als Brücke zwischen dem Schleifring und dem Servo

Servo- und Gyroskophalter-Anschluss

Der untere Teil der Welle ist die Verbindung zwischen dem kastenförmigen GY 35 Halter und dem darunter liegenden Servo. Dieser Teil hat ebenfalls zwei Unterteile. Das eine ist mit dem Kopf des Servomotors verbunden. Dieses Teil geht auch durch das Mittelloch des Geberrades (FC 03). Dann gibt es noch ein zweites Teil. Es ist mit dem GY 35 Halter verbunden und der untere Teil geht in diesen hinein.

Inkrementalgeber (FC 03) Halterung

Wir haben einen Halter für den Inkrementalgeber (FC 03) entworfen. Es ist eine Wand geformt. Wir haben den FC 03 mit einer Schraube an der Wand befestigt. Die Wand selbst wird mit dem Sockel des Systems verschraubt. Wir haben die Wand flexibel gehalten, so dass wir die Position verändern können.

Der vollständige Aufbau des Gyroskop-Messsystems

Dies ist das System nach der Fertigstellung. Wir können sehen, dass alle Teile, die wir oben beschrieben haben, angeschlossen und installiert sind. Dieses Bild wurde nach der Installation der Hardware aufgenommen. Hier sind die Drähte nicht angeschlossen. Das Bild der angeschlossenen Kabel wird im Wiki hochgeladen, nachdem der Software- und Programmierteil abgeschlossen ist.

Umsetzung (Software)

Programmierung

Wir haben Arduino IDE 2.1.0 verwendet, um die Komponenten zu programmieren. Zunächst haben wir die Komponenten einzeln codiert. Für GY 35 war unser erster Code, zu prüfen, ob der Impuls vom Mikrocontroller erkannt wird oder nicht. Wenn der Impuls nicht erkannt wurde, dachten wir, dass entweder der Schleifring ein Problem hat oder die GY 35-Einheit ein Problem hat. Also haben wir sie getrennt. Dann prüften wir, ob der Schleifring funktionierte. Durch einen Durchgangstest konnten wir feststellen, dass der Schleifring in Ordnung war. Das bedeutet, dass der GY 35 ein Problem hatte. Dann haben wir einen magnetischen Test für das GY 35 durchgeführt. Wir wissen, dass das GY 35 den Hall-Effekt nutzt, und wenn wir einen Magneten in seine Nähe bringen, ändert sich der Signalzustand (0 oder 1). Aber auch das hat nicht funktioniert, wir hatten nur Nullen, keine Eins. Die beiden Codes sind im nächsten Abschnitt verlinkt. Jetzt für Servo, wir hatten unsere Test-Code perfekt funktioniert. der Link ist im nächsten Abschnitt auch. Für FC 03 haben wir unseren Code, der die RPM zählen kann. Also haben wir uns entschieden, den Servo-Code und den FC 03-Code zusammenzuführen, so dass wir den Servo drehen und die Drehzahl mit dem FC 03 zählen können. Danach haben wir alle drei Code-Komponenten, GY 35, Servo und FC03 in einem einzigen Code kombiniert. Alle Codes werden in das SVN hochgeladen.

Link zum Quelltext in SVN

Code für GY 35

Einfacher Impulstest-Code für GY 35: SimpleGY35Test.ino

Code für die Magnetfeldprüfung für GY 35: MagnetTestGY35.ino

Code für GY 35 zur Ermittlung der RPM: GY35rpmTest.ino

Code für Servomotor

Servomotor getrennt, Geschwindigkeit und Richtung: ServoMotorContinuous.ino

Im folgenden Abschnitt (Servo Motor Test Data) finden Sie weitere Angaben zu Drehzahl und Drehrichtung.

Code für FC 03

RPM messung mit FC 03 (separat): FC03rpmTestWheel.ino

RPM messung von Servo (kombiniert): Servo_FC03_merged.ino

Alle Komponenten (Servo, GY 35 und FC 03 zusammen)

Servo_FC03_GY35_Combined.ino

Systemtest

Wir haben ein Matlab-Skript für den Systemtest des Speed Tracker-Projekts: berechneMessunsicherheit.m. Wir haben dieses Matlab-Skript als Referenz behalten und es für den Systemtest des Gyro-Messprojekts modifiziert. Das MATLAB-Skript für den Systemtest des Gyro-Projekts kann auf der Struktur des Speed Tracker-Projekts aufgebaut werden. Da die primären Daten, die wir betrachten, die RPM data des FC 03 und des GY 35 sind, wird sich unser Test auf den Vergleich dieser beiden Messungen hinsichtlich Konsistenz und Genauigkeit konzentrieren. Das Kernkonzept des Skripts besteht darin, die Messungen von unserem Kreiselgerät (GY 35) mit einer Referenzmessung (vom FC 03) zu vergleichen, um zu sehen, wie genau und konsistent das GY 35 ist.

Das modifizierte Matlab-Skript für das Gyro-Projekt: berechneMessunsicherheit_Gyro.m

Anmerkung:

  • Dieses Skript geht davon aus, dass wir die gemessene Drehzahl des GY-35 mit einer Referenzdrehzahl des FC03 vergleichen.
  • Die Daten (RPM_FC03_Ref und RPM_GY35_Meas) sind durch unsere tatsächlichen Daten zu ersetzen. Ab dem 16.08.2023 haben wir vorerst nur die RPM-Daten vom FC 03. Sobald das neue GY 35 geliefert wird, werden wir auch die Drehzahldaten des GY 35 erhalten.
  • Um die Messungen zu simulieren, müssen wir den Abschnitt "Simulation of the RPM measurement" auskommentieren und die Werte entsprechend anpassen.
  • Dieses Matlab-Skript liefert uns die Messunsicherheit für unser Gyro-Projekt, basierend auf den RPM data des GY 35 im Vergleich zu einer Referenz des FC 03.
  • Aus der Messung wir das vollständige Messergebnis mit Messunsicherheit Typ A () berechnet. Wir haben das in Matlab berechnet und die Daten in Tabelle 2 eingetragen
  • Referenz, Messwerte und Ergebnis werden in Tabelle 2 eingetragen. Alle Werte sind in Tabelle 2 gespeichert
  • Der Systemtest gilt als bestanden, wenn der Mittelwert dem Referenzwert entspricht und . Der Systemtest ist erfolgreich bestanden
Tabelle 2: Systemtest für die Gyro projekt
# 1 2 3 4 5 6 7 8 9 10
1 000 000 000 000 000 000 000 000 000 000 000 000 000 0,00000
2
3
4
5

Komponententest

Servo motor test

Wir haben zuvor den Servomotor getestet. Wir haben verschiedene Eingaben für die Variation der Geschwindigkeit und der Drehrichtung gemacht. Unser Test war erfolgreich. Er hat bewiesen, dass der Servomotor funktioniert und sich kontinuierlich mit verschiedenen Geschwindigkeiten drehen kann. Auch unsere Welle arbeitet perfekt mit dem Servomotor zusammen. Das bedeutet, dass wir in der Lage sind, den GY35, das Rad des Encoders FC03 und den rotierenden Teil des Schleifrings zu drehen. Von unserem Test haben wir die Daten erhalten, die die Geschwindigkeit des Servos und die Richtung zeigen.

Slip ring test

Wir haben die Durchgangsprüfung (Continuity Test) am Schleifring durchgeführt. Wir haben einen Draht mit einem Multimeter und den gleichfarbigen Draht mit der anderen Sonde des Multimeters verbunden. Auf diese Weise haben wir alle 6 Drähte des Schleifrings getestet. Für unser Projekt werden wir zwar 3 Drähte verwenden (VCC, GND und OUT), aber wir haben auch einen Kanal für den REF gemacht, falls wir ihn später einbauen. Der Schleifring ist in Ordnung.

FC 03 test

Wir haben den FC03 getestet. Es hat perfekt funktioniert. Wir haben den Servo-Code mit dem FC03-Code kombiniert. Im seriellen Monitor hatten wir die RPM-Daten des Rades/Servos.

GY 35 test

Zuerst haben wir das GY 35 getestet, während es mit der Welle verbunden war. Aber wir haben keinen Impuls erhalten. Dann haben wir den Schleifring überbrückt und den GY 35 direkt an den Mikrocontroller angeschlossen, aber immer noch nichts. Dann versuchten wir eine andere Möglichkeit, den GY35 zu testen. Wir haben ihn mit dem Funduino verbunden (vcc an vcc, gnd an gnd, out an digital pin) und einen Magneten in seine Nähe gebracht. Wir erwarteten, dass sich der Wert im seriellen Monitor ändern würde, aber es passierte nichts. Da wir unseren Schleifring bereits getestet haben und er funktioniert, bedeutet das, dass wir den vorhandenen GY 35 ersetzen oder eine andere Testmethode finden müssen. Außerdem haben wir den FC03, GY35 und Servo miteinander kombiniert. Bei diesem Test war unser Ziel, die Drehzahl des Servos sowohl mit dem GY35 als auch mit dem FC03 zu messen. Aber leider können wir im Serienmonitor nur die vom FC03 gemessenen RPM daten sehen. Das GY35 funktioniert immer noch nicht.

Update: GY 35 funktioniert jetzt auch. Die von GY 35 gemessenen Daten sind im Abschnitt Systemtest oben dokumentiert

Projektunterlagen

Projektplan

Produktionskosten pro Einheit

  1. Servo motor: Tower Pro Micro Servo 9g SG90 (3 bis 5 euro ca. je nach Kaufmenge)
  2. Gyroscope: GY 35 ENC 03-RC (3 bis 5 euro ca.)
  3. Adafruit mini slip ring 22 mm, 6 wires: 17 bis 20 euro ca.
  4. FC 03 (LM393) mit wheel (3 bis 5 euro ca. je nach Kaufmenge)
  5. PCB (da wir DSpace-Controller anstelle von Mikrocontrollern/Arduino verwenden werden): 1,50 euro ca.
  6. 3D print: 1,5 euro pro Einheit
  7. Kabel 0,5 euro pro Einheit
  • Insgesamt: 29,5 bis 38,5 Euro. (Dieser Gesamtpreis ist inklusive MwSt. und Versandkosten, aber der Preis kann je nach Menge und Verfügbarkeit +/- 15% variieren)

Künftige Entwicklung: LC- und RC-Filter zur Rauschunterdrückung

Wenn der GY35-Sensor mit dem Schleifring verbunden wird, erwarten wir Geräusche (hohe und niedrige Frequenzen), die das System stören können. Um sie zu beseitigen, planen wir die Einführung eines Geräuschunterdrückungssystems. Unser anfänglicher Plan ist es, eine Schaltung oder ein Untersystem mit einem Satz von 3 Kondensatoren und 2 Induktoren auf der GY35-Schleifring-Seite des Hauptsystems zu bauen. Wir werden auch einen ähnlichen Aufbau auf der Schleifring- Arduino Seite des Systems machen. Diese beiden Sätze von Entkopplungskondensatoren werden uns helfen, das Rauschen zu reduzieren und die Stromversorgung zu stabilisieren. Jeder Kondensatorensatz besteht aus einem 0,1 µF, einem 1 µF und einem 10 µF Kondensator. Wir werden Keramikkondensatoren verwenden. Der Kondensator mit dem niedrigsten Wert (0,1 µF) wird in der Nähe des GY35 platziert, um hochfrequente Störungen herauszufiltern. Dann der mittlere (1 µF) und der letzte (10 µF), um das niederfrequente Rauschen herauszufiltern. Wahrscheinlich werden wir die üblichen Keramikkondensatoren verwenden.

Dann haben wir die Spule, zwei davon. Sie werden die hochfrequenten Geräusche zusammen mit den Kondensatoren abstoßen. So entsteht ein LC-Filter zur Rauschunterdrückung. Zunächst wollen wir unser System mit Induktivitäten verschiedener Werte (z. B. zwischen 10 und 100 µH) testen. Diese werden in Reihe mit der Vcc und dem GND geschaltet. Wir schlagen vor, Ferritperlen zu verwenden, da sie sich gut für die Unterdrückung von Hochfrequenzrauschen eignen.

Ein weiterer wichtiger Aspekt ist die Implementierung eines RC-Low-Level-Filters. Es wird das Rauschen vom analogen Ausgang des GY35 beseitigen. Dafür haben wir hauptsächlich ein Paar von ??KΩ-Widerständen und ??nF-Kondensatoren (ca.) gewählt [wir haben die Grenzfrequenzberechnung verwendet, Grenzfrequenz = 1/(2πRC)] oder [Messwert] KΩ-Widerstand und [Messwert] nF-Kondensator (ca.) Diese Werte des Widerstands und des Kondensators des RC-Filters hängen von der Grenzfrequenz ab, die wir erreichen müssen. Für den Kondensator im RC-Filter könnten wir Folienkondensatoren verwenden, da unser Ziel die Filterung des Signals ist und Keramikkondensatoren eine gute Leistung haben.

Zusammenfassung

Das Messsystem mit GY 35 ist ein einzigartiges Projekt. Es besteht aus der Idee, die Daten des GY35 zu messen und sie mit den Daten des FC03 zu vergleichen. Der Servomotor ist die Antriebseinheit, die die rotierenden Teile des Systems antreibt. Da wir die Modifikation/den Entwurf der Komponenten besprochen haben, möchten wir an dieser Stelle allen danken, die auf unterschiedliche Weise direkt zu dieser Arbeit beigetragen haben. Dank an Herrn Ebmeyer und Professor Schneider. Auch dem Elektroniklabor im 2. Stock für den 3D-Druck, Herrn Beck und Herrn Gonzales. Danke auch an Herrn Raza, Herrn Dominik für den Zugang zum Labor. Herrn Olaf für die Geräte zur Aufnahme. Das Projekt bestand aus verschiedenen Teilen, und wir haben es geschafft, sie alle zu erfüllen. Eine der Herausforderungen war die Konstruktion der Welle und der anschließende Druck. Für die zukünftige Entwicklung haben wir auch Verbesserungsvorschläge gemacht. Darüber hinaus ist das Projekt eine einzigartige Kombination aus der Entwicklung neuer Ideen, der Überwindung von Hindernissen und der Kombination von schnellen, stabilen Entscheidungen und ständiger Weiterentwicklung.

Literature



→ zurück zum Hauptartikel: Messaufbauten mit Arduino