Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.62 KB | None | 0 0
  1.  
  2.  
  3. {| style="float:right"
  4. |
  5. {|class="wikitable unsortable"
  6. |-
  7. !Betreuer
  8. |-
  9. || Prof. Dr. rer. nat. Roland Mandl
  10. |-
  11. || Prof. Dr. rer. nat. Dipl.-Phys. Mikhail Chamonine
  12. |-
  13. ! Teilnehmer
  14. |-
  15. ||Lukas Ferstl
  16. |-
  17. ||Daniel Gebert
  18. |-
  19. ||Nicolas Graf
  20. |-
  21. ||Kerstin Huttner
  22. |-
  23. ||Alina Schmid
  24. |-
  25. |}
  26. |}
  27.  
  28.  
  29.  
  30. == Beschreibung ==
  31. ===Konzept===
  32. Jeder, der schon mal wegen einer ausgelösten Höhenkontrolle im Stau stand, hat sich vermutlich die Frage gestellt: Hätte das der LKW nicht vorher wissen können?
  33.  
  34. Mit dem Projekt Höhenkontrolle wurde versucht, eine mögliche Lösung für die vielen unnötigen Staus modellhaft darzustellen. Sobald bei einem Fahrzeug eine für die Brücke kritische Höhe erfasst wird, soll es durch einen Leuchtpfeil aufgefordert werden, die Strecke an der nächsten Ausfahrt zu verlassen. Dort wird geprüft, ob das Ausleiten erfolgreich war. Nur, wenn dies nicht der Fall ist, muss die Brücke durch eine Ampel gesperrt werden.
  35.  
  36. Zur Erkennung eines höhenkritischen Fahrzeugs wurden bei der Realisierung Gabellichtschranken verwendet, die zugleich noch weitere Funktionen ermöglichen: Geschwindigkeitsüberschreitungen und die Anzahl der Fahrzeuge auf der Strecke sind mit diesen erfassbar. Beide Informationen könnten zur Verkehrsregulierung verwendet werden, indem man je nach Fahrbahnauslastung die Geschwindigkeit anpasst.
  37.  
  38. ===Bauteile und Kosten===
  39.  
  40. {|class="wikitable sortable"
  41. |- class="hintergrundfarbe8"
  42. ! Artikel !! Beschreibung !! Anzahl !! Kosten
  43. |-
  44. | Gabellichtschranke
  45. | TCST 2103
  46. | 10x
  47. | 16,75€
  48. |-
  49. | 7-Segment Anzeige
  50. | LTC-4724JF
  51. | 1x
  52. | 4,83€
  53. |-
  54. | 7-Segment Anzeige
  55. | ELS-431SURWA/S530-A2
  56. | 5x
  57. | Bestand
  58. |-
  59. | Portexpander
  60. | MCP 23S17-E/SP
  61. | 3x
  62. | 8,33€
  63. |-
  64. | Spannungsregler
  65. | LM3940IT
  66. | 1x
  67. | Bestand
  68. |-
  69. | NPN Bipolartransistor
  70. | BC338
  71. | 6x
  72. | Bestand
  73. |-
  74. | Widerstand 1 kΩ
  75. |
  76. | 24x
  77. | Bestand
  78. |-
  79. | Widerstand 10 kΩ
  80. |
  81. | 2x
  82. | Bestand
  83. |-
  84. | Widerstand 20 Ω
  85. |
  86. | 6x
  87. | Bestand
  88. |-
  89. | Widerstand 2,2 kΩ
  90. |
  91. | 1x
  92. | Bestand
  93. |-
  94. | Kondensator 33 μF
  95. |
  96. | 1x
  97. | Bestand
  98. |-
  99. | Kondensator 0,47 μF
  100. |
  101. | 1x
  102. | Bestand
  103. |-
  104. | Platine
  105. |
  106. | 1x
  107. | Bestand
  108. |-
  109. | LED
  110. |
  111. | 15x
  112. | Bestand
  113. |-
  114. | Taster
  115. |
  116. | 1x
  117. | Bestand
  118. |-
  119. | Microcontroller
  120. | TIVA TM4C123GH6PM
  121. | 1x
  122. | Bestand
  123. |-
  124. | Steckernetzteil
  125. | einstellbar
  126. | 1x
  127. | 15,94
  128. |-
  129. | Quadratleiste
  130. |
  131. | 2x
  132. | 3,60
  133. |-
  134. | Flachleiste
  135. |
  136. | 1x
  137. | 2,65
  138. |-
  139. | Holzplatten
  140. |
  141. | 1x
  142. | Bestand
  143. |-
  144. | Modellfahrzeuge
  145. | Lego Duplo
  146. | 1x
  147. | 19,99€
  148. |-
  149. ! colspan="0"| Gesamtbetrag !! !! !! 72,09 €
  150. |}
  151.  
  152. == Hardware ==
  153. ===Modellaufbau===
  154. Als Basis für das Modell wurde eine 30 cm x 100 cm Spanholzplatte verwendet. Darauf befindet sich eine Brücke, die über eine markierte Fahrbahn mit Ausfahrt führt. Außerdem sind drei Verkehrsschilder und ein Blitzer installiert.
  155.  
  156. Zur besseren Erfassung der Fahrzeuge durch die Lichtschranken, wurden Fahrbahnführungen auf die Grundplatte aufgeklebt. Die Lichtschranken sind an den Schildern, je nach Bedarf, in zwei verschiedenen Höhen angebracht. Die tiefer platzierten Lichtschranken dienen der allgemeinen Fahrzeugerkennung, während die weiter oben platzierten Lichtschranken zu hohe Fahrzeuge registrieren.
  157.  
  158. Die Brücke '''''1''''' ist an einem Ende der Platte festgeleimt. Auf ihr ist der Autozähler in Form einer dreistelligen 7-Segment-Anzeige angebracht. Außerdem dient sie als Befestigungsmöglichkeit für das TIVA-Board und die Versorgungsplatine. Am linken Fahrbahnrand, kurz vor der Brücke, befindet sich ein festinstallierter Blitzer '''''2'''''. Dieser wird durch eine LED symbolisiert, die bei einer Tempoüberschreitung kurz aufleuchtet. Der Blitzer ist außerdem so platziert, dass er zunächst von Schild '''''3''''' verdeckt wird. Auf diesem Schild befindet sich eine Ampel und eine Lichtschranke, die oben befestigt wurde, um zu kontrollieren, ob das zu hohe Fahrzeug auf die Brücke zusteuert. Sollte dies der Fall sein, wird die Brücke gesperrt. Dazu ist eine Ampel vor der Brücke auf Schild '''3''' und eine vor der Ausfahrt auf Schild '''''7''''' angebracht. Diese schalten dann auf Rot.
  159.  
  160. Um eine Sperrung der Brücke zu vermeiden, hat das Fahrzeug an der Ausfahrt '''''4''''' die Pflicht abzufahren. Dort ist am rechten Fahrbahnrand eine Säule '''''5''''' befestigt, an der ebenfalls oben eine Lichtschranke angebracht ist. Sie dient dazu, die Strecke unter der Brücke freizugeben, wenn das höhenkritische Fahrzeug erfolgreich ausgeleitet wurde.
  161.  
  162. Der Fahrzeugführer wird beim Auslösen der Höhenkontrolle durch einen orangen LED-Pfeil aufgefordert, die Straße an der nächsten Ausfahrt zu verlassen. Der Pfeil befindet sich auf Schild '''''6''''' kurz vor der Ausfahrt. Außerdem sind dort zwei Gabellichtschranken angebracht. Zum einen die untere Lichtschranke, die zusammen mit der Unteren auf Schild '''''7''''' die Geschwindigkeit messen soll, damit bei Bedarf der Blitzer ausgelöst wird. Zum anderen die obere Lichtschranke, die den LED-Pfeil ausschaltet und ein fehlerhaftes Auslösen der Höhenkontrolle verhindert.
  163.  
  164. Auf dem vordersten Schild '''''7''''' ist die zweite Ampel angebracht, die den nachkommenden Verkehr im Falle eines Alarms aufhalten, bzw. warnen soll. Zusätzlich besitzt es neben der zuvor genannten Lichtschranke zur Geschwindigkeitsmessung eine weitere Lichtschranke oben, die die eigentliche Höhenkontrolle darstellt. Diese sorgt dafür, dass der Alarm mit all seinen Funktionen ausgelöst wird (Ampeln blinken und Pfeil beginnt zu leuchten). Neben der Geschwindigkeitsmessung wird die untere Lichtschranke auch zum Weiterzählen der 7-Segment-Anzeige verwendet.
  165.  
  166. Des Weiteren muss dafür gesorgt werden, dass nach einer erfolgten Sperrung der Brücke die Durchfahrt wieder freigegeben wird. Dies geschieht über einen Reset-Taster '''''8'''''. Hierzu muss der Taster, sobald das Fahrzeug entfernt wurde, betätigt werden. Die Brückensperrung wird damit aufgehoben.
  167.  
  168. Um alle Platinen der Ampeln, Lichtschranken und des Pfeils mit demx TIVA-Board und der Versorgungsplatine zu verbinden, wurden Löcher in der Nähe der Platinen gebohrt. Diese ermöglichen eine Leitungsführung auf der Unterseite der Grundplatte. Um die Leitungen fachgerecht zu platzieren, wurden drei Standfüße (kein wackeln) und Leitungsführungen verwendet. Auch die Modellautos mussten leicht modifiziert werden, indem kleine Holzleisten aufgeklebt wurden. Diese sind mit schwarzem Material abgeschlossen, um zu garantieren, dass die Lichtschranken auslösen.
  169.  
  170. ===Mikrocontroller===
  171. Für die Steuerung der Höhenkontrolle wird das TIVA C Series TM4C123G LaunchPad genutzt. Der ausschlaggebende Verwendungsgrund war die bereits vorhandene Erfahrung mit dem Board. Sowohl in der Vorlesung Mikrocomputertechnik als auch im dazugehörigen Brückenkurs wurde mit dem TIVA-Board gearbeitet. Ebenso stellten die nach außen geführten Pins der GPIOs eine gute Möglichkeit zum Anschluss der vielen Lichtschranken und Steuerleitungen der LEDs dar.
  172.  
  173. ===Lichtschranke===
  174. Bei den verwendeten Lichtschranken handelt es sich um Gabellichtschranken vom Typ TCST2103 und TCST1103. Diese sind eine deutlich preiswertere Alternative zu Einweg-Lichtschranken, welche in 2 separaten Gehäusen untergebracht sind, und so Fahrzeuge ohne weitere Modifikationen zu erfassen. Für eine Erkennung mittels Gabellichtschranke war es nötig Stäbe an der Fahrzeugseite anzubringen. Die verwendeten Lichtschranken sind dunkelschaltend, das heißt es kommt zu einem Stromfluss, falls der Empfänger abgedunkelt wird, also ein Fahrzeug die Schranke durchquert. Diese Eigenschaft ist bei der Verwendung im Modell kaum relevant, da es hierbei zu keinem hohen Verbrauch an Leistung kommt. Im Praxiseinsatz ist dagegen durchaus zu berücksichtigen, ob im Regelfall (=kein Fahrzeug zwischen Sender und Empfänger) Ströme fließen. Das gelieferte Signal wird dann durch die Software richtig interpretiert, welche den Lichtschranken-Typ miteinbezieht.
  175.  
  176. ===7-Segment-Anzeige===
  177. Die 7-Segment-Anzeige zeigt die Anzahl der Fahrzeuge, die den Streckenabschnitt passiert haben. Mit den drei Digits lassen sich bis zu 999 Fahrzeuge zählen. Es wurden bewusst drei einzelne „Common Cathode“ Anzeigen verwendet, da auf diese Art jedes Segment dauerhaft angesteuert werden kann. Bei einem Element mit drei integrierten 7-Segment-Anzeigen müsste mit dem Multiplexverfahren gearbeitet werden. Dies hätte das Handling mit dem TIVA-Mikrocontroller deutlich erschwert, da dieser nicht parallel arbeiten kann. Nachteil der einzelnen Digits ist, dass mehr als doppelt so viele Pins angeschlossen werden müssen.
  178.  
  179. ===Portexpander===
  180. Mit Hilfe der beiden Portexpander vom Typ MCP23S17, die in die 7-Segment-Anzeigen -Platine integriert sind, lassen sich die 25 (Anoden gekoppelt) für die 7-Segment-Anzeige nötigen Pins auf 4 angeschlossene Pins (MOSI, SPICLK, CS1, CS2) am TIVA-Board reduzieren. Dieses sendet die Daten über eine mit der SPICLK getakteten SPI-Schnittstelle an den entsprechenden Portexpander, der dann das jeweilige Digit ansteuert. Mit CS1 und CS2 wird der passende Portexpander ausgewählt, der die über den MOSI-Pin übermittelten Daten umsetzen soll. Der verwendete Portexpander arbeitet mit einer Versorgungsspannung von 3,3V und kann zweimal 8 Bit steuern, was zwei Digits entspricht.
  181.  
  182. == Software ==
  183. ===Statemachine===
  184. [[Datei:Programmteil_Statemachine.png|right|thumb|400px|Auschnitt aus Statemachine]]
  185. Die Software dieses Projekts wurde auf dem TIVA C Series TM4C123G LaunchPad realisiert. Der umfangreichste Teil der Software beinhaltet einen Zustandsautomaten, der für die komplette Steuerung des Modells zuständig ist. Das Blinken der diversen LED Einrichtungen wurde durch mehrere Timer realisiert. Die Initialisierung der Ports sowie der beiden Timer erfolgt aufgrund des leichteren Handlings in C, während der Zustandsautomat in Assembler umgesetzt wurde. Diese Aufteilung vereinfachte zwar anfänglich die Initialisierung der einzelnen Bauteile, benötigte aber einen großen zeitlichen Mehraufwand beim Zusammenfügen der Programmteile. In nebenstehender Abbildung ist beispielhaft ein Ausschnitt aus dem Zustandsautomaten dargestellt. Ein vollständiges Zustandsdiagramm ist im Anhang unter dem Punkt Software zu finden.
  186. Zu Beginn werden die Eigenschaften des jeweiligen Zustands implementiert und der entsprechende Timer aktiviert. Im Anschluss werden in einer Endlosschleife alle möglichen Übergänge dieses Zustands abgefragt und im Falle einer Übereinstimmung in den Entsprechenden gewechselt. Der Timer sorgt währenddessen im Hintergrund durch eine Interrupt Routine für ein regelmäßiges Blinken der LEDs.
  187.  
  188. ===SPI-Schnittstelle===
  189. Um Zahlen auf der 7-Segment-Anzeige darzustellen, muss der Portexpander passend konfiguriert werden. Die Initialisierung und Implementierung sind ausschließlich in C-Code umgesetzt. Dazu wurden Funktionen für die SPI-Schnittstelle und die 7-Segmentanzeige erstellt.
  190.  
  191. Mit der Funktion ''spi_init'' wird die SPI-Schnittstelle des TIVA LaunchPads initialisiert. Daraufhin lässt sich mit ''spi_send_byte'' ein Datenbyte über den SPI-Bus schicken. Weil ein Befehl für den Portexpander immer aus mindetstens 3 Bytes besteht – Control Byte, Registeradresse, Datenbyte-, wird dieser in der Funktion ''spi_write_data'' durch den mehrfachen Aufruf von ''spi_send'' zusammengesetzt und an den Portexpander geschickt.
  192.  
  193. Mit dem einmaligen Aufruf von ''seg_init'' erfolgt zuerst die Hardwarekonfiguration durch das Abarbeiten von ''spi_init''. Anschließend werden mit ''spi_write_data'' die nötigen Befehle zur Konfiguration der Portexpanders gesendet. Mit der Funktion ''seg_print'' kann nun eine übergebene, dreistellige Zahl auf der Anzeige dargestellt werden. ''seg_print'' zerlegt in einem ersten Schritt die Zahl in ihre drei Stellen und übergibt diese anschließend einzeln an die Funktion ''seg_digit''. In ''seg_digit'' wird der übergebenen Zahl die für die Darstellung nötige Hexadezimalzahl zugeordnet und anschließend als Befehl mit ''spi_write_data'' je nach Position der Zahl an den passenden Portexpander versendet.
  194.  
  195. == Fazit ==
  196. Abschließend lässt sich sagen, dass der Lösungsansatz zur Stauvermeidung durch ausgelöste Höhenkontrollen mit dem entwickelten Modell sehr gut darstellbar ist. Trotzdem bedarf es bei der realen Umsetzung einiger Änderungen. Zur Höhenerfassung müsste ein anderer Sensor verwendet werden, wie beispielsweise eine Einweg-Lichtschranke. Auch die Auswertung der Daten sollte nicht, wie im Modell lokal geschehen, sondern z.B.durch die zentrale Autobahndirektion. Doch vor jeder Umsetzung müssen Ideen zuerst präsentiert werden, und diesem Schritt steht mit dem fertigen Höhenkontrollen-Modell nichts mehr im Wege.
  197. Im Hinblick auf den Projektverlauf, stellte sich heraus, dass der Umfang der Software unterschätzt wurde und mehr Ressourcen eingeplant werden hätten sollen. Ebenso ist das Tiva-Board durch seine sequenzielle Arbeitsweise nicht optimal zur Steuerung geeignet. Hier lässt sich als mögliche Erweiterungsstufe ein Umbau auf einen parallel arbeitenden Controller in Betracht ziehen.
  198. Auf Seiten der Hardware konnte alles planmäßig umgesetzt werden, wobei jedoch einige nachträgliche Anpassungen gemacht werden mussten. Deswegen gibt es in der Umsetzung einige Abweichungen zu den erstellten Plänen.
  199. Im Allgemeinen wurde teils nicht weit genug vorausgedacht, was immer wieder zu Problemen in der Umsetzung führte. Trotzdem wurden in der Gruppe durch Kreativität und viel Flexibilität Lösungen für die problematischen Stellen gefunden, wenn dies in den Kleingruppen nicht gelang.
  200.  
  201.  
  202. == Dateien ==
  203. *[[Datei:HöhenkontrolleHardware.zip]]
  204. *[[Datei:HöhenkontrolleSoftware.zip]]
  205.  
  206. [[Category: PMT2 - Praktikum Messtechnik 2]]
  207. [[Category: Labor Messtechnik]]
  208. [[Category: Prof. Dr. Mikhail Chamonine]]
  209. [[Category: Prof. Dr. Roland Mandl]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement