Klick
Transcription
Klick
Dokumentation autonomes Erkundungsgerät Argus Modul TA.BA PREN2 vorgelegt von Team 8 Christian Bontekoe Informatik Hansueli Burri Informatik Silvan Demmel Wirtschaftsingenieur | Innovation Severin Frank Maschinentechnik Mathias Frei Maschinentechnik Nicolas Lehner Maschinentechnik Martin Mägerlein Tobias Plüss Wirtschaftsingenieur | Innovation Elektrotechnik am 17. Juni 2013 Dozenten: Prof. Jürg Habegger Dr. Christoph Imboden Dr. Thomas Koller Prof. Ernst Lüthi Dr. Markus Thalmann Maschinenbau Wirtschaftsingenieur | Innovation Informatik Modulverantwortlicher Elektrotechnik Redlichkeitserklärung Hiermit versichern die Autoren, dass die vorliegende Arbeit selbständig verfasst, die verwendeten Quellen und Hilfsmittel vollständig angegeben und diejenigen Stellen der Arbeit – einschliesslich Tabellen, Diagrammen und Abbildungen –, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht worden sind, und dass diese Arbeit in gleicher oder ähnlicher Form noch nicht vorgelegt wurde. Sofern nicht anders vermerkt, sind Grafiken, Fotos, Tabellen usw. eigene Werke; die vorliegende Arbeit ist auf Basis einer LATEX-Vorlage aus [7] erstellt worden. Horw, den 17. Juni 2013 Die Autoren Kurzfassung Im Rahmen der Produktentwicklungsmodule PREN1 und PREN2 an der Hochschule Luzern Technik & Architektur ist innerhalb eines Jahres das Konzept Argus“ zur Erkundung und Erfassung einer ” Information (QR-Code) auf einem vordefinierten Weg entstanden. Bestehend aus einem Mobil, einer visuellen Datenverarbeitung und einer externen Recheneinheit, wird das Ziel realisiert, nach einem Startsignal möglichst schnell einen hinterlegten QR-Code anzufahren, auszulesen und über das Internet neue Koordinaten zu bekommen, welche wiederum präzise angefahren werden. Bei der Findung und Ausarbeitung der optimalsten Lösung der Aufgabenstellung, ist ein Team aus einem Elektrotechniker (Tobias Plüss), zwei Informatikern (Hansuli Burri, Christian Bontekoe), zwei Wirtschaftsingenieuren (Silvan Demmel, Martin Mägerlein) und drei Maschinentechnikern (Mathias Frei, Nicolas Lehner, Severin Frank) von den Modulverantwortlichen zusammengesetzt worden. Das verfügbare Budget wurde durch mit spezielle Einzelanfertigung und der Einzelbesorgungen optimal ausgereizt. Das primäre Ziel des Teams ist es, die Aufgabe in möglichst wenig Zeit zu bewältigen. Sämtliche Entscheidungen in der Entwicklung und Gestaltung sind diesem Ziel untergeordnet. So wurde ein spezieller Sensor zum Auslesen des Codes verwendet, die Grundform ist keilförmig ausgefallen um sich ggf. an Hindernissen vorbei zu schieben und der Antrieb besteht aus zwei leistungsstarken 12 V EC-Motoren, womit die hinteren zwei Räder unabhängig voneinander angesteuert werden können. Das Resultat ist eine Kamera die einerseits den Parcours aufnimmt und andererseits das Fahrzeug. Die Software registriert den Parcours, berechnet die Wegpunkte und erkennt das Mobil mit Hilfe zweier angebrachter Leuchtflächen. Via Bluetooth werden Befehle gesendet und ausgeführt. Wird ein Code eingescannt, wird dieser ebenfalls via Bluetooth an die externe Einheit gesendet, welche die Informationen im Internet abruft und einen neuen Weg definiert. Hindernisse auf dem Weg werden erkannt und umfahren. Über eine App auf dem Smartphone kann der Status abgerufen werden und anzufahrende Ziele werden angezeigt. Dieses Konzept kann überall dort eingesetzt werden, wo Prozesse im Sinne von Botengängen“ ” ausgeführt und visuell überwacht werden können. Mit einer leichten Modifizierung kann die visuelle Einheit durch GPS ersetzt werden. So können auf einem Flugplatz personelle, materielle und letztendlich finanzielle Ressourcen durch den automatisierten Prozess eingespart werden. Durch die Automatisierung sinken die Gelegenheiten für menschliche Fehler. Da sich das Konzept aus mehreren Bestandteilen zusammensetzt, sind auch Teilanwendungen denkbar, die wiederum in andere Systeme integriert werden. Abstract Within product development lectures PREN1 and PREN2 conducted by the Lucerne University of Applied Science and Art the concept Argus“ is invented during one year. A vehicle including ” code sensor, camera and external data centre enable a concept to explore and recognise data in a predefined path. The given target is to pass this path in the shortest time, scan a QR-code, get new target points and move there directly. The development is driven by one electrical engineer (Tobias Plüss), two informatics engineers (Hansuli Burri, Christian Bontekoe), two business engineers (Silvan Demmel, Martin Mägerlein) and three mechanical engineers (Mathias Frei, Nicolas Lehner, Severin Frank). The team is set by the responsible lectures. To achieve an optimal result, customised parts are produced and single professional parts are bought in use of mostly all financial resources. The primary target of the team is to drive the given path in the shortest time. Every function is related to this task. Therefore a special sensor to scan the code is used. Two 12 V EC-motors steer the back wheels individually and enable a velocity of 5 ms . The general shape of the body is like a triangle to pass barriers easier. The result of the development is a concept out of one vehicle, an external camera and a data centre. The Software recognise the edges of the route and the vehicle by the use of two bright colour fields. The path will be evaluated and positions and commands will be sent via Bluetooth to the vehicle. Is this vehicle scanning information, these will be sent to the data centre, which get more Information at the Internet. New commands will be sent to the vehicle. In addition barriers will be detected and circumnavigated. The current status is observed via smartphone application. Argus can be used in every environment, which is controlled by camera operation. Within a further modification, GPS can be used instead of camera operation. It replaces human at processes, which can be done driven. For instance at an airport human, material and financial resources can be saved by automated processes. As well single parts out of the concept can be integrated in other systems. Vorwort Danksagung Folgende Personen haben etwas zu dem Projekt beigetragen und die Autoren möchten daher an dieser Stelle ausdrücklichen Dank aussprechen an: Dr. Markus Thalmann von der Hochschule Luzern für die Betreuung. Josua Jöster von der HaslerRail AG für das Sponsoring der Akkus. Bruno Wenger von der Siemens AG für das Probelesen der Arbeit und die hilfreichen Verbesserungsvorschläge. Beatrice Demmel und Thomas Müller von der DIRECT MAIL HOUSE AG für die Unterstützung beim Erstellen und Drucken des Flyers. Horw, den 17. Juni 2013 Die Autoren Inhaltsverzeichnis Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Teil I Zielsetzung und Lösungsbewertung 1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Teil II Produktbeschreibung 2 Mechanik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.0.1 Vorderradaufhängung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.0.2 Hinterradaufhängung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.0.3 Getriebe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.0.4 Montage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Montage der elektronischen Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Erkennungsmerkmale für die Positionsbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 21 21 22 22 23 23 3 Bordcomputer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Mechanischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Elektronischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Stromversorgung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Reset und Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Beschaltung des Mikroprozessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3.1 Anzeigen auf dem Bordcomputer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 27 28 28 30 31 4 Software des Bordcomputers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Drehzahlregelung der Motoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Positionsberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Positionsregelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Verifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Zentraler Kommunikations-Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Interrupt des Bluetooth-Moduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Empfangs-Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4 Sende-Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.5 Telegramm-Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 35 35 37 39 41 41 42 43 44 45 12 Inhaltsverzeichnis 4.3.5.1 4.3.5.2 4.3.5.3 4.3.5.4 4.3.5.5 Positions-Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zustandsmeldung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gelesener Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bestätigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nächster Wegpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 46 47 47 47 5 Software der Basiseinheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Struktureller Aufbau der Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 BluetoothModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 BusinessLogic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3 UserInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 VideoModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Lokalisierung des Fahrzeugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 WebAccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.0.1 ArgusApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.0.2 QRCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 49 49 49 50 51 52 52 54 54 54 6 Smartphone-App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Aufruf der Webapplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Aufbau der Webapplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Übermittlung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2 Aktualisierung der Daten in der Webapplikation . . . . . . . . . . . . . . . . . . . . . . . . . 55 55 55 55 56 57 7 Gestaltungskonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Analysephase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Konzpeptphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Entwurfsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Realisierungsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 60 60 60 Teil III Anwenderhinweise 8 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 Benötigtes Material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Aufbau der Bluetooth-Verbindung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Einrichten der Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Ausrichten der Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.2 Konfiguration der Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.3 Referenzpunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.4 Farbmarkierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.5 Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 Start des Fahrzeugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 67 67 67 68 68 68 69 70 70 9 Störungsbehebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Teil IV Marketing 10 Messestand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.1 Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.2 Benötigte Materialien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Inhaltsverzeichnis 13 11 Produktflyer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Teil V Schlussdiskussion 12 Entwicklungs- und Materialkosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 13 Erfahrungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 14 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 15 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Teil VI Anhang A Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 B Projektplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 C Mechanische Fertigungsunterlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gesamtansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufhängung links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufhängung rechts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getriebeachse 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getriebeachse 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getriebeplatte links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getriebeplatte mitte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getriebeplatte rechts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundpatte oben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundpatte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mitnehmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Querlenker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gelenk für Vorderrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Radachse für Vorderrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Radgabel für Vorderrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 105 107 108 109 110 111 112 113 114 115 116 117 118 119 120 D Form für die Karosserie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Design-Inspirationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 121 124 125 E Fertigungsunterlagen des Bordcomputers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bestückungsplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stückliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 127 133 135 F Designprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 G Dateistruktur auf der CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 14 Inhaltsverzeichnis Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Listing-Verzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Sachverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Teil I Zielsetzung und Lösungsbewertung 1 Einführung Im Herbstsemester 2012 und Frühlingssemester 2013 wird im Rahmen der Module Produktenwicklung 1 und 2 eine interdisziplinäre Projektarbeit durchgeführt. Die zufällig zusammengestellten Teams aus Studierenden der Hochschule Luzern Technik & Architektur aus den Studiengängen Maschinentechnik, Elektrotechnik, Informatik und Wirtschaftsingenieur | Innovation bekommen dabei eine vom Dozententeam formulierte Aufgabenstellung. Das Dozententeam beinhaltet Fachspezialisten aller technischen Studienrichtungen. Das vorliegende Dokument ist das Ergebnis dieser beiden Module mit Fokus auf die Umsetzung des Konzepts, welches den ersten Teil der Arbeit bildet. Die Aufgabenstellung – siehe hierzu Anhang A – besteht darin, ein Gerät zu entwickeln, das sich autonom auf einem vorgegebenen Parcours bewegt. An einer freistehenden Wand auf dem Parcours hängt ein QR-Code. Diesen gilt es zu finden und auszulesen. Der QR-Code verweist auf eine Website, aus welcher eine Nummer hervor geht, die eines der 5 nummerierten Parkfelder repräsentiert. Das Gerät muss danach gemäss Nummer auf dem entsprechenden Feld parkiert werden. Im ersten Teil – also in Produktenwicklung 1 – wurden verschiedenste Lösungsansätze geprüft und bewertet und ein für die Bewältigung der Aufgabenstellung optimales Gesamtkonzept ausgearbeitet. Die wesentliche Aufgabe in Produktenwicklung 2 besteht darin, dieses Gesamtkonzept umzusetzen. Des Weiteren sollen potentielle Interessenten an einer abschliessenden Erfindermesse angesprochen und vom entwickelten System überzeugt werden. Um dies zu erreichen, sind ein Messestand sowie ein Flyer zu erstellen. Die Arbeit folgt dem Modell wissenschaftlicher Arbeiten und ist dementsprechend gegliedert. Im Hauptteil wird die Konzeptlösung mit dem Funktionsmuster verglichen und bewertet. Die einzelnen Komponenten des Fahrzeugs werden beschrieben und die Funktionalität anhand von Ablaufdiagrammen erläutert. Auch Softwaresysteme, Schnittstellenbeschreibungen sowie eine Bedienungsanleitung des Funktionsmusters sind in diesem Teil zu finden. Überdies sind ebenfalls das Konzept für den Messestand an der Erfindermesse sowie der Produktflyer zu finden. Das erfolgreiche Projektmanagement mit Punkten wie Entwicklungskosten, Projektplanung und Risikoanalysen bilden mit Erfahrungen, offenen Punkten und einem allgemeinen Ausblick den Schluss dieser Dokumentation. Teil II Produktbeschreibung 2 Mechanik 2.1 Chassis Für sämtliche mechanischen Teile sind die Fertigungsunterlagen in Anhang C ersichtlich. Nachfolgend werden die einzelnen Komponenten als Explosionszeichnungen dargestellt, um am Schluss die Montage der Komponenten zu verdeutlichen. 2.1.0.1 Vorderradaufhängung Wie das Vorderrad konstruiert ist, wird aus der Explosionszeichnung in Abbildung 2.1 ersichtlich. Die Vorderradaufhängung besteht im Wesentlichen aus dem Rad selbst, sowie der Radgabel und dem dazugehörigen Stossdämpfer. Abb. 2.1. Explosionszeichnung der Vorderradaufhängung 2.1.0.2 Hinterradaufhängung Abbildung 2.2 zeigt, wie die Hinterräder am Chassis befestigt werden. Ersichtlich sind in der Explosionszeichnung auch wieder im Wesentlichen die Querlenker, sowie die Federung und die Achse, an der das Rad befestigt wird. 22 2 Mechanik Abb. 2.2. Explosionszeichnung der Hinterradaufhängung 2.1.0.3 Getriebe Das Getriebe ist in Abbildung 2.3 ersichtlich. Damit die Achsen, auf denen die Zahnräder montiert werden, ausreichend geführt sind, ist in der Mitte des Chassis ein Aluminiumblock mit entsprechenden Bohrungen und Kugellagern vorgesehen. Die grossen Zahnräder sind aus Kunststoff, während die Ritzel für die Motoren aus Messing gefertigt sein müssen, da sich bei Tests gezeigt hat, dass Kunststoffritzel dem Anfahrmoment nicht zu widerstehen vermögen. Abb. 2.3. Explosionszeichnung des Getriebes 2.1.0.4 Montage Wie die zuvor erwähnten Komponenten nun zusammengesetzt werden, geht aus Abbildung 2.4 hervor. Abbildung 2.5 zeigt die Ansicht des komplett montierten Fahrzeugs, jedoch ohne die aufgesetzte Karosserie. 2.2 Erkennungsmerkmale für die Positionsbestimmung 23 Abb. 2.4. Explosionszeichnung des gesamten Fahrzeugs 2.1.1 Montage der elektronischen Komponenten Die elektronischen Komponenten werden gemäss Abbildung 2.6 auf dem Chassis montiert. Teilbild (a) zeigt die Montage der magnetischen Drehgeber. Diese werden auf eine kleine Adapterplatine gelötet und mit Araldit auf ein Stahlblech geklebt. Das Stahlblech minimiert die magnetische Kopplung zwischen den beiden Drehgebern, sodass sie sich nicht gegenseitig beeinflussen können. Von den Adapterplatinen werden dann Litzen zum Bordcomputer geführt. In Teilbild (a) ist zudem noch die Büchse (schwarzes Teil vor dem Ritzel) ersichtlich, die dafür sorgt, dass der Magnet genau auf der Motorwelle zentriert ist. Ist der Magnet nicht genau mittig platziert, eiert“ er also, dann werden auch die Messwerte der Drehgeber dadurch unbrauchbar. ” Die Büchse wurde aus Kunststoff gefertigt und mit entsprechenden Bohrungen für den Magneten und die Welle des Motors versehen; der Magnet klebt aufgrund der stählernen Welle selbständig in dieser Konstruktion. Teilbild (b) in Abbildung 2.6 zeigt die Montage des Bordcomputers selbst und des Sensors für den QR-Code. Die Platine wird mittels Distanzbolzen am dafür vorgesehenen Platz auf dem Chassis montiert. Auf der rechten Seite des Fahrzeugs wird die Platine mit simplen M3-Sicherungsschrauben befestigt; auf der linken Seite, wo der Sensor montiert wird, ist jedoch eine etwas modifizierte Konstruktion nötig: Zwei M3-Gewindestangen dienen als Führung bzw. Halterung für den Sensor. Mittels Muttern wird einerseits die Hauptplatine festgehalten; andererseits kann mit zwei weiteren Muttern die Höhe des Sensors optimal eingestellt und mit Kontermuttern fixiert werden. Der Sensor selbst sitzt auf einer kleinen Hartpapier-Platte, welche von einer handelsüblichen Laborplatine abgetrennt wurde. Die Verbindung vom Sensor zur Hauptplatine erfolgt mit einem ausreichend langen FFC-Kabel, das zudem über Stecker verfügt sodass der Sensor bei Bedarf leicht demontiert werden kann. 2.2 Erkennungsmerkmale für die Positionsbestimmung Damit die Basiseinheit mittels Kamera und Bildverarbeitung das Fahrzeug erkennen kann, werden auf dessen Oberseite zwei farbige Markierungen angebracht. Empirische Tests haben gezeigt, dass sich hierfür die Farben gelb und grün am besten eignen. Damit die Farben der Markierungen gleichmässig und vom Umgebungslicht unabhängig sind, werden zwei bemalte, von unten beleuchtete Styropor-Halbkugeln verwendet, wie eine in Abbildung 2.7 24 2 Mechanik (a) Ansicht von links (b) Ansicht von rechts Abb. 2.5. Ansicht des Fahrzeugs bei abmontierter Karosserie dargestellt ist. Die Beleuchtung sorgt dann dafür, dass die Kugeln sowohl im Schatten, wie auch im Aussen- oder Kunstlicht annähernd dieselbe Farbe haben. Durch die runde Form und das matte Styropor-Material werden über dies Reflexionen, welche die Farbe ebenfalls verfälschen könnten, auf ein Minimum reduziert. Die Beleuchtung erfolgt mit entsprechend zurecht geschnittenen, selbstklebenden RGB-LED-Streifen, deren Farbe auf diejenige der jeweiligen Markierung abgestimmt wird. 2.2 Erkennungsmerkmale für die Positionsbestimmung (a) Drehgeber mit Magneten (b) Sensor für QR-Code Abb. 2.6. Montage der elektronischen Komponenten Abb. 2.7. Beispielhafte Styropor-Halbkugel als Farbmarkierung 25 3 Bordcomputer 3.1 Mechanischer Aufbau In Anhang E ab Seite 127 sind die Fertigungsunterlagen des Bordcomputers SR4071 ersichtlich. Er wird auf einer 4lagigen Multilayer-Platine aufgebaut; auf Seite 133 ist der detailierte Aufbau ersichtlich. Die Platine hat die Abmessungen 80 mm × 80 mm und weist in den vier Ecken jeweils eine Bohrung für eine M3-Befestigungsschraube auf, sodass sie sehr einfach am dafür vorgesehenen Platz auf dem Chassis montiert werden kann. Entgegen der früheren Idee, das Bluetooth-Modul wie eine gewöhnliche SMT-Komponente liegend zu bestücken, wurde aus zweierlei Gründen darauf verzichtet. Einerseits aus Platzmangel, da die restliche Elektronik doch einiges an Platz beansprucht, als auch aus Gründen der elektromagnetischen Verträglichkeit (EMV) – das Bluetooth-Modul könnte einerseits den Mikroprozessor stören, oder selbst gestört werden durch die Motortreiber. Aufgrund dieser Überlegungen ist ein Steckplatz vorgesehen, der es erlaubt, das Bluetooth-Modul um 90◦ abgewinkelt zu montieren, also stehend. Dadurch wird der Abstand zu den übrigen Komponenten maximiert. Abbildung 3.1 zeigt die Gesamtansicht der Leiterplatte des SR407; in Abbildung 3.2 sind die Oberund die Unterseite der Leiterplatte in Originalgrösse dargestellt. 3.2 Elektronischer Aufbau Der Bordcomputer beinhaltet alle wichtigen, zum Betrieb des Fahrzeugs nötigen Komponenten: • zwei Motortreiber (Endstufen) für die Ansteuerung der Motoren • Anschlüsse für die Drehgeber und das Bluetooth-Modul • einen Anschluss für den QR-Code-Sensor Über dies sind noch folgende Komponenten darauf enthalten: • Stromversorgung 3.3 V für die Logik und den Mikroprozessor • eine Akkuüberwachung (Spannung) • mehrere LEDs für Testzwecke und zur Anzeige der Betriebszustände des SR407 Optional kann noch folgendes nachgerüstet werden: 1 Steuerrechner 407, weil er auf dem Mikroprozessor STM32F407 basiert 28 3 Bordcomputer Abb. 3.1. Ansicht des Bordcomputers. • eine Strommessung für die Strangströme der Motoren – diese wird für die feldorientierte Regelung benötigt • eine serielle Schnittstelle (RS-232) für Testzwecke • ein Buzzer zur Ausgabe akustischer Meldungen Im folgenden Abschnitt soll nun kurz auf die elektronischen Komponenten und deren Zusammenspiel eingegangen werden. 3.2.1 Stromversorgung Die Stromversorgung ist mit einem integrierten Schaltregler TSR1-2433 realisiert. Dieser liefert ausgangsseitig 3.3 V bei einem maximalen Strom von 1 A, was für den Betrieb der Logik und des Mikroprozessors ausreichend ist. Für den Betrieb der Motortreiber wird eine zusätzliche Hilfsspannung von nominal 12 V benötigt. Da zudem auch die Hallsensoren der Motoren eine Betriebsspannung zwischen 5 V und 18 V benötigen, wurde noch ein zweiter Schaltregler vorgesehen, der eine Spannung von 12 V liefert. Aus dieser Spannung werden dann die Motortreiber und die Hallsensoren versorgt. Für den ADC muss eine Referenzspannung erzeugt werden. Hierfür kommen Referenzdioden des Typs LM4040 zur Anwendung, die eine Spannung von 2.5 V liefern. Die Betriebsspannug des ADC wird mit einem RC-Filter aus den 3.3 V gewonnen, um Störeinflüsse zu minimieren. 3.2.2 Reset und Debug Damit der Mikroprozessor beim Einschalten in einen definierten Zustand versetzt wird, ist eine einfache Reset-Beschaltung mit einem RC-Glied und einem Taster vorhanden. Dies ist möglich, da der RESET-Eingang des Mikroprozessors Schmitt-Trigger-Charakteristik hat. Dank dem Taster 3.2 Elektronischer Aufbau 29 (a) Oberseite (b) Unterseite Abb. 3.2. Leiterplatte des SR407 in Originalgrösse S1 kann der Mikroprozessor auch händisch jederzeit zurückgesetzt werden, was sich besonders für Testzwecke oder bei Fehlern eignet. Des Weiteren ist die Debug-Schnittstelle JTAG des Mikroprozessors auf eine Stiftleiste herausgeführt. Dies ermöglicht, jederzeit neue Firmware auf den Bordcomputer herunter zu laden und diese zu debuggen. Für anderweitige Testzwecke (z.B. Ausgabe von Text und dergleichen) ist eine serielle Schnittstelle vorgesehen, die dank dem optional bestückbaren Pegelwandler direkt mit einem PC verbunden werden kann. Auch mehrere LEDs stehen zur Ausgabe von Betriebszuständen o.ä. zur Verfügung. Bei der JTAG-Schnittstelle muss noch beachtet werden, dass zuerst der QR-CodeSensor entfernt werden muss durch lösen der oberen Kontermutter, da der Stecker ansonsten nicht 30 3 Bordcomputer zugänglich ist. I.d.R. sollte dies allerdings kein Problem darstellen, da man beim fertigen Gerät prinzipiell nicht mehr auf die Debug-Schnittstelle zugreifen muss. 3.2.3 Beschaltung des Mikroprozessors Die Pinbelegung des Mikroprozessors musste leicht angepasst werden. Daher ist sie in Tabelle 3.1 nochmals wiedergegeben. Einige Signale mussten anderen Pins zugeordnet werden; über dies sind noch weitere Signale dazu dazu gekommen. Port Pin Nummer Modul Typ Zweck A PA0 23 Timer 2 DE1 Drehgeber rechts Kanal A PA1 24 Timer 2 DE Drehgeber rechts Kanal B B C 2 Hallsensor 1 links PA2 25 GPIO DA PA3 26 GPIO DA Hallsensor 2 links PA4 29 GPIO DA Hallsensor 3 links PA6 31 Timer 3 DE Drehgeber links Kanal A PA7 32 Timer 3 DE Drehgeber links Kanal B PA8 67 Timer 1 DA PWM Phase U links PA9 68 Timer 1 DA PWM Phase V links PA10 69 Timer 1 DA PWM Phase W links PB0 35 ADC? DA Überwachung Batteriespanung PB5 91 GPIO DA LV3000 TRIG PB6 92 UART1 DA LV3000 TX PB7 93 UART1 DE LV3000 RX PB8 GPIO DA LV3000 RESET PB9 Timer 11 DA Ansteuerung für Buzzer PB14 53 GPIO DE Motortreiber FAULT PB15 54 GPIO DE Motortreiber OTW PC0 15 ADC1 AE3 Strom Phase U links PC1 16 ADC1 AE Strom Phase V links PC2 17 ADC1 AE Strom Phase W links PC3 18 ADC2 AE Strom Phase U rechts PC4 33 ADC2 AE Strom Phase V rechts PC5 34 ADC2 AE Strom Phase W rechts PC6 63 Timer 8 DA PWM Phase U rechts PC7 64 Timer 8 DA PWM Phase V rechts PC8 65 Timer 8 DA PWM Phase W rechts PC9 66 GPIO DA Phase U links Treiber RESET PC10 78 GPIO DA Phase V links Treiber RESET Fortsetzung auf nächster Seite 3.2 Elektronischer Aufbau Port D E Pin Nummer Modul Typ Zweck PC11 79 GPIO DA Phase W links Treiber RESET PC12 80 GPIO DA Phase U rechts Treiber RESET PC13 7 GPIO DA Phase V rechts Treiber RESET PC14 8 GPIO DA Phase W rechts Treiber RESET PC15 9 GPIO DA Debug-LED PD0 81 EXTI0 DE Interrupt 0 – Hallsensor links XOR PD1 82 EXTI1 DE Interrupt 1 – Hallsensor rechts XOR PD2 83 GPIO DA Hallsensor 1 rechts PD3 84 GPIO DA Hallsensor 2 rechts PD4 85 GPIO DA Hallsensor 3 rechts PD5 UART2 DA Debug-Interface TX PD6 UART2 DE Debug-Interface RX PD8 55 UART3 DA Bluetooth TX PD9 56 UART3 DE Bluetooth RX PD10 36 GPIO DA Bluetooth RESET PD11 58 UART3 DA Bluetooth CTS PD12 59 UART3 DE Bluetooth RFR PE0 97 GPIO DE Drehgeber links Indexsignal4 PE1 98 GPIO DE Drehgeber rechts Indexsignal4 31 Tabelle 3.1: Beschaltung des Mikroprozessors 3.2.3.1 Anzeigen auf dem Bordcomputer Der Bordcomputer verfügt über vier LEDs zur Anzeige von Betriebszuständen. Die LEDs haben die in Tabelle 3.2 dargestellten Bedeutungen. LED Bedeutung ERR Motortreiber-Fehler OTW Motortreiber überhitzt PWR Speisung eingeschaltet DBG Debug-LED Tabelle 3.2. LEDs auf dem SR407 und deren Bedeutung 1 2 3 4 Digitaler Eingang Digitaler Ausgang Analoger Eingang ist zwar beschaltet, aber nicht für Verwendung vorgesehen (reserviert) 32 3 Bordcomputer Die Signale FAULT und OTW der Motortreiber werden ständig überwacht, um bei Kurzschluss, Überlastung oder Überhitzung der Motortreiber diese sofort abschalten zu können. Dank den zusätzlich an diesen Signalen angeschlossenen LEDs wird ein solcher Betriebszustand auch sofort angezeigt. Im Falle einer Unterspannung, d.h. wenn die Batterie auf unter ca. 13.5 V entladen ist, offenbart sich der Fehler nicht nur über eine leuchtende ERR-LED, sondern auf der Basiseinheit wird die Unterspannung ebenfalls angezeigt, sofern zuvor eine Bluetooth-Verbindung aufgebaut wurde. Die Debug-LED wurde während der Entwicklung verwendet, um bei fahrendem Fahrzeug dennoch eine Zustandsausgabe zu ermöglichen. In der finalen Software zeigt ein Blinken der Debug-LED eine funktionierende Kommunikation mit der Basiseinheit an. Im Endprodukt zeigt ein Blinken der Debug-LED einen erfolgreichen Austausch von Telegrammen zwischen dem SR407 und der Basiseinheit an. 4 Software des Bordcomputers 4.1 Drehzahlregelung der Motoren Für die Drehzahlregelung werden die Drehgeber benötigt. Diese werden von einem Hardware-Timer des Mikroprozessors ausgewertet; somit steht immer die aktuelle Drehgeberposition zur Verfügung. Die Struktur des Reglers ist in Abbildung 4.1 ersichtlich. Abb. 4.1. Struktur des Drehzahlreglers Der Regelalgorithmus funktioniert wie folgt: in Abständen von 2 ms (definiert als Konstante MOTOR_REG_PERIOD in der Datei motor.c) wird der Regler-Task aufgerufen. Dieser hat eine Variable, wo die jeweils letzte Position des Drehgebers gespeichert wird. Nun wird die aktuelle Position des Drehgebers abgefragt und die Differenz zur vorhergehenden Position gebildet. Die resultierende Anzahl Inkremente ergibt zusammen mit der Regler-Periodendauer von 2 ms die Drehzahl. Mit dieser geht man nun in einen klassischen digitalen PI-Regler ein, wie er in Abbildung 4.1 ersichtlich ist. In Listing 4.1 ist als Pseudocode ersichtlich, wie dieser Regler in der Software implementiert wurde. 34 4 Software des Bordcomputers /* get the current encoder position */ current_pos = get_encoder_position(); /* calculate the difference between the old and the new incr. values */ diff = current_pos - last_pos; /* save the last position */ last_pos = current_pos; /* calculate the error; speed is the desired motor speed */ e = speed - diff; /* anti-windup: if the output stage is at its limit, stop integrating */ if(motor_dc <= MAX_DC) { esum_a = esum_a + ea; } /* calculate the regulator output; the offset of 500 is needed because of the following: if y < 500 -> motor turns in direction A y = 500 -> motor stops < > 500 -> motor turns in direction B */ yb = (KP * e) + (KI * esum) + 500.0f; /* saturation of the output stage; bear in mind the duty cycle range */ if(y > MAX_DC) { y = MAX_DC; } else if(y < 0.0f) { y = 0.0f; } /* set the duty cycle for the motor */ motor_dc = (uint16_t)y; os_sleep(MOTOR_REG_PERIOD); Listing 4.1. Zentraler Teil des Drehzahlreglers Am Ausgang des PI-Reglers wird ein Offset hinzugefügt. Dies hat folgenden Grund: Der PWM kann im Bereich von 0..1000 eingestellt werden. Hierbei bedeutet ein Wert von 0, dass der Motor mit voller Drehzahl in die eine Richtung dreht, während ein PWM-Wert von 1000 volle Drehzahl in die entgegengesetzte Richtung bedeutet. Somit bedeutet ein PWM-Wert von 500, dass der Motor still steht. Dies wird durch Hinzuaddieren des Offsets erreicht. Nach der Addition des Offsets muss noch eine Saturation durchgeführt werden, um ein Übersteuern des Stellglieds zu verhindern. Die Saturation prüft lediglich, ob sich der vom Regler berechnete 4.2 Navigation 35 PWM-Wert im zulässigen Bereich befindet. Sofern dies nicht der Fall ist, wird der Wert einfach auf den jeweiligen Maximalwert begrenzt. Nicht ersichtlich in Abbildung 4.1 ist das sogenannte Anti-Windup, das ebenfalls im Regler implementiert werden muss. Sofern das Stellglied am Anschlag ist, d.h. bereits eine PWM mit dem Maximalwert auf den Motor gegeben wird, und dennoch ein Regelfehler auftritt, so wird dieser vom I-Anteil immer weiter aufintegriert, obwohl der Regler mit dem Stellglied gar keine Änderung des Istwerts mehr herbeiführen kann. Dies muss verhindert werden. Das Anti-Windup besteht daher aus einer einfachen Abfrage, die prüft, ob das Stellglied bereits am Anschlag ist. Wenn ja, dann wird eine weitere Integration der Regeldifferenz verhindert. Mit dem letzten Statement os_sleep() schliesslich wird die gewünschte Periodendauer des Reglers erreicht. Durch aufrufen der os_sleep()-Funktion gibt der aktuelle Task die CPU frei, und das Betriebssystem bzw. der Scheduler kann sie an einem anderen Task zuteilen. Nach Ablauf der Verzögerung wird der vorherige Task dann wieder fortgesetzt. 4.2 Navigation 4.2.1 Positionsberechnung Die Basiseinheit kann nur in verhältnismässig langsamen Intervallen von 100 ms die Istkoordinaten an das Fahrzeug senden. Damit eine akkurate und schnelle Positionsregelung möglich wird, ist dies jedoch nicht ausreichend und es muss in der Zwischenzeit, bevor die neuen Koordinaten bekannt gegeben werden, eine Abschätzung der Istkoordinaten vorgenommen werden. Der Algorithmus zur Berechnung der Fahrzeugposition ist in Listing 4.2 ersichtlich. Dieser wird zusammen mit dem Drehzahlregler im Intervall MOTOR_REG_PERIOD ausgeführt. /* calculate the whole distance since the last regulator loop */ a_mm = diff_a * INCR_TO_MM; /* for motor a */ b_mm = -diff_b * INCR_TO_MM; /* for motor b */ magnitude = (a_mm + b_mm) / 2.0f; /* calculate the angle offset */ angle_offset = (a_mm - b_mm) / (WHEEL_DIST); /* calculate the distance in x and y direction */ x_offset = cos(angle) * magnitude; y_offset = sin(angle) * magnitude; /* calculate our current position and angle - this must be atomic */ disable_interrupts(); angle = pi_range(angle - angle_offset); xpos = xpos + x_offset; ypos = ypos + y_offset; enable_interrupts(); Listing 4.2. Positionsberechnung Zunächst steht in den Variablen diff_a bzw. diff_b die Differenz zwischen aktueller und vorheriger Position der Drehgeber zur Verfügung, und zwar in Inkrementen. Dann wird diese Differenz mit 36 4 Software des Bordcomputers einem konstanten Umrechnungsfaktor in [mm] umgerechnet. Die Umrechnung erfolgt gemäss folgender Beziehung: πD a[mm] , b[mm] = ∆ · kR Hierbei sind a und b die Distanzen in [mm]; ∆ ist die Anzahl Inkremente, und D ist der Raddurchmesser. Die Grösse k bezeichnet den Übersetzungsfaktor des Getriebes und R ist die Auflösung der Drehgeber, in diesem Fall 1024 aufgrund der 10 Bits. Diese Umrechnung wird für beide Drehgeber vorgenommen. Die effektive, vom Fahrzeug selbst zurückgelegte Strecke entspricht dem Mittelwert von a[mm] und b[mm] : ∆s = a[mm] + b[mm] 2 Nun muss noch der Richtungsfaktor bestimmt werden, damit die zurückgelegte Strecke s in eine xund eine y-Komponente zerlegt werden kann. Der Richtungsfaktor, also der Winkel des Fahrzeugs, kann aus der Differenz der zurückgelegten Strecken des linken bzw. des rechten Rades berechnet werden. Dazu betrachte man Abbildung 4.2. Wenn das Fahrzeug sich vorwärts bewegt und dabei eine Kurve beschreibt, kann diese Bewegung als eine Überlagerung einer Translation und einer Rotation des Fahrzeugs um sich selbst beschrieben werden. Die Translation ist trivial, da sich hier die Drehgeber um dieselbe Anzahl Inkremente drehen, während bei der Rotation die Anzahl der Inkremente beim linken Rad anders als beim Rechten ist. In Abbildung 4.2 ist die alte Position des Fahrzeugs gestrichelt eingezeichnet. Die aktuelle Position des Fahrzeugs sei nun die mit durchgezogenen Linien Eingezeichnete. Die Punkte symbolisieren die Mittelpunkte der Räder. Der Winkel, um den das Fahrzeug rotiert hat, wird mit ϕ bezeichnet. Er entspricht – in Radianten – der Länge des eingezeichneten Bogens in Abbildung 4.2 dividiert durch den halben Achsabstand. Für die Länge des Bogens muss die Differenz aus a[mm] und b[mm] herangezogen werden; daher ist ∆ϕ = a[mm] − b[mm] B Abb. 4.2. Zur Herleitung des Winkels Die relativen x- und y-Koordinaten sowie die Winkeländerung lauten somit: ∆x = ∆s · cos ϕ ∆y = ∆s · sin ϕ a[mm] − b[mm] ∆ϕ = B Immer, wenn von der Basiseinheit die aktuelle Position gesendet wird, wird diese in einem internen Speicher abgelegt. In der Zwischenzeit kann diese absolute Position als Anfangswert für die Integration dieser relativen Koordinaten verwendet werden, d.h. man addiert in jedem Durchlauf die ∆x, 4.2 Navigation 37 ∆y und α zur letzten Position hinzu und erhält so jederzeit die aktuelle Position des Fahrzeugs. Diese kann somit wie folgt bestimmt werden: Z x = x0 + ∆x dt Z y = y0 + ∆y dt Z ϕ = ϕ0 + ∆ϕ dt Dies ist auch im Codeauschnitt in Listing 4.2 ersichtlich. Während der Integration müssen die Interrupts jeweils deaktiviert werden, damit sie atomar ist. Ansonsten würde die Gefahr bestehen, dass mit inkonsistenten Koordinaten weitergerechnet wird, was zwangsläufig zu undefiniertem Verhalten führen würde. Zwei Besonderheiten ergeben sich noch beim Winkel. Hier sollen nur Hauptwerte verwendet werden, d.h. der Winkel ϕ soll stets im Intervall [0, 2 π] liegen. Dies wird mit der Funktion pi_range() bewerkstelligt. Sie ist sehr einfach implementiert, wie in Listing 4.3 ersichtlich ist. float pi_range(float value) { /* negative angles */ while(value < 0.0f) { value += (2.0f * PI); } /* positive angles */ while(value >= (2.0f * PI)) { value -= (2.0f * PI); } return value; } Listing 4.3. So wird für den Winkel ein Hauptwert erzwungen Da die Funktion während der Integration des Winkels dauernd aufgerufen wird, ist nicht zu befürchten, dass der Winkel jemals ausserhalb dieses Intervalls liegt. Denn er wird stets nur in kleinen Schritten inkrementiert und dann wird sofort wieder pi_range() aufgerufen, sodass der Winkel niemals ausserhalb des gültigen Intervalls liegen kann. Bemerkenswert beim Winkel ist auch, dass bei der Integration der Winkeloffset subtrahiert werden muss. Der Grund liegt darin, dass das Koordinatensystem der Basiseinheit kein Rechtssystem ist, sondern ein Linkssystem, d.h. positive Winkel werden im Uhrzeigersinn abgetragen, anstatt wie bei einem Rechtssystem üblich im Gegenuhrzeigersinn. 4.2.2 Positionsregelung Um eine gewünschte Zielposition anfahren zu können, wird dem Drehzahlregler ein Positionsregler überlagert. Der Positionsregler wird in einem Intervall von max. 4 ms ausgeführt. In Listing 4.4 ist der Code des Positionsreglers ersichtlich. 38 4 Software des Bordcomputers /* calculate x and y distance to the target */ dx = target_x - xpos; dy = target_y - ypos; /* calculate the angle and distance to the target */ delta = atan2(dy, dx); rho = sqrt((dx * dx) + (dy * dy)); /* correct angles to bring atan2 result in range 0..2pi */ delta = pi_range(delta - angle); /* calculate the speed offset */ offset = sin(delta) * target_speed * CURVATURE; /* position is only regulated if the distance large enough */ if(rho > PROXIMITY_TOLERANCE) { if((delta < ANGULAR_TOLERANCE) || (delta > (2 * PI - ANGULAR_TOLERANCE))) { /* drive straight forward if the angle is within the tolerance */ set_speed(target_speed, target_speed); } else { /* angular drive */ set_speed(target_speed - offset, target_speed + offset); } } else { /* halt if the car is within a valid range */ set_speed(0.0f, 0.0f); } Listing 4.4. Positionsregelung In den Variablen target_x, target_y und target_speed werden die Zielkoordinaten und die Sollgeschwindigkeit abgelegt. Danach wird mit dx = xtarget − x dy = ytarget − y p ̺ = dx2 + dy 2 der Abstand ̺ vom Fahrzeug zum Ziel berechnet. Zudem wird noch der Winkel zwischen dem Fahrzeug und dem Zielpunkt benötigt: δ = ∡(dx, dy) = arctan dy dx Nun wird mit Hilfe von δ ein Offset berechnet. Ist δ < 0, also bei negativen Winkeln, dann muss das rechte Rad schneller drehen; ist jedoch δ > 0, dann muss das linke Rad schneller drehen. Mit Hilfe der Sinusfunktion wird δ in das Intervall [−1, 1] gebracht. Der Offset berechnet sich dann wie folgt: 4.2 Navigation 39 vof f s = v k sin δ Hierbei ist v die gewünschte Geschwindigkeit und k eine Konstante, die den minimalen Kurvenradius bestimmt. Im Extremfall, wenn δ = 90◦ ist, wird vof f s = v k Sofern k = 1, dann wird somit vof f s = v. Dies bedeutet dann aber: das rechte Rad wird auf die Drehzahl 0 gebracht, während das linke Rad auf die doppelte Solldrehzahl gebracht wird. Das Fahrzeug wendet dann an Ort und Stelle. Wenn man k entsprechend verkleinert, dann wird das rechte Rad nicht auf 0 herunter geregelt, sondern auf eine Drehzahl > 0 und somit wird der Kurvenradius grösser. Die selbe Überlegung kann man für δ = −90◦ anstellen und kommt zum selben Ergebnis. Der Faktor k ist im Code als Konstante CURVATURE definiert. Nach der Berechnung des Offsets prüft der Positionsregler, ob das Fahrzeug bereits in der Nähe der Zielposition ist. Sofern ̺ < ̺min ist, wird das Fahrzeug angehalten. Ist jedoch ̺ ≥ ̺min , dann wird die zweite Bedingung noch geprüft: Es muss δmin < δ < δmax sein. Sofern die Bedingung zutrifft, der Winkel δ also klein genug ist, dann werden die Drehzahlen des linken und des rechten Rades auf den selben Wert gesetzt. Die Werte der Konstanten ̺min und δmin bzw. δmax sind im Code als PROXIMITY_TOLERANCE bzw. ANGULAR_TOLERANCE definiert. 4.2.3 Verifikation Die Funktion des Algorithmus konnte einfach verifiziert werden. Da zu diesem Zeitpunkt noch keine vollständige Basiseinheit mit Software und Kamera zur Verfügung stand, wurde die Startposition des Fahrzeugs sowie der Startwinkel manuell auf folgende Werte gesetzt: x=0 y=0 ϕ=0 Die Software des SR407 wurde dann in einer speziellen Debug-Version derart modifiziert, dass über das Bluetooth-Modul nicht das binäre Protokoll läuft, sondern dass mit dem aus der CStandardbibiothek bekannten Befehl printf() Text auf ein Terminalprogramm auf einem PC ausgegeben werden konnte. Anschliessend wurden die Eckpunkte eines 1×1 m grossen Quadrates als Zielpunkte für das Fahrzeug programmiert. Die blaue Linie in Abbildung 4.3 verdeutlicht dies. Nach dem Starten des Fahrzeugs wird nun laufend die berechnete Position sowie der Winkel an das Terminalprogramm gesendet; in Abbildung 4.3 ist die vom Fahrzeug berechnete Position ersichtlich. Man erkennt, dass die Zielpunkte recht genau erreicht werden. Unschön an dem Algorithmus ist allerdings, dass man nicht um die Verwendung trigonometrischer Funktionen herum kommt, was in Embedded Systemen i.d.R. problematisch ist. In diesem Falle steht jedoch eine ausreichende Rechenleistung zur Verfügung; auch die Weiterverarbeitung der Fliesskommazahlen stellt dank der FPU kein Problem dar. Nachdem das System komplett und betriebsbereit war, wurden zur Verifikation des Gesamtsystems die angefahrenen Wegpunkte beim Abfahren eines kompletten Kurses aufgezeichnet. In jede der 5 Garagen wurde einmal hinein gefahren. Die resultierenden Graphen sind in Abbildung 4.4 ersichtlich. Zudem wurde zu Demonstrationszwecken noch eine Miniaturkamera auf dem Fahrzeug montiert, die bei fahrendem Fahrzeug filmt. Das daraus entstandene Video ist im Internet unter der URL http://team8.bontekoe.ch/uploads/GOPR0353.mp4 abrufbar. 4 Software des Bordcomputers 1200 1000 y [mm] 800 600 Ausrichtung Position 400 200 0 −200 −200 0 200 400 600 800 1000 1200 x [mm] Abb. 4.3. Anhand der Drehgeber berechnete Position des Fahrzeugs 0 500 1000 1500 y [mm] 40 2000 2500 Garage Garage Garage Garage Garage 3000 3500 4000 0 1 2 3 4 5 500 1000 1500 2000 2500 3000 3500 4000 x [mm] Abb. 4.4. Zurückgelegter Weg des Fahrzeugs beim Einfahren in die 5 Garagen 4.3 Kommunikation 41 4.3 Kommunikation Die Kommunikation wird mit Hilfe dreier verschiedener Tasks abgewickelt: • einem zentralen Kommunikations-Task • einem Task für den Empfang der Telegramme • einem Task für das Senden von Telegrammen Die einzelnen Bestandteile des Kommunikations-Moduls werden im Folgenden detailiert beschrieben. 4.3.1 Zentraler Kommunikations-Task Der zentrale Kommunikationstask ist als Pseudocode in Listing 4.5 dargestellt. /* initialise the bluetooth module */ bt_init(); /* create the receive and transmit tasks */ os_task_create(bluetooth_tx); os_task_create(bluetooth_rx); /* enable the bluetooth module’s interrupt */ bt_enable_int(true); /* start the timer which periodically generates the status reports */ start_report_timer(); while(true) { /* wait until some task posts a message to our mailbox (the only task which does so is the bluetooth_rx task) */ rxmsg = wait_for_message(); /* determine the type of the received tgr */ rxtgr = get_type(rxmsg); /* don’t send ack if the command was ’resend code’ */ if(rxtgr != tgrtype_code_report) { send_ack(); } /* do various things, according to the type of tgr received */ switch(rxmsg->type) { /* messages that shall be forwarded to the qr code task */ case type_resend_code: case type_read_code: { 42 4 Software des Bordcomputers /* forward the message to the sensor task */ os_task_q_post(qr_receive_code, rxmsg); } break; /* other messages ar not used */ default: { /* not used */ } break; } } Listing 4.5. Zentraler Kommunikations-Task Zunächst wird mit dem Aufruf bt_init() das Bluetooth-Modul initialisiert. Hierbei muss es in den sogenannten transparenten Modus geschaltet werden, damit Daten, die an das Modul geschickt werden, direkt als binäre Daten zum Bluetooth-Endgerät übermittelt werden. Anschliessend werden die beiden Hilfs-Tasks für das Empfangen bzw. das Senden kreiert und gestartet; erst dann dürfen die Interrupts des Bluetooth-Moduls freigegeben werden. Als Abschluss dieser Initialisierungsphase wird noch ein Timer gestartet, der die periodischen Meldungen an die Basiseinheit erzeugt. Der Timer ruft in einem Intervall von 100 ms eine Callback-Funktion auf, die dann die Statusmeldungen erzeugt, welche dann an die Basiseinheit gesendet werden. In der darauf folgenden Endlosschleife wartet der Kommunikations-Task, dass eine Message vom Betriebssystem eintrifft. Nur der Empfangs-Task sendet überhaupt solche Messages an den Kommunikations-Task. Trifft eine Message ein, wird geprüft, ob es sich um ein Kommando von der Basiseinheit handelt. Sofern das Kommando resend_code war, muss kein ACK geschickt werden; alle anderen Telegramme müssen aber auf alle Fälle mit ACK bestätigt werden, was mit der entsprechenden if-Abfrage sichergestellt ist. Anschliessend muss noch geprüft werden, wie mit dem empfangenen Telegramm weiter verfahren werden soll. Sofern es sich um Kommandos betreffend QR-Codes handelt, werden sie an den QR-Code-Task weitergeleitet. Wenn es sich um Positionierkommandos handelt, werden sie an das Navigationsmodul weitergeleitet. 4.3.2 Interrupt des Bluetooth-Moduls Das Bluetooth-Modul ist über einen UART mit dem Mikroprozessor verbunden. Sobald die Basiseinheit ein Byte an das Bluetooth-Modul geschickt hat, wird dieses via den UART übertragen, unter Berücksichtigung des notwendigen Handshakings. Wurde das Byte dann vom Mikroprozessor erfolgreich empfangen, wird ein Interrupt ausgelöst. In der zugehörigen ISR wird lediglich das empfangene Byte vom UART abgeholt und dem Betriebssystem als Message übergeben, die dann an den Bluetooth-Empfangstask weitergeleitet wird. Im umgekehrten Fall, wenn das Bluetooth-Modul selber ein Byte erfolgreich an die Basiseinheit geschickt hat, wird vom UART ebenfalls ein Interrupt aufgerufen. In der zugehörigen ISR wird dann ein Semaphor gesetzt. Der Bluetooth-Sendetask wartet vor dem Senden jeweils auf dieses Semaphor. Im Pseudocode in Listing 4.6 ist der Ablauf des Bluetooth-Interrupts ersichtlich. 4.3 Kommunikation 43 /* read the uart status register */ uart_get_status(); /* transmit register empty? this means: a byte has been sent */ if(tx_empty) { /* disable the tx empty interrupt */ disable_tx_irq(); /* wake up the task waiting on the uart */ os_semaphore_post(tx_semaphore); } /* read data register not empty? i.e. means a byte is received */ if(rx_done) { /* allocate a message */ msg_t* msg = msgapi_alloc(type_bt_rx); assert(msg != NULL); /* get the received character */ msg->extra_info.bt_rx_char = get_rx_char(); /* send it to the rx task */ os_task_post(bluetooth_rx, msg); } Listing 4.6. Funktionsweise des Bluetooth-Interrupthandlers 4.3.3 Empfangs-Task Der Empfangs-Task für die Bluetooth-Kommunikation ist recht kompakt gehalten. Im Wesentlichen wartet der Task einfach darauf, dass vom Betriebssystem eine Message eingeht, die besagt, dass ein Byte vom Bluetooth-Modul empfangen worden ist. Danach wird ein Zustandsautomat aufgerufen, der anhand seines internen Zustands und des empfangenen Bytes ein vollständiges Telegramm zusammensetzen kann, das von anderen Tasks dann interpretiert werden kann. Der Zustandsautomat ist in Abbildung 4.5 dargestellt. Das Zusammensetzen des Telegramms erfolgt folgendermassen: zunächst werden alle eingehenden Bytes ignoriert, sofern sie nicht dem ASCII-Zeichen 0x02 (Start of Text) entsprechen. Wurde jedoch ein solches Byte empfangen, dann wird ein internes Timeout von 20 ms gestartet und auf das nächste Byte gewartet. Anhand des Telegrammtyps, der unmittelbar nach dem Start-Byte übertragen wird, kann die Grösse der Telegramm-Rohdaten bestimmt werden. Es wird ein Speicher dieser Grösse reserviert und die empfangenen Bytes werden nacheinander in diesen Speicher abgelegt. Zugleich wird nach jedem empfangenen Byte sowohl die CRC neu berechnet, als auch das Timeout von 20 ms neu gestartet. Wenn nun das Timeout abläuft, bevor das nächste Byte empfangen wurde, dann werden ggf. schon empfangene Telegrammdaten einfach verworfen und der alloziierte Speicher wird wieder freigegeben. Es könnte sich z.B. um eine missglückte Übertragung oder um Störsignale handeln. 44 4 Software des Bordcomputers Abb. 4.5. Zustandsautomat des Empfangs-Tasks. Kursive Schrift bedeutet die auszuführenden Aktionen. Wenn jedoch die gesamten Rohdaten des Telegramms empfangen worden sind (deren Anzahl Bytes ja aus dem Telegrammtyp abgeleitet werden kann), wird die CRC geprüft. Da die CRC nicht nur über das Telegramm selbst, sondern auch über die nach den Rohdaten noch angehängte, vom Sender berechnete CRC berechnet wird, muss das Resultat 0 lauten, wenn alle Bytes korrekt sind. Sobald ein vollständiges Telegramm mit einer korrekten CRC empfangen wurde, wird mit Hilfe des Betriebssystems dem zentralen Bluetooth-Task Meldung erstattet. Dieser prüft dann anhand des Telegrammtyps, ob ein ACK-Telegramm generiert werden muss oder nicht. Ist jedoch die CRC verschieden von 0, so wird das Telegramm als ungültig verworfen und der zuvor alloziierte Speicher wieder freigegeben. 4.3.4 Sende-Task Der Sende-Task ist vom Prinzip her ähnlich aufgebaut wie der Empfangs-Task. Er wartet zunächst auf seiner Mailbox auf eine Nachricht vom Betriebssystem. Andere Tasks können dem SendeTask eine Message senden, wenn ein Telegramm zu übermitteln ist. Tritt dieser Fall ein, wird der Sende-Task vom Betriebssystem aufgeweckt und dieser ruft sodann einen Zustandsautomaten auf. Dieser nimmt die eigentliche Übermittlung des Telegramms vor. Abbildung 4.6 stellt den Zustandsautomaten dar. Um ein Telegramm zu übermitteln, müssen zunächst die nötigen Header-Daten für das Protokoll generiert werden und die CRC-Berechnung muss gestartet werden. Danach sendet der Zustandsautomat jeweils ein einzelnes Byte an das Bluetooth-Modul, und aktiviert sofort nach dem Senden den Sende-Interrupt. Danach wartet der Sende-Task auf einem Semaphor. Sobald der UART die Übermittlung des Bytes zum Bluetooth-Modul vollzogen hat, wird der Sende-Interrupt aufgerufen und das Semaphor gesetzt. Danach wird der Sende-Interrupt wieder deaktiviert. Durch das Setzen des Semaphors muss nun der Sende-Task vom Betriebssystem wieder aktiviert werden, und dieser kann sodann mit der Übermittlung des nächsten Bytes beginnen. 4.3 Kommunikation 45 Abb. 4.6. Zustandsautomat des Sende-Tasks Immer, wenn der Sende-Task ein Byte übermittelt hat, wird die CRC neu berechnet. Sobald die kompletten Telegrammdaten übermittelt wurden, wird die so erhaltene CRC wie gewöhnliche Rohdaten einfach am Ende des Telegramms noch angehängt und ebenfalls übermittelt. 4.3.5 Telegramm-Aufbau Die Telegramme, die bereits früher definiert worden sind, wurden noch ein wenig verbessert, damit die Handhabung einfacher wird. Zudem mussten noch einige neue Telegrammtypen erfunden werden. Der grundsätzliche Aufbau der Telegramme ist in Tabelle 4.1 dargestellt. Feld Zweck Grösse [Bits] SOF Anfangs-Markierung (ASCII 0x02, Start of Text) 8 type Telegramm-Typ 8 Typabhängige Daten crc CRC Prüfsumme über das gesamte Telegramm 16 Tabelle 4.1. Aufbau der Telegramme Tabelle 4.2 gibt Auskunft über die nun bestehenden Telegrammtypen, die Richtung des Datenflusses und die Telegrammgrösse. Dabei bezeichnet der Wert in der Spalte Typ“ den Wert des type-Felds ” eines Telegramms. Die Telegramme, die Nutzdaten enthalten, sind im folgenden detailiert beschrieben. Telegramme ohne Nutzdaten bestehen nur aus der Anfangsmarkierung 0x02, dem Typ und der CRC. 46 4 Software des Bordcomputers Typ Bezeichnung Zweck BE ↔ FZ Datenbytes 0 tgrtype_pos_command Position senden → 6 1 tgrtype_start_command Fahrzeug starten → 0 2 tgrtype_turn_qr_on_command QR-Code-Sensor einschalten → 0 3 tgrtype_status_report Zustandsmeldung ← 12 4 tgrtype_code_report Gelesener Code ← 200 5 tgrtype_resend_command Code noch einmal senden → 0 6 tgrtype_ack Bestätigung ← 1 7 tgrtype_nexthop nächster Wegpunkt → 8 8 tgrtype_stop Fahrzeug stoppen → 0 Tabelle 4.2. Telegrammtypen und deren Verwendung. BE = Basiseinheit, FZ = Fahrzeug 4.3.5.1 Positions-Kommando Mit diesem Telegramm wird dem Fahrzeug von der Basiseinheit aus die Position mitgeteilt. Es ist wie in Tabelle 4.3 gezeigt aufgebaut. Im Telegramm enthalten sind die Koordinaten des Fahrzeugs, also x und y, sowie die Ausrichtung des Fahrzeugs. Feld Zweck Grösse [Bits] x Gegenwärtige x-Koordinate des Fahrzeugs in [mm] 16 y Gegenwärtige y-Koordinate des Fahrzeugs in [mm] 16 phi Ausrichtung des Fahrzeugs 16 Tabelle 4.3. Aufbau des Positions-Kommandos 4.3.5.2 Zustandsmeldung Der SR407 sendet alle 100 ms eine Zustandsmeldung an die Basiseinheit. Die Zustandsmeldung dient zum Überwachen der internen Zustände des Fahrzeugs und der Software. Der Aufbau des Telegramms ist in Tabelle 4.4 ersichtlich. Feld Zweck Grösse [Bits] cpuu CPU-Auslastung in % 1 10 8 volt Batteriespannung in vl Geschwindigkeit linkes Rad 16 vr Geschwindigkeit rechtes Rad 16 rx_count Anzahl empfangene Telegramme 16 tx_count Anzahl gesendete Telegramme 16 crc_errors Anzahl CRC-Fehler in empfangenen Telegrammen 16 V Tabelle 4.4. Aufbau der Zustandsmeldung 8 4.3 Kommunikation 47 4.3.5.3 Gelesener Code Dieses Telegramm wird vom SR407 benutzt, um den gelesenen QR-Code an die Basiseinheit zu senden. Direkt nach dem Telegrammtyp werden die ASCII-Zeichen des QR-Codes angehängt. Da das Telegramm eine feste Länge von 200 Bytes aufweisen muss, werden nach dem Ende des QR-Codes Padding-Bytes eingefügt, um auf die nötigen 200 Bytes zu kommen. Wie üblich wird am Schluss noch die CRC angehängt. Die Basiseinheit kann die Länge des enthaltenen Strings sehr einfach mit der Funktion strlen() aus der C-Standardbibliothek bestimmen, da der String auf alle Fälle nullterminiert ist. 4.3.5.4 Bestätigung Die Bestätigung wird vom SR407 gesendet, wenn der Telegrammtyp nicht tgrtype_resend_command war. Das Telegramm enthält als einziges Nutzdatenbyte den Telegrammtyp, auf den sich diese Bestätigung bezieht. D.h., auf eine Meldung des Typs 0x01 muss ein Bestätigungs-Telegramm mit 0x01 als Nutzdaten folgen; die Basiseinheit kann so einfach erkennen, ob der SR407 das vorherige Telegramm korrekt empfangen hat. Sofern ein Kommando wie Start oder Stop gesendet wurde, wertet die Basiseinheit die Bestätigungs-Telegramme aus. Sofern nicht innerhalb einer bestimmten Zeitdauer eine Bestätitung eintrifft, muss der Befehl noch einmal abgesetzt werden. Wenn die Basiseinheit einen Befehl zum erneuten Senden des QR-Codes absetzt, ist eine Bestätigung nicht erforderlich, da die Bestätigung vom SR407 implizit über das erneute Senden des QR-Codes erfolgt. Positions-Kommandos müssen nicht bestätigt werden, da sich das Fahrzeug nach dem Absetzen des Kommandos sowieso bereits wieder weiterbewegt hat und ein erneutes Senden der Position keinen Mehrwert bringt. 4.3.5.5 Nächster Wegpunkt Die Basiseinheit benutzt dieses Telegramm, um den nächsten Punkt auf dem Weg des Fahrzeugs festzulegen. Während sich das Fahrzeug auf der Strecke bewegt, werden von der Basiseinheit die einzelnen Wegpunkte, die anzufahren sind, berechnet. Sobald sich das Fahrzeug einem Wegpunkt nähert, so wird umgehend mit dem in Tabelle 4.5 ersichtlichen Telegramm der nächste Wegpunkt an den SR407 gemeldet. Feld Zweck Grösse [Bits] x x-Koordinate [mm] 16 y 16 speed y-Koordinate [mm] 1 Drehzahl min phi Winkel am Zielpunkt [◦ ] 16 16 Tabelle 4.5. Aufbau des Befehls für nächsten Wegpunkt 5 Software der Basiseinheit 5.1 Übersicht In Abbildung 5.1 ist die Hauptaufgabe dieser als Argus-Tower bezeichneten Software dargestellt. Abb. 5.1. Datenfluss der Argus-tower Anwendung Mit Hilfe der Kamera wird das sich bewegende Fahrzeug detektiert; auf dem Linux-Rechner wird mit Hilfe der Argus-tower Software anhand des Kamerabildes die Fahrzeugposition ermittelt und dem Fahrzeug via Bluetooth mitgeteilt. 5.2 Struktureller Aufbau der Software Abbildung 5.2 zeigt ein vereinfachtes Klassendiagramm der gesamten Argus-tower Software. Das vollständige Klassendiagramm ist auf der CD enthalten – siehe hierzu Anhang G auf Seite 139. 5.2.1 BluetoothModule Das Bluetooth-Modul ist für die Kommunikation mit dem Fahrzeug zuständig. Es implementiert die Bluetooth-Schnittstelle gemäss Abschnitt 4.3.5 auf Seite 45 und wird für die Steuerung der einzenlen Funktionen des Fahrzeugs benötigt. 50 5 Software der Basiseinheit Abb. 5.2. Klassendiagramm der Argus-Tower Anwendung 5.2.2 BusinessLogic Die BusinessLogic ist dafür zuständig, die einzelnen Module miteinander zu verbinden. Es handelt sich hierbei um einen Zustandsautomaten; über das UserInterface kann zwischen den vier Zuständen CameraConfig, WarpConfig, ColorConfig und Tracking hin- und her gewechselt werden. Je nach Zustand werden vom Zustandsautomaten andere Signals an das UserInterface übergeben. In den Konfigurations-Zuständen sind dies lediglich verschiedene Videostreams. Im Trackingstate werden nebst den Videostreams auch die Statusmeldungen des Fahrzeugs und der BusinessLogic selbst an das UserInterface weitergeleitet. In diesem Zustand werden auch die Koordinaten des Fahrzeugs berechnet, die Wegfindung mit Hilfe des vorprogrammierten Wegs durchgeführt und die Daten an das Fahrzeug übermittelt. 5.2 Struktureller Aufbau der Software 51 Nebst dem Zustandsautomaten enthält die BusinessLogic eine Klasse Course für die Wegfindung, die die Verschiedenen Wegpunkte das Fahrzeugs festlegt. Diese werden beim Starten des Programms aus einer Textdatei mit Hilfe des CourseFileAccess ausgelesen, wodurch es möglich ist, den Weg ohne Anpassungen am Code festzulegen und jederzeit zu ändern. 5.2.3 UserInterface Die Software verfügt über eine graphische Benutzeroberfläche. Diese basiert auf dem Qt-Framework [6]. Dieses GUI ist in Abbildung 5.3 dargestellt und verfügt über vier verschiedene Eingabemasken: 1. Eingabemaske in Teilbild (a): Hier kann die Kamera kalibriert werden bezügllich Weissabgleich, Farbwiedergabe, Farbtemperatur und Kontrast. 2. Eingabemaske in Teilbild (b): Hier werden die vier zur Entzerrung nötigen Referenzpunkte eingegeben. 3. Eingabemaske in Teilbild (c): In dieser Eingabemaske müssen die beiden Farbmarkierungen definiert werden. 4. Eingabemaske in Teilbild (d): In dieser Ansicht ist das aktuelle Kamerabild ersichtlich, sowie ein Modellbild, wo die detektierte Position des Fahrzeuges eingezeichnet wird. Diese TrackingAnsicht ist in Abbildung 5.4 separat dargestellt. (a) Kalibrierung der Kamera (b) Eingabe der Referenzpunkte (c) Einstellen der Farbmarkierungen (d) Tracking Abb. 5.3. Ansicht der verschiedenen Eingabemasken des GUI Für die Bedienung des GUI sei auf Kapitel 8 ab Seite 67 verwiesen. 52 5 Software der Basiseinheit Abb. 5.4. Tracking-Bildschirm im Detail Die Tracking-Ansicht in Abbildung 5.4 wird laufend neu gezeichnet. In dieser Ansicht werden, während das Fahrzeug fährt, die anzufahrenden Wegpunkte eingezeichnet, sowie die aktuelle, vom System errechnete Position des Fahrzeugs und dessen Winkel. 5.3 VideoModule Das Video-Modul ist für den Zugriff auf die Kamera sowie die Erkennung und Lokalisierung des Fahrzeugs zuständig. Um dies zu realisieren, wird die OpenSource Library OpenCV verwendet [13], die ein breites Spektrum an Bildverarbeitungsmöglichkeiten bietet. 5.3.1 Lokalisierung des Fahrzeugs In einem ersten Schritt müssen die Verzerrung des Kamerabildes sowie HSV-Farbbereiche der beiden Farbmarkierungen definiert werden. Dies erkennt man in Abbildung 5.5 Teilbild (a) bzw. (b). 5.3 VideoModule (a) Originalbild (c) Erkanntes hellgrünes Objekt 53 (b) Entzerrtes Bild (d) Erkanntes gelbes Objekt Abb. 5.5. Entzerrung des Kamerabilds Aus dem entzerrten Bild können Schwellwert-Bilder erzeugt werden, auf denen die Position der einzelnen Markierungen gut ersichtlich ist. Die Schwellwert-Bilder werden jeweils auf die grüne bzw. gelbe Farbmarkierung eingestellt, wie dies in Abbildung 5.5 Teilbild (c) und (d) ersichtlich ist. Über die Flächenmomente der beiden Schwellwert-Bilder können nun die Koordinaten der beiden Punkte berechnet werden. Da diese Markierungspunkte jedoch nicht auf der Ebene liegen, die verzerrt wurde, sondern ca. 10 cm erhöht aufgrund der Fahrzeughöhe, müssen diese Koordinaten noch korrigiert werden. Vereinfacht lässt sich die Kamera-Ansicht wie in Abbildung 5.6 darstellen. Aus Sicht der Kamera befindet sich das Fahrzeug bei der scheinbaren Position x′ . Sind jedoch die Abb. 5.6. Strahlensatz zur Berechnung der realen Koordinaten Höhe des Fahrzeugs hm und die Höhe des Kamerastativs hk bekannt, dann kann mit Hilfe des 54 5 Software der Basiseinheit Strahlensatzes die reale Position x des Fahrzeugs mit x= x ′ · hm hk berechnet werden. Die Kamera steht jedoch nicht im Ursprung, sondern bei den Koordinaten xk und yk . Somit sind hm · (xk − x′ ) + x′ hk hm y= · (yk − y ′ ) + y ′ hk x= die realen Koordinaten des Fahrzeugs. Zuletzt muss noch der Winkel ϕ des Fahrzeugs berechnet werden. Mit den Abkürzungen xd = xm2 − xm1 yd = ym2 − ym2 wobei die Indizes m1 bzw. m2 sich auf die Farbmarkierung 1 bzw. Farbmarkierung 2 beziehen, kann ϕ mit arccos xd ϕ= p 2 xd 6= yd 6= 0 xd + yd2 bestimmt werden. 5.4 WebAccess Das WebAccess-Modul besteht aus zwei Komponenten, der ArgusApp und dem QRCode. Beide setzen für die Web-Kommunikation auf die OpenSource Library cURL [10]. 5.4.0.1 ArgusApp Die ArgusApp stellt statische, asynchrone Funktionen zur Verfügung, die den Status der ArgusWebapplikation verändern können – siehe auch Kapitel 6 auf Seite 55. Dies ermöglichest dem Argus-Tower, Informationen wie den Start- bzw. Stop-Befehl und die Garagennummer an die Webapplikation zu übermitteln. 5.4.0.2 QRCode QRCode stellt im Gegensatz zu ArgusApp eine einzige blockierende Funktion zur Verfügung. Diese wartet, bis der Inhalt der Webseite ausgelesen werden konnte. Benutzt wird diese Funktion ausschliesslich dann, wenn die StateMachine eine URL vom Fahrzeug erhalten hat. 6 Smartphone-App 6.1 Beschreibung Um den Zuschauer bei der Präsentation des Fahrzeuges mit einzubeziehen, wurde eine Webapplikation entwickelt. Der Beobachter hat die Möglichkeit, jederzeit den Status des Fahrzeuges, die Zeitdauer die das Fahrzeug bereits auf dem Parcours gebraucht hat, sowie die Garagennummer abzufragen. 6.2 Aufruf der Webapplikation Die Applikation kann über den Link http://team8.bontekoe.ch/argus_app, über den Shortlink http://goo.gl/LuVzc oder über den dafür angefertigten, in Abbildung 6.1 gezeigten QR-Code aufgerufen werden. Der QR-Code wird gut sichtbar positioniert, damit dieser für jeden Zuschauer frei zugänglich ist. Abb. 6.1. QR-Code zum Aufruf der Webapplikation 6.3 Aufbau der Webapplikation Die Argus-Webapplikation ist in drei funktionale Bereiche eingeteilt: Uhrzeit : Die Uhrzeit wird in Sekunden angezeigt, mit einer Auflösung von 1 ms. Status: Die Basiseinheit sendet regelmässig den aktuellen Status an die Applikation, z.B. Start, Hindernisse überwunden, QR-Code ausgelesen etc. Unterhalb der Statusanzeige ist ein Timer eingebaut, damit der Zuschauer weiss, wie lange das Fahrzeug für den Parcour benötigt. 56 6 Smartphone-App Parkplatz-Nummer: Solange die Parkplatz-Nummer nicht ausgelesen wurde, wird ein Fragezeichen dargestellt. Sobald der QR-Code erkannt wurde und die Zielgarage an das Fahrzeug übermittelt wird, wird die Garagennummer auf der Applikation angezeigt. In Abbildung 6.2 ist die Ansicht der Webapplikation, wie sie auf einem Smartphone angezeigt wird, zu sehen. (a) vor dem Start (b) Fahrzeug fährt (c) Ermittelte Garagennummer Abb. 6.2. Graphischer Aufbau der Webapplikation 6.3.1 Übermittlung der Daten Diese läuft wie folgt ab: 1. Das Fahrzeug liest den QR-Code aus und sendet diesen via Bluetooth an die Basiseinheit. 2. Die Basiseinheit sendet einen http-Get Request an den Webserver. Der Get-Request muss an die URL http://team8.bontekoe.ch/argus_app/updateData.php gesendet werden. Es können folgende drei Parameter mitgegeben werden: Start: Startsignal für den Timer. Dabei bedeutet 1 = Start, 0 = Stopp, -1 = Zurücksetzen. Der Parameter für den Get-Request lautet z.B. ?start=-1. Garage: Ausgelesene Garagennummer 1..5. Der Get-Request heisst z.B.: garage=3. Status: Aktuellen Status des Fahrzeuges, z.B. Fahrzeug hat die Hindernisse überwunden“ ” oder dergleichen. Der Get-Request heisst in diesem Falle ?status=text. 3. Die an den Webserver gesendeten Daten werden zur Weiterverarbeitung in eine Textdatei geschrieben. Die erwähnte Textdatei hat dabei folgendes Format: 1#?#Argus ist im Startfeld 6.3 Aufbau der Webapplikation 57 Die drei Spalten entsprechen dabei den oben erwähnten Get-Parametern. Da nicht zwingend alle drei Parameter in einem Get-Request vorhanden sein müssen, wird die Textdatei zunächst ausgelesen, und nur der relevante Parameter wird geändert. Anschliessend wird die Textdatei wieder gespeichert. Dieser Datenfluss wird mit Abbildung 6.3 verdeutlicht. Abb. 6.3. Datenfluss vom Fahrzeug bis zum Webserver 6.3.2 Aktualisierung der Daten in der Webapplikation Einmal in der Sekunde wird ein Refresh“ durchgeführt. Hierbei werden alle Daten aus der in ” Abschnitt 6.3.1 erwähnten Textdatei gelesen und anschliessend in eine json-Datei konvertiert. Nach der Konvertierung wird diese für die Darstellung der Daten verwendet. Abbildung 6.4 zeigt, wie dies vor sich geht. Abb. 6.4. Aktualisierung Daten im Browser durch die Webapplikation 7 Gestaltungskonzept Das Team 8 erkannte bereits zu Beginn des Moduls die Wichtigkeit des Industriedesigns und entschied sich anhand folgender Gründe, das Design professionell miteinzubeziehen und im Lösungsfindungsprozess konsequent anzuwenden [14]: • Industriedesign optimiert die Kommunikation zwischen Produkten und den Benutzern (Semantik) und die Wahrnehmung der Beziehung Mensch-Maschine (Ergonomie und HMI) • Industriedesign steigert den Gebrauchswert, die Wirtschaftlichkeit, die Umweltverträglichkeit und die Ästhetik von der Bedürfnisanalyse bis zum Recyclingkonzept der Produkte • Industriedesign verschafft Marktvorteile durch ein differenziertes Gesamterscheinungsbild • Industriedesign ermöglicht Produkterlebnisse (Ästhetik und Anmutungsqualität) • Der professionelle Beitrag von Industriedesign steigert die Produktqualitäten: – Marktakzeptanz – Ergonomische Qualität (HMI) – Ästhetische Qualität – Sozioökonomische Qualität – Kulturverträglichkeit – Wirtschaftlichkeit – Ökologische Vertretbarkeit Der Designprozess gliedert sich in die Phasen Analyse, Konzeptphase, Entwurfsphase, Realisationsphase und Markteinführung, wobei letzere nicht Bestandteil des Modules Produktentwicklung“ ist. ” Für genauere Informationen bezüglich des Designprozesses sei an dieser Stelle auf Anhang F ab Seite 137 verwiesen. 7.1 Analysephase Der Designprozess begann in Modul PREN1 mit der Analysephase. Die Aufgabenstellung musste genauestens untersucht und Unklarheiten beseitigt werden. Der Markt wurde auf bereits bestehende Lösungen untersucht, Ideen zusammengetragen sowie der Stand der Technik recherchiert. 60 7 Gestaltungskonzept 7.2 Konzpeptphase Die Konzeptphase beinhaltete die Lösungssuche der Antriebsart, der Lenkung, sowie deren optimale Kombination zu einem Fahrwerk. Die Entscheidungskriterien der Konzeptphase, welche höchsten Wert auf den Grundsatz form follows function“ (Louis H. Sullivan) legten, forderten ” eine unterstützende Form zur erfolgreichen Fahrzeugplatzierung in der Garage, auch bei ungenauer, unzureichender Positionierung des Fahrzeuges. Aus diesem Grund einigte sich das Team gemeinsam auf ein pfeilförmig angeordnetes Fahrwerk mit zwei angetriebenen Hinterrädern, welche die Lenkfunktion übernehmen, sowie ein frei schwenkendes Vorderrad. 7.3 Entwurfsphase Nachdem das Konzept und somit das Chassis für Argus bestimmt waren, konnte mit der Entwurfsphase begonnen werden. Bei allen Designentwürfen wurden folgende Gestaltungsgrundlagen beachtet [14]: • die Proportionen sollen ausgewogen und harmonisch sein • formale Harmonie und Spannung als Gegensatz erzeugen • Grenze zwischen zu viel“ und zu wenig“ ausloten ” ” • Farbe und Form wirken zusammen und bestimmen das Gesamterscheinungsbild Auf diverse Skizzen und Handrenderings folgten, mit Hilfe ausgelaserter Chassis aus Holz, mehrere Modellstudien sowie 3D Prototypen. Die Formfindung entwickelte sich weiter und endete in einer detaillierten, massstäblichen CAD Umsetzung – siehe hierzu Abbildung 7.1. 7.4 Realisierungsphase Diverse Möglichkeiten zur Realisierung der geplanten Karosserie standen zur Auswahl. Der Entscheid fiel auf das aufwendige Laminieren mit einem Glasfasergewebe, welches dem Kohlenfasergewebe sehr nah kommt um das Gesamterscheinungsbild gezielt zu prägen. Die Herstellung der Karosserie ist in ?? ab Seite ?? detailiert beschrieben, daher sei an dieser Stelle darauf verwiesen. Mit Hilfe des CAD-Renderings konnte eine Negativform erstellt werden, die anschliessend aus Ebazell 260 gefräst wurde. Die resultierende Form ist in Abbildung 7.2 Teilbild (a) ersichtlich. Die Oberfläche des Negativs wurde fein geschliffen und mit fünf Schichten Trennwachs eingestrichen. Nach einer Schicht Epoxidharz folgte das Glasfasergewebe, wie dies in Abbildung 7.2 Teilbild (b) zu sehen ist. Nach drei bis vier weiteren Gewebeschichten liess man die Form drei Tage trocknen. Bevor die Form schlussendlich auf die Bedürfnisse zuschnitten werden konnte, überzog man die glatte und formtreue Aussenfläche nochmals mit einer Schicht Glasfasergewebe, denn eine zu glatte Oberfläche erhöht die Lichtreflektion und somit das Risiko, dass Probleme mit der Bildverarbeitung auftreten könnten. Das Resultat ist in Abbildung 7.2 Teilbild (c) ersichtlich. Die Fertigungsunterlagen für die Form der Karosserie sind in Anhang D ab Seite 121 ersichtlich. In Abbildung 7.3 ist das Fahrzeug mit montierter Karosserie dargestellt. 7.4 Realisierungsphase (a) Entwurfsskizzen (b) Holzmodelle (c) Resultat als CAD-Rendering Abb. 7.1. Iterationen in der Entwurfsphase 61 62 7 Gestaltungskonzept (a) Form (b) Auskleidung (c) Fertige Karosserie Abb. 7.2. Herstellung der Karosserie 7.4 Realisierungsphase (a) Ansicht von links (b) Ansicht von rechts Abb. 7.3. Ansicht des Fahrzeugs bei montierter Karosserie 63 Teil III Anwenderhinweise 8 Inbetriebnahme 8.1 Benötigtes Material Zur Inbetriebnahme des Argus-Systems sind folgende Komponenten zusätzlich zum Fahrzeug selbst noch nötig: • handelsübliche USB-Webcam • Computer mit Linux-Betriebssystem und Bluetooth-Schnittstelle • Stativ für die Kamera • Auf dem Linux-Rechner installierte Argus-Software Zudem sollten die Fahrzeugakkus geladen sein. 8.2 Aufbau der Bluetooth-Verbindung Zunächst wird das Fahrzeug eingeschaltet. Die PWR-LED (grün) muss leuchten. Wenn zusätzlich hierzu noch die ERR-LED (rot) leuchtet, so bedeutet dies, dass die Akkuspannung zu tief ist; in diesem Falle sind die Akkus zu laden. Sofern jedoch die Akkuspannung ausreichend ist, wird umgehend die Bluetooth-Verbindung mit der Basiseinheit aufgebaut, die orange DBG-LED sollte nun blinken. 8.3 Einrichten der Kamera Bevor mit dem Fahrzeug der Parcours befahren werden kann, sind jedes Mal folgende Schritte durchzuführen: 1. Ausrichten der Kamera 2. ggf. einstellen von Helligkeit, Kontrast etc. 3. Auswahl der Referenzpunkte 4. Kontrolle der Referenzpunkte 5. Auswahl der Farbmarkierungen 68 8 Inbetriebnahme 8.3.1 Ausrichten der Kamera Auf dem Linux-Rechner muss nun in der Argus-Software das Kamerabild überprüft werden. Es sollte eine Ansicht ähnlich wie in Abbildung 8.1 anzeigen. Abb. 8.1. So sollte das Kamerabild aussehen. Unten rechts ist auf dem Startfeld noch das Fahrzeug zu erkennen. Dank des Live-Bildes ist hier noch eine Ausrichtung der Kamera möglich. Diese ist aber grundsätzlich unkritisch; lediglich die vier Referenzpunkte – auf die in Abschnitt 8.3.3 näher eingegangen wird – müssen sichtbar sein. 8.3.2 Konfiguration der Kamera Mit dem in Abbildung 8.2 ersichtlichen GUI lässt sich das Kamerabild bezüglich Weissabgleich, Kontrast, Farbtemperatur etc. konfigurieren, um eine optimale Farbwiedergabe zu erzielen. I.d.R. kann man mit den Standardwerten fortfahren; wenn jedoch wenig Umgebungslicht vorhanden ist, muss ggf. die Helligkeit und der Kontrast des Kamerabildes etwas erhöht werden. 8.3.3 Referenzpunkte Sofern sich das Kamerabild als tauglich erweist, müssen nun die vier Referenzpunkte angegeben werden. Diese sind notwendig, um eine perspektivische Transformation des Kamerabildes vorzunehmen und so die genaue Fahrzeugposition zu berechnen. Die Referenzpunkte werden einfach im Bild angeklickt; Abbildung 8.3 zeigt die Referenzpunkte. Die Reihenfolge, in der die Punkte selektiert werden, ist genau wie angegeben einzuhalten; andernfalls wird eine falsche Entzerrmatrix berechnet. Dies erkennt man aber sofort anhand des fehlerhaften Kontrollbildes. Das anhand dieser Referenzpunkte errechnete Bild wird im GUI ebenfalls angezeigt; darüber wird ein Modell der zu befahrenden Strecke abgebildet, damit kontrolliert werden kann, ob die berechneten Positionen mit der Realität übereinstimmen. In diesem Bild ist insbesondere zu kontrollieren, ob die Oberkante der Garagen stimmt und die Position der Hinteren Wand, wo der QR-Code befestigt wird. Die zu kontrollierenden Puntke sind in Abbildung 8.3 8.3 Einrichten der Kamera 69 Abb. 8.2. GUI zur Konfiguration der Kamera Abb. 8.3. Die vier zu selektierenden Referenzpunkte (links) und Kontrolle (rechts) 8.3.4 Farbmarkierungen Nachdem die Referenzpunkte ausgewählt sind, kann mit der Angabe der Farben für die Erkennung der Farbmarkierungen fortgefahren werden. Das zugehörige GUI ist in Abbildung 8.4 ersichtlich. Das Fahrzeug ist derart auf der Startfläche zu platzieren, dass beide Farbmarkierungen im entzerrten Kamerabild zu sehen sind. Danach muss zuerst Farbe 1 ausgewählt werden. Hierzu klickt man zunächst bei Color one“ auf Pick color“ – Abbildung 8.4 markiert mit 1“ – und wählt im ” ” ” Kamerabild auf den grünen Farbpunkt aus. Im obereb Bereich – markiert mit 2“ – kann kontrolliert ” werden, ob die Farbe sauber erkannt wird. Es darf nur der grüne Farbpunkt hervorgehoben werden; alle anderen Farben müssen Schwarz sein. Sofern die Farbe nicht akkurat erkannt wird und daher 70 8 Inbetriebnahme noch andere, störende Pixel sichtbar sind, kann der Vorgang einfach noch einmal wiederholt werden (Farbe erneut selektieren) oder es kann händisch an den Farbreglern optimiert werden. Abb. 8.4. Auswahl der Farben für die Farbmarkierungen Nach der Selektierung der grünen Farbe wird nun genau gleich verfahren für die gelbe Farbe. Man klickt also bei Color two“ auf Pick color“ und wählt dann im rechten Kamerabild den gelben ” ” Farbpunkt aus. Auch hier muss wieder kontrolliert werden, dass die Farbe sauber erkannt wurde. Es ist wichtig, dass als Farbe 1 diejenige Farbe der hinteren Markierung angegeben wird (grün) und für Farbe 2 diejenige Farbe der vorderen Markierung. Werden die beiden Farben vertauscht, dann wird das Fahrzeug immer in die entgegengesetzte Richtung fahren und kann so schlimmstenfalls mit Gegenständen kollidieren und diese beschädigen bzw. selber beschädigt werden. 8.3.5 Tracking Nachdem die Kamera kalibriert ist und die Referenzpunkte und die Farben ausgewählt sind, kann in den Modus Tracking“ geschaltet werden. Hier wird mit einem grünen Punkt stets die aktuelle ” Ausrichtung und Position des Fahrzeugs angegeben, während ein blauber Punkt den anzufahrenden Zielpunkt markiert. Das Tracking-GUI ist in Abbildung 8.5 zu sehen. Es ist unbedingt zu prüfen, ob a) die Position des Fahrzeugs augenscheinlich korrekt ist b) die Ausrichtung des Fahrzeugs auf dem Tracking-Bildschirm mit der realen Ausrichtung des Fahrzeugs übereinstimmt. 8.4 Start des Fahrzeugs Nachdem die in den vorhergehenden Abschnitten beschriebenen Vorbereitungen erfolgreich durchgeführt wurden, kann das Fahrzeug gestartet werden. Dazu klickt man lediglich auf die Schaltfläche 8.4 Start des Fahrzeugs 71 Abb. 8.5. Ansicht des Tracking-GUI START!“. Sofern die Akkus des Fahrzeugs auf eine noch ausreichend hohe Spannung geladen sind, ” fährt das Fahrzeug unverzüglich los. Auf dem Tracking-Bildschirm kann jederzeit die gegenwärtige Position sowie der nächste anzufahrende Wegpunkt eingesehen werden. Im rechten Teil des Fensters sind zudem noch einige hilfreiche Anzeigen. Der Reihe nach (von oben nach unten) werden laufend folgende Werte angezeigt: • x- und y-Position des Fahrzeugs in [mm], bezogen auf die linke obere Ecke des Parcours • Ausrichtung des Fahrzeugs (Winkel) in [◦ ] • CPU-Auslastung des Fahrzeug-Bordcomputers in [%] • Akkuspannung in [V] • Anzahl vom Fahrzeug empfangener Telegramme • Anzahl vom Fahrzeug gesendeter Telegramme • Geschwindigkeit des linken Rades • Geschwindigkeit des rechten Rades • Anzahl der Telegramme mit CRC-Fehlern • Status der Bluetooth-Verbindung • Nummer der anzufahrenden Garage • vom QR-Code ausgelesener URL All diese Werte werden im Intervall von 100 ms aktualisiert. Sofern das Fahrzeug nach dem Klick auf START!“ nicht losfährt, liegt möglicherweise eine Störung ” des Systems vor, welche gemäss Kapitel 9 zu beheben ist. 9 Störungsbehebung Das Argus-System wurde sehr sorgfältig in vielen Durchläufen getestet und beinhaltet für viele Szenarios eine Fehlerbehandlung. Dennoch kann es nicht ausgeschlossen werden, dass Störungen auftreten. Mögliche Ursachen und fehlerbehebende Massnahmen sind in Tabelle 9.1 ersichtlich. Fehlerbild Ursache Massnahme(n) Keine Reaktion beim Einschalten Sicherung defekt Sicherung prüfen und ggf. ersetzen Akkus nicht eingesetzt Akkus einsetzen Akkus vollkommen entladen Akkus laden Fehler im Motortreiber Fahrzeug ausschalten und wieder einschalten Unterspannung Akkus laden, bis die Spannung >13.5 V ist Motortreiber defekt SR407-Platine muss repariert werden (ersetzen der Motortreber; siehe Stückliste auf Seite 136 in Anhang E OTW-LED (rot) leuchtet Motortreiber überhitzt Fahrzeug ausschalten und Treiber abkühlen lassen QR-Code wird nicht erkannt Sensor schlecht ausgerichtet Den Sensor so ausrichten, dass der grün leuchtende Balken beim Lesen des Codes ungefähr in der Mitte ist zu grosse Distanz zum Code Distanz verkleinern zu kleine Distanz zum Code Distanz vergrössern Bluetooth-Verbindung schlägt fehl Hardwarefehler Reset-Taster auf dem Fahrzeug betätigen Bluetooth-Verbindung schlägt fehl Fehler in Software ERR-LED (rot) leuchtet Fortsetzung auf nächster Seite der PC- Software neu starten 74 9 Störungsbehebung Fehlerbild Ursache Massnahme(n) Farbarkierungen werden nicht erkannt Umgebung ist zu dunkel Für ausreichende Beleuchtung sorgen Umgebungslicht verfälscht Farben Für anderes Umgebungslicht (vorteilhaft Tageslicht) sorgen Kamera briert falsch kali- Kamera kalibrieren Farbmarkierungen falsch kalibriert Farbmarkierungen erneut kalibrieren die Farbmarkierungen bei der Kalibrierung vertauscht Kalibrierung erneut durchführen Fahrzeug erreicht Sollpositionen ungenau Referenzpunkte ungenau Kalibrierung erneut durchführen Schlupf der Räder Räder prüfen oder anderen Untergrund verwenden Fahrzeug fährt falsche Richtung in Tabelle 9.1: Mögliche Störungen und Massnahmen zur Behebung Teil IV Marketing 10 Messestand 10.1 Konzept Das Ziel des Messestandes ist, den Nutzen, der durch die Eigenschaften • Präzision durch Bildverarbeitung – Kamera – QR-Sensor • Remote Control via Bluetooth • Leistungsstark dank zweier Motoren • 360◦ Drehung möglich • Leicht durch effiziente Materialnutzung entsteht, zu kommunizieren. Das von der Gruppe vorgeschlagene und in der Dokumentation bereits erwähnte Anwendungsgebiet, das Flughafenrollfeld, soll dem Messebesucher nahe gebracht werden, aber auch das Potential bewahren, dass der Betrachter die Technologie ebenfalls in anderen Gebieten sich vorstellen kann. Der Messestandbesucher soll im Allgemeinem das Produkt erfahren können. Da das Team 8 nicht der einzige Austeller ist, wird versucht, sich vom Auftreten anderer zu differenzieren. Dem Besucher soll etwas geboten werden, anstatt das man ihn mit Informationen bedrängt. Deshalb wird folgendes Konzept verfolgt: Auf dem Ausstellungstisch (180 cm × 70 cm) wird eine Szenerie aufgebaut, in welcher ein vermeidliches Modell (nur Hülle), ein Flugzeug aus einem Hangar zieht. Das Tor ist nur soweit geöffnet, dass die Spitze des Flugzeuges erkennbar ist. Der Hangar selber versinkt visuell im Posterhintergrund. Das Material des Hangars ist leicht transparent um mit der Beleuchtung eine futuristische Atmosphäre und einen Eye-Catcher zu erzeugen. Die Poster werden in den Hintergrund integriert und die Flyer auf dem Tisch ausgelegt, der die Landschaft vom Poster und das Rollfeld wiederspiegelt. Um den Stand attraktiv für den Besucher zu gestalten und sich von anderen Gruppen zu differenzieren, wird die Möglichkeit geboten, das funktionstüchtige Modell während der Vorführungspausen auf einem Parcours zu fahren. Die entsprechende Software wurde bereits getestet. Um den Geist des Wettkampfes weiter zu leben, wird jeweils die Bestzeit mit Namen angeschrieben. Auf diese Art und Weise beschäftigt sich der Besucher freiwillig mit dem Produkt und bekommt einen Eindruck von der Steuerung eines realen Mobiles durch Datenübertragung auf einen Rechner. Der eine Nutzen, Steigerung der Sicherheit durch zentrale Steuerung, wird bereits im Spiel aufgezeigt. Weitere Besucher können auf einen zweiten Bildschirm das Geschehen beobachten. 78 10 Messestand Vorzugsweise befindet sich der Parcours ausserhalb des Zeltes. In diesem Fall ist der Durchlauf allerdings abhängig von äusseren Umständen, wie das Wetter oder unübersichtlicher Besucherverkehr. Als alternative wird der Tisch, der zur Verfügung gestellt wird, durch einen leicht erhöhten Parcours ersetzt. Die davor geplante Szenerie wird nur noch rein optisch durch die Plakatwand dargestellt. Parcours und Szenerie harmonieren miteinander. Flyer können mit Hilfe einer Box an die Stellwand angebracht werden. 10.2 Benötigte Materialien Von der Hochschule Luzern bereitgestellte Materialien sind: • Tisch 180 cm × 70 cm • Stellwand Des Weiteren werden benötigt: • Flyer (gemäss Aufgabenstellung in Anhang A ab Seite 97 • Poster • QR-Code, verlinkt auf Website • Bildschirm Materialien für die Szenerie: • Hangar – Tiefziehfolie weiss – LED-Streifen und dazugehörige Speisegeräte • Flugzeug – Styropor – Filler – Lack Weiss – Plexiglasscheiben • Argus-Attrappe – Chassis (siehe Formbau) – Räder – Styropor • Boden – MDF-Platte – Lack (Weiss/Grau) – Klebstoff – Sand, grobkörnig – Moos/Stroh 10.2 Benötigte Materialien – LED-Beleuchtung • Hintergrund – Poster – Zweiseitiges Klebeband • Spiel – Laptop – Kamera – Folie incl. Folienstift Allgemein notwendiges Material: • Kabel für LED-Stromversorgung • Netzteil • Verlängerungskabel 79 11 Produktflyer Die Aufgabenstellung beinhaltet auch die Gestaltung eines Produktflyers. Der vom Team 8 entworfene Flyer wird auf A4-Papier gedruckt und anschliessend in der Mitte gefaltet. Auf den folgenden beiden Seiten ist der Produktflyer eingefügt. 11 Produktflyer QR-Sensor kann mit einem 35.8° Winkel Codes aus einer Entfernung von bis zu 25 cm auslesen und liefert als Resultat direkt ascii strings Bordcomputer Der Bordcomputer wurde speziell für dieses System entwickelt und gebaut. Er beinhaltet eine leistungsstarke 32 Bit 160 MHz Cortex CPU Federung Das Fahrzeug ist komplett gefedert, bei einem Gesamtgewicht von nur 1.5 kg Maxon EC-Motoren Die kompakten EC-Flachmotoren von Maxon bieten ein Drehmoment von 55 mNm, bei einer Drehzahl von bis zu 4500 1/min Das Team Das interdisziplinäre Team wurde aus den Studienrichtungen Elektrotechnik, Maschinentechnik, Informatik und Wirtschaftsingenieurwesen der Hochschule Luzern Technik und Architektur zusammengestellt. Tobias Plüss, Elektrotechnik tobias.plü[email protected] Christian Bontekoe, Informatik [email protected] flexible.fast.furious 82 flexible.fast.furious Technische Details Hansueli Burri, Informatik [email protected] Silvan Demmel, Wirtschaftsingenieur [email protected] Martin Mägerlein, Wirtschaftsingenieur [email protected] Mathias Frei, Maschinentechnik [email protected] Nicolas Lehner, Maschinentechnik [email protected] Severin Frank, Maschinentechnik [email protected] Argus. Das System Beim System Argus handelt es sich um eines der aussergewöhnlichsten Konzepte an dieser Erindermesse. Als einziges der 32 Teams steuern wir unser Fahrzeug mit Hilfe einer externen Bilderkennung. Mit einer einfachen Webcam überwachen wir den gesamten Parcours. Die Erkennung und Verarbeitung der Ist- und Sollposition des Fahrzeuges, sowie die allenfalls daraus folgenden notwendigen Korrekturen der Fahrtrichtung, werden autonom von einer selbst entwickelten Bilderkennungssoftware vorgenommen. Diese Software entzerrt das aufgenommene Bild und iltert ungewollte Farbentöne heraus. Nur die grüne und gelbe Farbe wird zugelassen. Anhand der Leuchtkörper auf dem Fahrzeug mit genau diesen Farben, kann die Software zu jedem Zeitpunkt die genaue Position und Fahrtrichtung unseres Fahrzeuges erkennen und Kernkompetenzen es präzise an die gewünschten Zielpunkte navigieren. Es ist einfach, Hindernisse zu umfahren, Kursänderungen vorzunehmen oder Zielpunkte neu zu kalibrieren. Mit diesem System ist es uns möglich, mit einer hohen Geschwindigkeit den kürzesten Weg zum Ziel zu fahren. Um unser höchstes Ziel, diesen Wettbewerb mit der Bestzeit zu beenden, erreichen zu können, haben wir ausserdem einen speziellen QR-Sensor im Fahrzeug verbaut. Er arbeitet sehr schnell, indet den Code in einem Winkel von fast 40° und liefert sogleich eine URL an die zentrale Recheneinheit, was erneut wertvolle Zeit einspart. Abgerundet wird dieses System mit einer ebenfalls selbst entwickelten App, die es dem Zuschauer ermöglicht, die Zeit, die aktuelle Position, sowie die ausgelesene Garagennummer auf dem persönlichen SmartPhone abzufragen. Argus sticht besonders durch seine Mischung zwischen Schnelligkeit und Präzision heraus. Durch das ausgeklügelte Design werden diese Eigenschaften bereits auf Bilder vermittelt. Die aussergewöhnliche Wendigkeit, ein Gesamtgewicht von nur 1.5 kg und eine sehr geringe ungefederte Masse befähigen Argus, sich in jedem Terrain zurecht zu inden. Das einzigartige System bietet zudem höchste Flexibilität für verschiedenste Einsatzbereiche in unterschiedlichsten Branchen. Anwendungsgebiete 11 Produktflyer 83 Das Team sieht die Anwendung von Argus überall dort, wo sich wiederholende Prozesse von Fahrzeugen erledigen lassen und sich das Areal visuell oder durch GPS kontrollieren lässt. Ein mögliches Anwendungsbeispiel bieten Flugplätze auf der ganzen Welt. Durch autonomes Ziehen der Flugzeuge von den Gates zu den Rollbahnen und zurück können erhebliche Mengen an Kerosin sowie Personalkosten eingespart werden. Auch die Crew kann sich bereits kurz nach der Landung mit administrativen Aufgaben beschäftigen, was zu einer Verkürzung der Gesamtarbeitszeit führt. Weiter kann der komplette Bodenverkehr zentral überwacht und gesteuert werden. Sicherheitsrisiken durch menschliches Versagen werden damit auf ein Minimum reduziert. Einsatzmöglichkeiten in Logistikzentren oder Ersatzteillagern sehen wir ebenfalls als realistisch an. Wo liegt ihr Anwendungsgebiet? flexible.fast.furious flexible.fast.furious Teil V Schlussdiskussion 12 Entwicklungs- und Materialkosten Das gesamte Konzept konnte dank präziser Planung und selbst angefertigten Teilen mit dem beschränkten Budget von CHF 600.- finanziert werden. Dabei fielen effektive Kosten von CHF 545.85 an. Bereits vorhandene oder gesponserte Produkte wurden mit einem fiktiven Betrag von insgesamt CHF 44.- in die Kostenrechnung mit einbezogen. Es entstanden schlussendlich Kosten in der Höhe von CHF 589.95. Die detaillierte Kostenrechnung ist Tabelle 12.1 zu entnehmen. Bezeichnung Menge Kosten [CHF] Sensor LV3000 1 120.00 Mikroprozessor 1 12.00 Buetooth-Modul 0 25.00 Hühnerfutter (Elektronik) 1 10.00 Logitech Webcam 1 5.00 Leiterplatte SR407 1 60.00 USB-Verlängerungskabel 3 m 1 13.00 Kugellager 10 10.10 Zahnräder 6 18.20 LiPo-Akkumulatoren 4 8.00 Drehgeber 2 6.00 Stativ für Kamera 1 5.65 Material und Herstellung Chassis 1 100.00 Federn 4 22.95 EC-Flachmotoren 2 120.00 Ballonreifen 1 13.95 Material für Karosserie 1 40.00 Total - 589.85 Tabelle 12.1. Kostenabrechnung Die Anwesenheit aller Teammitglieder an den offiziell dafür vorgesehenen Zeiten wurde stets erwartet, sodass diese Zeit genutzt und ausgeschöpft wurde. Zusammenfassend kann gesagt werden, dass die 88 12 Entwicklungs- und Materialkosten Teammitglieder die vorgesehenen 180 Stunden weitgehend für den Erfolg dieses Projektes investiert haben. Einzelne Disziplinen, welche im Vergleich untervertreten waren, arbeiteten auch einige Stunden über diese Anzahl hinaus. 13 Erfahrungen Durch die interdisziplinäre Zusammenstellung des Projektteams sowie die fordernde Aufgabenstellung bot dieses Produktentwicklungsmodul sämtlichen Fachdisziplinen diverse Gelegenheiten, Erfahrungen zu sammeln und sich individuell weiterzuentwickeln. Die Kommunikation der Teammitglieder untereinander war zu Beginn fordernd, so gab es diesbezüglich unterschiedlichste Meinungen, die weit auseinander gingen. Weiter konnte das Zusammenspiel und die Abhängigkeit der Disziplinen bei einer Produktentwicklung hautnah erlebt werden. Es musste oft Rücksicht genommen werden, Kompromisse waren in manchen Situationen unumgänglich. Das Team meisterte sämtliche Hürden mit Bravour und kann schlussendlich ein gelungenes und vor Allem funktionsfähiges System präsentieren, welches die externen Anforderungen erfüllt, die internen sogar übertrifft. Es darf gesagt werden, dass das vorgelegte System durch seine Eigenheit heraussticht und für Problemstellungen potenzieller Kunden in verschiedenen Märkten mit vernünftigem Aufwand modifiziert und erweitert werden kann. Angemessene Kommunikation, unermüdlicher Einsatz der Studierenden sowie die Rücksichtnahme auf andere Disziplinen waren die massgeblichen Faktoren des erfolgreich entwickelten Systems. 14 Ausblick Das einzige bestehende relevante Risiko für die erfolgreiche Präsentation des Systems an der Erfindermesse vom 3. Juli 2013 sind die dort herrschenden, unvorhersehbaren Lichtverhältnisse. Die Kamera muss die beiden Farbflächen beim gesamten Durchlauf des Parcours eindeutig identifizieren können. Dabei muss die Farbe vom Start bis zum Ziel etwa gleich bleiben, ansonsten kann das Fahrzeug nicht mehr überwacht und gesteuert werden. Sämtliche Möglichkeiten zur Minimierung dieses Risikos wurden geprüft und umgesetzt. Die Farbflächen werden mit LEDs hinterleuchtet, um die Helligkeit der Farbe auch an schlecht beleuchteten Stellen des Parcours konstant zu halten. Die Form der Farbflächen wurde bewusst kugelförmig gewählt, sodass allfälliges Scheinwerferlicht nur zu einem kleinen Prozentsatz auf die Linse der Kamera reflektiert werden kann. Die Oberflächenstruktur der Farbflächen sowie des gesamten Fahrzeugs sind rau, damit das herrschende Licht der künstlichen Beleuchtung in verschiedene Richtungen gebrochen und die Kamera nicht geblendet und somit blind gemacht wird. 15 Fazit Die Projektmodule Produktentwicklung 1 und 2 waren für die fachliche und persönliche Entwicklung aller Teammitglieder äusserst wertvoll. Die beinhaltete praktische Umsetzung des erarbeiteten Konzepts wurde sehr geschätzt. Neben den vielen immens wichtigen Erfahrungen hatte das Team speziell in der Realisierungsphase viel Spass zusammen erlebt. Teilerfolge wurden frenetisch gefeiert, Testfahrten inmitten von langsamen oder nicht funktionierenden Systemen der Mitstudierenden genüsslich zelebriert. Das Team ist stolz auf die erbrachte Leistung und hofft auf eine gelungene Erfindermesse und somit einen erfolgreichen Abschluss des Projekt Argus. Teil VI Anhang A Aufgabenstellung Auf den folgenden Seiten ist die originale Aufgabenstellung PREN2“ eingefügt. ” 98 A Aufgabenstellung Projektmodul Produktentwicklung PREN 12 / 13 Aufgabenstellung PREN 2 Frühlingssemester 2013 20. Februar 2013 Adrian Omlin Autonomes Erkundungsgerät 1 2 3 4 4.1 4.2 4.3 5 Einleitung .................................................................................................................................... 2 Aufgabe ....................................................................................................................................... 2 Randbedingungen ........................................................................................................................ 2 Abschlusspräsentation, Erfindermesse und Wettbewerb............................................................. 2 Erfindermesse ........................................................................................................................... 2 Wettbewerb .............................................................................................................................. 3 Wettbewerbskriterien ............................................................................................................... 3 Zulassung Kompetenznachweis und Bewertung PREN 2 ........................................................... 4 Modulverantwortlicher: Ernst Lüthi Fachliche Begleitung: De Angelis Marco Dersch Ulrich Habegger Jürg Heinze Franziska Imboden Christoph Iseli Martin Jud Martin Klaper Martin Koller Thomas Lang Udo Lüthi Ernst Mettler Rolf Omlin Adrian Thalmann Markus Vogel Martin Zepf Günther Seite 1 / 5 A Aufgabenstellung 1 Einleitung Das Projektmodul Produktenwicklung PREN 2 baut auf PREN 1 auf. Sie beweisen in PREN 2 die Tauglichkeit Ihres in PREN 1 ausgearbeiteten Konzepts mit der Realisierung des Systems und der erfolgreichen Teilnahme an der Erfindermesse mit Wettbewerb. Die für PREN 1 formulierte Aufgabenstellung sowie die Dokumente „FAQ_PREN1_HS12“ und „Spezifikation PREN QRCode Abfrage“ gelten weiterhin. 2 Aufgabe Sie bauen basierend auf dem in PREN 1 ausgearbeiteten Konzept ein autonomes Erkundungsgerät, das nach erfolgtem Startbefehl einen QR-Code auffindet und einliest, mit der erhaltenen Information per Internet eine Unterstandnummer abholt und anschliessend im oder auf dem richtigen Untersand parkiert. Falls als notwendig erachtet, kann eine stationäre Steuerung eingesetzt werden. Genauere Angaben sind in der Aufgabenstellung von PREN 1 zu finden. Ihre Entwicklung werden Sie an einer im Kompetenznachweis integrierten Erfindermesse präsentieren. An dieser Erfindermesse wird auch ein Wettbewerb ausgetragen, an der Ihr Gerät die oben beschriebene Aufgabe in möglichst kurzer Zeit erfüllen soll. Weiter soll ein Unternehmer so von Ihrer Entwicklung zu überzeugt werden, dass er Ihnen diese nach dem Wettbewerb abkauft und zu einem Produkt weiterentwickelt. Der Messeauftritt, das Design Ihres Gerätes, der Internetauftritt und Ihr professionelles Verhalten sind wichtige Überzeugungsfaktoren und daher Bestandteil der Aufgabe. Um den Besucher der Erfindermesse von der eigenen Lösung zu überzeugen, muss der Auftritt an der Erfindermesse geplant und organisiert werden. Der Messestand ist zu gestalten und aufzubauen. Weiter sind ein Poster und ein Produktflyer zu gestalten. Das Poster beschreibt Ihre Entwicklung. Der Flyer im Umfang einer A4-Seite zeigt, welchen Mehrwert Ihre Entwicklung dem Kunden bietet. Für Poster und Flyer wird je ein Template abgegeben. Ihr Internetauftritt soll weiterhin über Ihr Projekt informieren, den aktuellen Entwicklungsstand darstellen und Interessenten für Ihre Entwicklung begeistern. Er ist wöchentlich zu aktualisieren. Die Arbeit muss dokumentiert werden. 3 Randbedingungen Die in PREN1 gesetzten Rahmenbedingungen betreffend System, Parcours, Material und Kosten gelten weiterhin. 4 Abschlusspräsentation, Erfindermesse und Wettbewerb Die Abschlusspräsentation besteht aus zwei Teilen. Im ersten Teil präsentiert jedes Team ähnlich wie in PREN 1 seine Projektresultate den Experten und Fachdozenten. Anschliessend sind Fragen zu beantworten. Das Gestaltungskonzept für den Messestand und den Flyer soll in dieser Präsentation ebenfalls vorgestellt werden (maximal ein Viertel der Präsentationszeit). Im zweiten Teil stellen Sie Ihr Gerät und Ihre Entwicklung an einer Erfindermesse aus. Mit einer erfolgreichen Teilnahme am Wettbewerb wird der Funktionsnachweis erbracht. 4.1 Erfindermesse Die Erfindermesse wird in einem Zelt zwischen Trakt II und Trakt III der HSLU T&A stattfinden. Jedem Team steht ein 180 cm x 80 cm grosser Tisch zur Verfügung. Hinter dem Tisch können an Stellwänden das Poster, Plakate oder ähnliches befestigt werden. Die voraussichtliche Raumaufteilung ist in Abbildung 1 dargestellt. Seite 2 / 5 99 A Aufgabenstellung 24 32 28 27 31 24 22 23 20 19 16 30 15 29 26 2 3 14 25 18 21 17 1 100 Abbildung 1: Raumaufteilung im Zelt Kompetenznachweis PREN 2 FS13 (Quelle: E. Lüthi) Sie legen den Fokus auf einen professionellen Auftritt und überzeugen Interessenten von Ihrer Entwicklung. 4.2 Wettbewerb Der Wettbewerb wird voraussichtlich alternierend auf zwei benachbarten Bahnen ausgetragen. Ein Team absolviert den Parcours, während sich das nächste Team auf der andern Bahn einrichten kann. Pro Team sind zwei Durchgänge kurz nacheinander vorgesehen. Der erfolgreichere der beiden Durchgänge wird gewertet. Falls nötig, ist ein Akkuwechsel zwischen den Durchgängen möglich. 4.3 Wettbewerbskriterien Für die Bewertung des Messeauftritts und des Wettbewerbs sind zwanzig Punkte vorgesehen, was 20 % der erreichbaren Gesamtpunktzahl entspricht. Zehn Punkte sind für den Messeauftritt, das Design des Geräts, das Poster und den Flyer vorgesehen. Zehn Punkte sind für die erfolgreiche und möglichst schnelle Absolvierung des Parcours bestimmt. Sie sind folgendermassen aufgeteilt: Das Team mit der kürzesten Gesamtzeit erhält zehn Punkte, das Team mit der längsten Gesamtzeit bekommt null Punkte. Dazwischen erfolgt die Punktezuteilung linear. Die Gesamtzeit setzt sich aus der gemessenen Zeit zur Erfüllung der Aufgabe und aus Strafzeiten zusammen. Folgende Strafzeiten werden gegebenenfalls zur gemessenen Zeit hinzuaddiert: Die Nummer des Unterstands wird falsch oder gar nicht angezeigt: 10 s Das Gerät parkiert vollständig im oder auf dem falschen Unterstand: 20 s Das Gerät parkiert nicht vollständig im Unterstand (oder es steht nicht genau auf dem Unterstand): Falls weniger als ein Viertel aus dem/über den Untersand herausragt: Falls mehr als ein Viertel aus dem/über den Unterstand herausragt: Falls das Gerät ausserhalb des Unterstandes parkiert, wird der Durchgang nicht gewertet. (Ausnahme: hinten herausfahren, siehe unten) 5s 20 s - Das Gerät fährt hinten aus dem Unterstand heraus: 20 s Die Strafzeiten werden kumuliert. Wird beispielsweise der falsche Unterstand angezeigt und im falschen Unterstand parkiert, werden 30 s Strafzeit berechnet. (Auch wenn Anzeige und Unterstand Seite 3 / 5 A Aufgabenstellung übereinstimmen.) Ragt das Gerät zusätzlich noch knapp einen Viertel der Gerätelänge aus dem Unterstand heraus, sind es 35 s Strafzeit. Falls das Gerät auf dem Unterstand landet, ist die Standfläche des Geräts massgebend. Wird nach dem Start das Gerät berührt oder wird sonst irgendwie eingegriffen, wird der Durchgang nicht gewertet. Wird der Unterstand nach drei Minuten nicht erreicht, wird der Durchgang abgebrochen und nicht gewertet. Ein nicht gewerteter Durchgang kann in der Regel nicht wiederholt werden. 5 Zulassung Kompetenznachweis und Bewertung PREN 2 Für die Zulassung zum Kompetenznachweis müssen die folgenden Punkte erfüllt sein: Detailplanung für die Entwurfs- und Realisierungsphase (Testat 1). Freitag, 08.03.13, 12:00 Uhr auf Ilias Gerät aufgebaut und für Testläufe bereit, Grobkonzept des Messeauftritts (Testat 2). Donnerstag, 02.05.13: Demonstration vor Dozententeam Freigabe des lauffähigen Systems und Projektdokumentation zu mindestens 80% abgeschlossen, Konzept Messeauftritt definitiv (Testat 3). Freitag, 24.05.13, 12:00 Uhr auf Ilias Neben der technischen Richtigkeit legen wir weiterhin unser Augenmerk auch auf die professionelle Abwicklung des Projekts. Dazu gehören unter anderem: Kontinuierliche Projektplanung mit Vergleich von Planung und Realität Risikomanagement Übereinstimmung des Gesamtfunktionsmusters mit der Anforderungsliste. Die Übereinstimmung ist zu überprüfen und zu belegen. Vollständige, verständliche und nachvollziehbare Dokumentation des realisierten Systems und der Planung des Messeauftritts. Der Aufbau der Dokumentation basiert auf den Inputs aus dem Kontextmodul 1. Seite 4 / 5 101 102 A Aufgabenstellung Für den Kompetenznachweis werden die folgenden Kriterien mit der entsprechenden Gewichtung bewertet (PREN2): Kriterien Gewichtung Teamarbeit und Arbeitsweise Zusammenarbeit / Interdisziplinarität / Arbeitsteilung / Systematik / 10 % Projektmanagement, Zeitplanung / Problemerfassung / Konfliktbewältigung / Einsatz, Initiative , Effizienz, Arbeitsmenge / Umgang mit Risiken Resultate und Ergebnisse Konzept, Innovationsgehalt / technische Machbarkeit, technische Richtigkeit, sinnvoller Einsatz von Technologien (Sensoren, Aktoren, Energieversorgung, Systemsteuerung) / Softwarearchitektur, Softwarestruktur, Schnittstellen / Funktionalität, Bedienbarkeit / 40 % Herstellbarkeit, Wirtschaftlichkeit / Einfachheit, Vollständigkeit / Zusammenspiel über die Grenzen der Disziplinen / Ausführung, Layout, Qualität, Zuverlässigkeit / Übereinstimmung mit den Produktanforderungen / Überzeugungskraft Planung des Messeauftritts Dokumentation Formales, Gestaltung, Gliederung / Integration der Disziplinen, Kohärenz / Sprache / Vollständigkeit / Abbildungen, Tabellen , Quellenangaben / 15 % Verständlichkeit, Nachvollziehbarkeit 5% Internetauftritt Präsentation Präsentation der Projektresultate vor Experten und Fachdozenten im Gruppenraum: Beginn / Schluss / Sprache / Inhalt, Gewichtung, Integration der Disziplinen 10 % / Verständlichkeit / nonverbale Aspekte / Einsatz visueller Hilfsmittel / Glaubwürdigkeit, Überzeugungskraft / Beantwortung der Fragen Messeauftritt. Gerätedesign, Flyer und Poster 10 % Funktionsnachweis vor Publikum, Wettbewerbserfolg: (Details siehe Kapitel 4.3) 10 % Wir erwarten eine Zusammenarbeit über die Grenzen der Disziplinen hinweg. Neben der Bearbeitung der Marketingaspekte steht für die angehenden Wirtschaftsingenieure das Anwenden und Vertiefen des Ingenieurwissens in der gewählten Vertiefungsrichtung im Vordergrund. Alle Mitglieder des Teams erhalten die gleiche Bewertung. In Ausnahmefällen können einzelne Teammitglieder separat bewertet werden. Wird ein Team am Kompetenznachweis mit „FX“ bewertet, erhält es die Gelegenheit zur Nachbesserung. Das kann eine Teamaufgabe sein. Alle Teammitglieder erhalten in diesem Fall nach der Nachprüfung ein „F“ oder ein „E“. Es ist auch möglich, dass jedes Teammitglied zur Nachbesserung eine individuelle Aufgabe lösen muss. Nach der Nachprüfung wird für jedes Teammitglied einzeln entschieden, ob es ein „F“ oder ein „E“ erhält. Seite 5 / 5 B Projektplan Auf der folgenden Seite ist der detailierte Terminplan für das Projekt ersichtlich. Aktivitäten Projektplan Team 8 Pren2 = offizieller Meilenstein 12.06.2013 = interner Meilenstein Aktivitäten Martin Mägerlein Mathias Frei Severin Frank Nicolas Lehner Christian Bontekoe Hansueli Burri Tobias Plüss Markus Thalmann SW B B B B B B B B B Detailplanung für die Entwurfs- und Realisierungsphase ausarbeiten und anschliessend Herr Thalmann zur Durchsicht senden Definition, was alles zu programmieren ist, modularer Aufbau bestimmen V B B B B B B B B B = Tobias im Militär 21 März 22 28 1 1 2 7 8 3 April 14 15 21 22 4 5 4 5 6 Mai 11 12 18 19 25 26 7 8 9 2 3 10 9 MST 10 16 17 23 24 30 31 Nr 12 13 14 B Projektplan 2.0 Februar Coach Feedback zu Pren1, Kick off Meeting zu Pren2 Version Monat Datum Projektbeteiligte IT ET MT Silvan Demmel Datum WI ausführungsverantwortlich entscheidet ist beteiligt wird informiert 104 V: E: B: I: Projekt 11 M1 Elektronik Hardware erstellen/zusammenfügen USB Verlängerungskabel organisieren (min. 3m) V B B CAD Pläne des Fahrwerks und allen Einzelteilen zeichnen Stativ bauen/organisieren B B Motoren für den Antrieb des Fahrzeuges organisieren Provisorium bauen, damit mit dem Programmieren der Motorensteuerung begonnen werden kann Zeitplan mit Herrn Thalmann besprechen, entgültige Abgabe Zeitplan B B B V B B B B M2 Homepage überarbeiten/Design anpassen B Fahrwerksteile herstellen (extern/intern) B B B B B B Software Programmieren, sämtliche Module fertig programmiert (IT) B Fahrzeugkomponenten zusammenbauen. Inbetriebnahme von Argus (Fahrwerk und Elektronik komplett) App für Startsignalanzeige programmieren Projektkosten dokumentieren B Logo erstellen, Farben bestimmen B B Leuchtbereiche in Form und Grösse definieren und herstellen LED Gebilde löten Karosserie Entwürfe entwickeln CAD Zeichungen erstellen, Designüberlegungen vornehmen Grobkonzept Messestand erarbeiten und dokumentieren B B B B B B B B Homepage mit neuen Bilder, Logo und neuem Stand der Dinge überarbeiten B Negativ der Karosserie fräsen lassen M3 B Software auf dem Fahrzeug implementieren/Tests durchfürhen/System zum laufen bringen/Zusammenspiel der Komponenten optimieren Gesamtfunktionsmuster montiert und für Testläufe vor dem Dozententeam einsatzbereit Dokumentation der Leuchtflächen erstellen B B Messestrand und Plakat und Flyer erstellen/planen und Plakate/Flyer ausdrucken B B B B B B B B B B Systemtests durchführen und Optimierungen vornehmen Karosserie herstellen/laminieren, Befestigung der Karosserie auf Fahrzeug entw. B B B B B B B B B B B Freigabe lauffähiges Gesamtfunktionsmuster, Projektdokumentation (80%) B B B B B B B B Systemtests abschliessen, allfällige Einstellungen dokumentieren B B B B B B B B Projektdokumentation erstellen B B B B B B B B Projektcontrolling V geplante Arbeitspakete pro Person bereits erledigte Arbeitspakete pro Person noch zu erledigende Arbeitspakete pro Person B B Dokumentation der Fahrwerksabteilung erstellen Projektplan_Team_8_V3, 12.06.2013 B V Ressourcenplanung 55 51 56 55 50 54 58 59 55 51 56 55 50 54 58 59 B 5 5 Seite 1 C Mechanische Fertigungsunterlagen 106 Gesamtansicht Aufhängung links 107 108 Aufhängung rechts Getriebeachse 1 109 110 Getriebeachse 2 Getriebeplatte links 111 112 Getriebeplatte mitte Getriebeplatte rechts 113 114 Grundplatte oben Grundplatte 115 116 Mitnehmer Querlenker 117 118 Gelenk für Vorderrad Radachse für Vorderrad 119 120 Radgabel für Vorderrad D Form für die Karosserie Das Design der Karosserie wurde anhand von diversen Design-Inspirationen entworfen, wie sie auf den folgenden beiden Seiten ersichtlich sind. 122 Design-Inspirationen Design-Inspirationen 123 124 Oben Seite 125 E Fertigungsunterlagen des Bordcomputers Auf den folgenden Seiten sind die einzelnen Fertigungsunterlagen für den Bordcomputer ersichtlich. Es handelt sich hierbei um • das Schema ab Seite 127 • den Bestückungsplan ab Seite 133 • die Stückliste ab Seite 136 1 2 3 4 5 6 7 8 128 A CON1 N1 COL1 L1 COL2 L2 TSR1-2433 100MHz/30R/3A PIL101 100MHz/30R/3A 1 PIN101 PIL102 3 VOUT PIN103 VIN PIL201 PIL202 VCC GND VBAT 3.3V power supply 1A max. PIR102 2 PIN102 PIC101 PIC102 PIC202 PIC201 COC1 C1 10u GND PIR101 COC2 C2 PIC301 PIC302 100n GND GND COR1 R1 100R PIV102 PIV101 COC3 C3 COV1 V1 HSMG-C170 100u GND GND B B Voltage regulator for hall sensors and gate drive CON2 N2 COL3 L3 TSR1-24120 12V power supply 1A max. 100MHz/30R/3A 1 PIL302 PIN201 3 VOUT PIN203 VIN 12V GND PIL301 2 PIN202 PIC402 PIC401 PIC502 PIC501 COC4 C4 100n COC5 C5 COX9 X9 1 PIX901 2 PIX902 100n CON2 PIR202 GND COR2 R2 C PIR201 GND GND C Mounting holes POVBAT0MEAS VBAT_MEAS COL4 L4 COR4 R4 0 100MHz/2000R/0.15A PIR302 COR3 R3 PIR301 GND 47k 4k7 PIC602 PIC601 VCC COC6 C6 PIL402 100n PIL401 PIR401 3.3V analog power supply 150 mA max. COMH1 MH1 VDDA PIR402 COMH2 MH2 PIMH100 PIMH200 M3/PAD M3/PAD COMH3 MH3 COMH4 MH4 PIR502 COR5 R5 PIR501 GND 100R PIMH300 GND 2.5V analog reference voltage 4 mA max. VREF PIN301 PIN302 Battery connector CON3 N3 LM4040AIM3-2.5 PIC902 PIC901 PIMH400 M3/PAD PIC701 PIC702 COC7 C7 10u PIC802 PIC801 M3/PAD COC8 C8 100n COC9 C9 100n GND GND COX1 X1 1 2 PIX102 3 PIX103 4 PIX101 VBAT AGND AGND AGND AGND PIX104 D D 733-334 * Not assembled components PREN Argus SR407 GND Hochschule Luzern Horw, Switzerland 1 2 3 4 5 6 7 Created: 18.11.2012 plt Checked: 26.01.2013 plt Document No.: - Sheet: 1 A / 5 8 E Fertigungsunterlagen des Bordcomputers Logic and CPU supply A 1 2 3 4 5 6 7 8 COV2 V2 HSMS-C170 Status LEDs COR6 R6 100R VCC COD1A D1A Decoupling capacitors PO\OTW OTW PIC10 2 PIC10 1 COC10 C10 100n PIC1 02 PIC1 01 PIC1202 PIC1201 COC11 C11 100n PIC1302 PIC1301 COC12 C12 100n PIC1402 PIC1401 COC13 C13 100n COC14 C14 100n PIC1502 PIC1501 PIC1602 PIC1601 COC15 C15 100n 1PID101 1 2 PID102 PIR602 PIR601 PIV202 PIV201 74HC14D COC16 C16 100n PID107 PID1014 COV3 V3 HSMS-C170 A VCC PO\FAULT FAULT GND COD1B D1B 3PID103 A COR7 R7 100R 1 4 PID104 PIR701 PIR702 PIV302 PIV301 74HC14D 3 PIX203 6 PIX206 8 PIX208 10 PIX2010 12 PIX2012 14 PIX2014 16 PIX2016 18 PIX2018 20 PIX2020 5 PIX205 7 PIX207 9 PIX209 11 PIX2011 13 PIX2013 15 PIX2015 17 PIX2017 19 PIX2019 COS1 S1 VCC PIR1201 4k7 4k7 4k7 4k7 PIR902 PIR10 2 PIR1 02 PIR1202 NLTRST TRST NLTDI TDI NLSWDIO0TMS SWDIO/TMS NLSWCLK0TCK SWCLK/TCK NLSWO0TDO SWO/TDO NLRESET RESET PID206 PID201 PID2019 PID2028 PID2050 PID2075 PID2010 PID202 90 PID2090 77 PID2077 72 PID2072 76 PID2076 89 PID2089 14 PID2014 TRST TDI TMS / SWDIO TCK / SWCLK TDO / SWO RESET 94 PID2094 BOOT0 N2520-6002RB COC18 C18 COR15 R15 100n 0 * 23 PID2023 24 PID2024 25 PID2025 26 PID2026 29 PID2029 30 PID2030 31 PID2031 32 PID2032 67 PID2067 68 PID2068 69 PID2069 70 PID2070 71 PID2071 PIR1501 PIR1502 COR16 R16 0 PIR1601 PIR1602 GND COD4 D4 1 PID401 CONT 3 OUT PID403 2 GND PID402 COR18 R18 4.000 MHz GND POVBAT0MEAS VBAT_MEAS 0 * PIR1801 PIR1802 VCC GND POSENSOR0TRIG SENSOR_TRIG POSENSOR0TX SENSOR_TX POSENSOR0RX SENSOR_RX PO\SENSOR0RESET SENSOR_RESET POBEEP BEEP COR19 R19 0 PIR1902 PIR1901 GND VCC VCC C PIR20 1 Driver fault warning PIR20 2 35 PID2035 36 PID2036 37 PID2037 91 PID2091 92 PID2092 93 PID2093 95 PID2095 96 PID2096 47 PID2047 48 PID2048 51 PID2051 52 PID2052 53 PID2053 54 PID2054 PB0 PB1 PB2 / BOOT1 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 PIR2101 COR20 R20 COR21 R21 4k7 4k7 PIR2102 PID2049 PIC20 2 PIC20 1 PID2073 PIC2102 PIC2101 49 PO\FAULT FAULT Driver overtemp. warning PO\OTW OTW C20 COC20 2u2 GND VSSA PIC1902 PIC1901 VCC PID2010 PID2027 PID2074 PID209 PID2020 15 PID2015 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 PD8 PD9 PD10 PD11 PD12 PD13 PD14 PD15 81 82 83 84 PID2084 85 PID2085 86 PID2086 87 PID2087 88 PID2088 55 PID2055 56 PID2056 57 PID2057 58 PID2058 59 PID2059 60 PID2060 61 PID2061 62 PID2062 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PE8 PE9 PE10 PE11 PE12 PE13 PE14 PE15 97 98 1 PID201 2 PID202 3 PID203 4 PID204 5 PID205 38 PID2038 39 PID2039 40 PID2040 41 PID2041 42 PID2042 43 PID2043 44 PID2044 45 PID2045 46 PID2046 COD1D D1D 9PID109 POA0IDX A_IDX PID2082 PID2083 TX RX CTS RTS POA0HALL0XOR A_HALL_XOR POB0HALL0XOR B_HALL_XOR POB0HALL010OUT B_HALL_1_OUT POB0HALL020OUT B_HALL_2_OUT POB0HALL030OUT B_HALL_3_OUT PODBG0TX DBG_TX PODBG0RX DBG_RX POTEST4 TEST4 POBT0TX BT_TX POBT0RX BT_RX PO\BT0RESET BT_RESET PO\BT0CTS BT_CTS PO\BT0RFR BT_RFR PIV502 PIV501 COC17 C17 100n PIR1701 PIV602 PIV601 GND COR17 R17 100R Bluetooth module Pins 10, 13 not available when THT variant is used COV6 V6 HSMG-C170 GND POBT0TX BT_TX POBT0RX BT_RX COD3 D3 3PID303 RX 4PID304 TX PO\BT0CTS BT_CTS PO\BT0RFR BT_RFR 2PID302 RFR 5PID305 CTS PO\BT0RESET BT_RESET 7PID307 PID2098 9 VCC PID309 VCC 1 GND 6 GND PID306 10 GND PID3010 13 PID3013 GND PID301 RESET GND ARF7044A POB0IDX B_IDX POA0IDX A_IDX POTEST5 TEST5 POTEST6 TEST6 POTEST7 TEST7 PID2097 Serial debug port COX3 X3 1PIX301 2PIX302 3PIX303 NLTX TX NLRX RX C CON3 GND POTEST0 TEST0 POTEST1 TEST1 POTEST2 TEST2 POTEST3 TEST3 COD5 D5 11PID5011 T1IN 10PID5010 T2IN 12 PID5012 R1OUT 9 PID509 R2OUT PODBG0TX DBG_TX PODBG0RX DBG_RX PIC2 02 PIC2 01 1 PID501 C1+ 3 PID503 C1- AGND 16 PID5016 PIC2502 PIC2501 PIX402 COC25 C25 100n COC24 C24 100n 2 PID502 VCC V+ 14 T1OUT PID5014 7 T2OUT PID507 13 R1IN PID5013 8 R2IN PID508 4 C2+ PID504 5 C2- PID505 PIC2302 PIC2301 COC23 C23 100n PIC2602 PIC2601 COC26 C26 100n 6 V- PID506 15 GND PID5015 ADM3202ARN Beeper D1E COD1E 11 SP1 * COSP1 PID1011 QCP-03A 1 10 PID1010 GND GND GND 74HC14D D PISP101 V8 COV8 PIV703 BAT54 V7 COV7 * 2N7002 PIX4012 POBEEP BEEP PIV701 PISP102 PIV801 PIV803 * Not assembled components + D1F COD1F 13 PID1013 PIV702 1 12 PID1012 PREN Argus SR407 74HC14D GND 3 4 VCC Hochschule Luzern Horw, Switzerland GND 5 6 7 Created: 18.11.2012 plt Checked: 26.01.2013 plt Document No.: - Sheet: 2 A / 5 8 129 GND 2 PIR1401 PIR1702 PIC2402 PIC2401 68711214022 1 PIR1402 B PID2081 PIX401 PO\SENSOR0RESET SENSOR_RESET POSENSOR0TRIG SENSOR_TRIG 8 PID108 Schema D PIV401 PIC1702 PIC1701 VCC POSENSOR0TX SENSOR_TX POSENSOR0RX SENSOR_RX PIV402 COR14 R14 100R 1 VCC VCC COX4 X4 1 2 3 PIX403 4 PIX404 5 PIX405 6 PIX406 7 PIX407 8 PIX408 9 PIX409 10 PIX4010 11 PIX4011 12 PIR1301 GND Connector for LV3000 Test points: TEST0: 43 TEST1: 44 TEST2: 45 TEST3: 46 TEST4: 88 TEST5: 1 TEST6: 2 TEST7: 3 TEST8: 30 PIR1302 74HC14D COC22 C22 100n GND 6 PID106 COV5 V5 HSMD-C170 C21 COC21 2u2 GND 1 74HC14D POA0SENSE0U A_SENSE_U POA0SENSE0V A_SENSE_V POA0SENSE0W A_SENSE_W POB0SENSE0U B_SENSE_U POB0SENSE0V B_SENSE_V POB0SENSE0W B_SENSE_W POB0PWM0U B_PWM_U POB0PWM0V B_PWM_V POB0PWM0W B_PWM_W PO\A0RESET0U A_RESET_U PO\A0RESET0V A_RESET_V PO\A0RESET0W A_RESET_W PO\B0RESET0U B_RESET_U PO\B0RESET0V B_RESET_V PO\B0RESET0W B_RESET_W 16 PID2016 17 PID2017 18 PID2018 33 PID2033 34 PID2034 63 PID2063 64 PID2064 65 PID2065 66 PID2066 78 PID2078 79 PID2079 80 PID2080 7 PID207 8 PID208 9 PID209 20 4 PID404 VCC VSS VSS VSS VSS GND 10 27 74 99 GND VCAP_2 VCC PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PA8 PA9 PA10 PA11 PA12 73 PIC1802 PIC1801 100n POA0INC0A A_INC_A POA0INC0B A_INC_B POA0HALL010OUT A_HALL_1_OUT POA0HALL020OUT A_HALL_2_OUT POA0HALL030OUT A_HALL_3_OUT POTEST8 TEST8 POB0INC0A B_INC_A POB0INC0B B_INC_B POA0PWM0U A_PWM_U POA0PWM0V A_PWM_V POA0PWM0W A_PWM_W PIS102 B COC19 C19 12 PID2012 XTAL1 13 PID2013 XTAL2 VCAP_1 PIS101 NLCLK CLK 5PID105 POB0IDX B_IDX PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9 PC10 PC11 PC12 PC13 PC14 PC15 COR13 R13 100R COD1C D1C PID2021 DTSM-62K-V-B GND COV4 V4 HSMD-C170 VREF COD2 D2 STM32F407VGT6 22 4k7 VDDA 21 COR12 R12 11 19 28 50 75 100 COR11 R11 VDDA 1 PIX201 4 PIX204 PIR1 01 COR10 R10 VREF+ 2 PIX202 PIR10 1 COR9 R9 6 PIR802 COX2 X2 Manual reset PIR901 COR8 R8 VDD VDD VDD VDD VDD VDD PIR801 VBAT Debug SWD JTAG 1 2 3 4 5 6 7 8 130 VCC VCC PIR2 02 PIR2302 COR22 R22 PIR2 01 COL5 L5 1k * VCC PIR2402 COR23 R23 PIR2301 1k * PIR2401 A COR24 R24 1k * COD6B D6B NLH1A 3 H1A PID603 100MHz/2000R/0.15A POA0HALL010IN A_HALL_1_IN PIL501 PIL502 PIC2702 PIC2701 1 4 PID604 POA0HALL010OUT A_HALL_1_OUT 2 PID602 POA0HALL020OUT A_HALL_2_OUT 74HC14D COC27 C27 47n * COL6 L6 GND 100MHz/2000R/0.15A POA0HALL020IN A_HALL_2_IN PIL601 COD6A D6A NLH2A 1 H2A PID601 PIL602 PIC2802 PIC2801 1 74HC14D COC28 C28 47n * PID607 PID6014 COL7 L7 GND 100MHz/2000R/0.15A POA0HALL030IN A_HALL_3_IN PIL701 PIC2902 PIC2901 VCC COX5 X5 1 2 3 4 PIX504 5 PIX505 COD6C D6C NLH3A 5 H3A PID605 PIL702 1 6 PID606 POA0HALL030OUT A_HALL_3_OUT 74HC14D COC29 C29 47n * COD7B D7B 4PID704 5PID705 PIX501 B PIX502 Connectors for encoders left PIX503 COC69 C69 100n VCC POB0INC0A B_INC_A POB0INC0B B_INC_B POB0IDX B_IDX GND COD7A D7A 1 1PID701 2PID702 6 PID706 1 3 PID703 POA0HALL0XOR A_HALL_XOR B PID707 PID7014 74HC86D 74HC86D PIC6902 PIC6901 CON5 GND GND VCC COX6 X6 1 2 3 PIX603 4 PIX604 5 PIX605 PIX601 PIX602 right POA0INC0A A_INC_A POA0INC0B A_INC_B POA0IDX A_IDX CON5 VCC VCC PIR2502 PIR2602 COR25 R25 GND PIR2501 COL8 L8 1k * VCC PIR2702 COR26 R26 PIR2601 1k * PIR2701 COR27 R27 1k * COD6D D6D NLH1B 9 H1B PID609 100MHz/2000R/0.15A POB0HALL010IN B_HALL_1_IN PIL801 PIL802 C PIC30 2 PIC30 1 1 8 POB0HALL010OUT B_HALL_1_OUT PID608 C 74HC14D COC30 C30 47n * COL9 L9 GND 100MHz/2000R/0.15A POB0HALL020IN B_HALL_2_IN PIL901 COD6E D6E NLH2B11 H2B PIL902 PID6011 PIC3102 PIC3101 47n 1 10 POB0HALL020OUT B_HALL_2_OUT PID6010 74HC14D COC31 C31 * COL10 L10 GND 100MHz/2000R/0.15A POB0HALL030IN B_HALL_3_IN PIL1001 COD6F D6F NLH3B13 H3B PIL1002 PID6013 PIC3202 PIC3201 COC32 C32 47n * 1 12 POB0HALL030OUT B_HALL_3_OUT PID6012 74HC14D COD7D D7D 12 PID7012 13 PID7013 COD7C D7C 1 11 PID7011 9 PID709 10 74HC86D GND VCC PID7010 1 8 PID708 POB0HALL0XOR B_HALL_XOR 74HC86D C70 COC70 100n PIC7002 PIC7001 D D GND * Not assembled components PREN Argus SR407 Hochschule Luzern Horw, Switzerland 1 2 3 4 5 6 7 Created: 18.11.2012 plt Checked: 26.01.2013 plt Document No.: - Sheet: 3 A / 5 8 E Fertigungsunterlagen des Bordcomputers A 1 2 3 4 5 6 7 8 Motor A connector A POA0HALL020IN A_HALL_2_IN POA0HALL010IN A_HALL_1_IN POA0HALL030IN A_HALL_3_IN COD8 D8 5 PID805 RESET_A 14 PID8014 RESET_B 15 PID8015 RESET_C PO\A0RESET0U A_RESET_U PO\A0RESET0V A_RESET_V PO\A0RESET0W A_RESET_W PO\FAULT FAULT PO\OTW OTW 3 PID803 POA0PWM0U A_PWM_U POA0PWM0V A_PWM_V POA0PWM0W A_PWM_W 4 PID804 2 PID802 13 PID8013 M1 12 PID8012 M2 11 PID8011 M3 7 PID807 OC_ADJ 10 PID8010 COR31 R31 B 27k PIR3101 PIC4502 PIC4501 PIR3202 COR32 R32 1R PIR3201 PIC3502 PIC3501 COC34 C34 220n PIR2802 PIR2902 PIR2901 PIC3602 PIC3601 COC36 C36 36 1 18 19 COC41 C41 PIC4102 PIC4101 PID8036 PID801 PIC3702 PIC3701 100n COC37 C37 PIC4202 PIC4201 100n PIC3802 PIC3801 COC42 C42 100n COC38 C38 PIC4302 PIC4301 100n COC43 C43 PIC3902 PIC3901 COC39 C39 100n PIC4 02 PIC4 01 100n COC44 C44 100n COC40 C40 100n MC33204DG AGND 12V GND GND GND GND GND GND GND 5PIN405 + 6PIN406 - 7 PIN407 PIN501 PIN502 COR30 R30 100k CON5 N5 LM4040AIM3-2.5 B PID8018 PID8019 PIR30 1 VCC CON4B N4B PIR30 2 PIC40 2 PIC40 1 PIR2801 Reference voltage for current measurement COR29 R29 100k VBAT 100n GVDD_A GVDD_B GVDD_C GVDD_C COR28 R28 100R 220n NLA0PHASE0U A_PHASE_U NLA0PHASE0V A_PHASE_V NLA0PHASE0W A_PHASE_W VREG AGND GND GND GND THERMAL_PAD 52207-1185 COC35 C35 17 VDD PID8017 100n 9 8 PID808 24 PID8024 25 PID8025 37 PID8037 220n 34 PVDD_A PID8034 29 PVDD_B PID8029 21 PVDD_C PID8021 COC45 C45 PID809 PIC3402 PIC3401 COC33 C33 33 OUT_A PID8033 30 OUT_B PID8030 22 OUT_C PID8022 PWM_A PWM_B 16 PID8016 PWM_C A GND PIC3 02 PIC3 01 FAULT OTW 6 PID806 PIR3102 12V 35 BST_A PID8035 28 BST_B PID8028 20 BST_C PID8020 COX7 X7 1 PIX701 2 PIX702 3 PIX703 4 PIX704 5 PIX705 6 PIX706 7 PIX707 8 PIX708 9 PIX709 10 PIX7010 11 PIX7011 AGND AGND GND 32 GND_A PID8032 31 GND_B PID8031 23 GND_C PID8023 DRV8332DKD GND GND COR33 R33 COR34 R34 1k PIR3301 COR35 R35 20k PIR3302 COR36 R36 1k PIR3401 PIR3402 PIR3501 COR37 R37 1k 20k PIR3502 PIR3601 PIR3602 PIR3701 COR38 R38 20k PIR3702 PIR3801 PIR3802 COR39 R39 R62, C14: fc = 3.4 kHz PWM freq shall be >10*fc 10R PIR3901 PIR3902 4 VCC COR40 R40 PIR40 1 4u7 0R05 C 3 PIN403 PIC4602 PIC4601 COC46 C46 2 PIN402 PIN404 + - PIN401 AGND CON4C N4C MC33204DG CON4A N4A MC33204DG 1 PIN401 11 PIR40 2 10 PIN4010 PIR4102 COR41 R41 9 PIN409 0R05 PIR4101 + CON4D N4D MC33204DG PIR4202 - PIR4201 12PIN4012 + 13PIN4013 - Possible OpAmps: MC33204DG TLV2774CD MCP6294-E/SL MCP604-I/SL 14 PIN4014 COR42 R42 0R05 C AGND COR43 R43 COR44 R44 COR45 R45 COR46 R46 1k 20k 1k 20k PIR4301 8 PIN408 PIR4302 GND PIR4401 PIR4402 PIR4501 PIR4502 PIR4601 COR47 R47 1k PIR4602 PIR4701 GND COR48 R48 20k PIR4702 PIR4801 PIR4802 GND POA0SENSE0U A_SENSE_U Gate driver decoupling caps 12V POA0SENSE0V A_SENSE_V POA0SENSE0W A_SENSE_W PIC4702 PIC4701 COC47 C47 100n PIC4802 PIC4801 COC48 C48 100n PIC4902 PIC4901 COC49 C49 100n PIC50 2 PIC50 1 COC50 C50 100n D * Not assembled components PREN Argus SR407 1 2 3 4 5 6 7 18.11.2012 plt Checked: 26.01.2013 plt Document No.: - Sheet: 4 A / 5 8 131 Hochschule Luzern Horw, Switzerland Created: Schema GND D 1 2 3 4 5 6 7 8 132 Motor B connector POB0HALL020IN B_HALL_2_IN POB0HALL010IN B_HALL_1_IN POB0HALL030IN B_HALL_3_IN COD9 D9 5 PID905 RESET_A 14 PID9014 RESET_B 15 PID9015 RESET_C PO\B0RESET0U B_RESET_U PO\B0RESET0V B_RESET_V PO\B0RESET0W B_RESET_W PO\FAULT FAULT PO\OTW OTW 3 PID903 POB0PWM0U B_PWM_U POB0PWM0V B_PWM_V POB0PWM0W B_PWM_W 4 PID904 2 PID902 PIR5202 10 PID9010 COR52 R52 27k PIR5201 PIC6302 PIC6301 9 PID909 8 PID908 24 PID9024 25 PID9025 37 PID9037 1R PIR5301 PIC5202 PIC5201 PIC5302 PIC5301 COC52 C52 220n 220n PIR4902 PIR50 1 COC54 C54 PIC5902 PIC5901 100n AGND GND GND GND THERMAL_PAD COR50 R50 100k 36 1 18 PID9018 19 PID9019 PID9036 PID901 COC59 C59 PIC5 02 PIC5 01 100n COC55 C55 PIC60 2 PIC60 1 100n COC60 C60 PIC5602 PIC5601 100n COC56 C56 100n PIC6102 PIC6101 COC61 C61 PIC5702 PIC5701 MC33204DG COC57 C57 100n 100n PIC6202 PIC6201 PIR5102 PIC5802 PIC5801 COC62 C62 100n COC58 C58 100n AGND 12V GND GND GND GND GND GND VCC CON6B N6B VBAT PIC5402 PIC5401 PIR4901 PIR50 2 NLB0PHASE0U B_PHASE_U NLB0PHASE0V B_PHASE_V NLB0PHASE0W B_PHASE_W VREG GVDD_A GVDD_B GVDD_C GVDD_C COR49 R49 100R COC53 C53 17 VDD PID9017 100n COR53 R53 220n 34 PVDD_A PID9034 29 PVDD_B PID9029 21 PVDD_C PID9021 COC63 C63 PIR5302 COC51 C51 33 OUT_A PID9033 30 OUT_B PID9030 22 OUT_C PID9022 PWM_A PWM_B 16 PID9016 PWM_C 6 PID906 52207-1185 GND PIC5102 PIC5101 FAULT OTW 13 PID9013 M1 12 PID9012 M2 11 PID9011 M3 7 PID907 OC_ADJ B 12V 35 BST_A PID9035 28 BST_B PID9028 20 BST_C PID9020 A GND PIR5101 5PIN605 + 6PIN606 - 7 PIN607 PIN701 PIN702 COR51 R51 100k AGND CON7 N7 LM4040AIM3-2.5 B AGND GND 32 GND_A PID9032 31 GND_B PID9031 23 GND_C PID9023 DRV8332DKD GND GND COR54 R54 COR55 R55 1k PIR5401 COR56 R56 20k PIR5402 COR57 R57 1k PIR5501 PIR5502 PIR5601 COR58 R58 1k 20k PIR5602 PIR5701 PIR5702 PIR5801 COR59 R59 20k PIR5802 PIR5901 PIR5902 COR60 R60 10R PIR6001 PIR6002 4 VCC COR61 R61 C PIR6101 3 PIN603 PIC6402 PIC6401 COC64 C64 4u7 0R05 2 PIN602 AGND - PIN601 CON6C N6C MC33204DG CON6A N6A MC33204DG 1 PIN601 10 PIN6010 PIR6202 COR62 R62 9 PIN609 0R05 PIR6201 + 8 PIN608 CON6D N6D MC33204DG PIR6302 - PIR6301 12PIN6012 + 13PIN6013 - 14 PIN6014 COR63 R63 0R05 C AGND COR64 R64 COR65 R65 1k PIR6401 PIN604 + 11 PIR6102 COR66 R66 20k PIR6402 GND PIR6501 COR67 R67 1k PIR6502 PIR6601 COR68 R68 1k 20k PIR6602 PIR6701 PIR6702 PIR6801 GND COR69 R69 20k PIR6802 PIR6901 PIR6902 GND POB0SENSE0U B_SENSE_U 12V POB0SENSE0V B_SENSE_V POB0SENSE0W B_SENSE_W PIC6502 PIC6501 COC65 C65 100n PIC6 02 PIC6 01 COC66 C66 100n PIC6702 PIC6701 COC67 C67 100n PIC6802 PIC6801 COC68 C68 100n D D GND * Not assembled components PREN Argus SR407 Hochschule Luzern Horw, Switzerland 1 2 3 4 5 6 7 Created: 18.11.2012 plt Checked: 26.01.2013 plt Document No.: - Sheet: 5 A / 5 8 E Fertigungsunterlagen des Bordcomputers A COX8 X8 1 PIX801 2 PIX802 3 PIX803 4 PIX804 5 PIX805 6 PIX806 7 PIX807 8 PIX808 9 PIX809 10 PIX8010 11 PIX8011 COX6 COMH4 PAMH400 COC7 COS1 COR4 COC8 COC18 PAS101 CON3 COC9 COR5 PAC1801 COX5 COX2 COR1 PAR102 PAV101 PAV501 PAS104 PAR101 PAV102 PAV502 PAS102 COV3 PAV401 PAV601 COV6PAV301 PAV201 COV2 COR14 COR13 PAV402 PAV602 PAR502 PAR501 PAC902 PAC901 PAR401 PAR402 PAC802COL4 PAC801 COD4 PAX501 COC24 PAX502 COD5 COC22 PAC2401 PAC2402 COC25 PAC2502 PAX503 PAC2202 PAC2501 PAC2201 COC23 PAX504 PAC2302 COC26 PAC2301 COX3 PAX505 COMH2 COV5COV4 COV1 PAS103 PAC1802 PAN302 PAN303 PAN301 PAD402 PAD401 PAR1401 PAR1402 PAV302 PAV202 PAMH200 COX4 PAR1301 COR17 PAR1701 COR7 PAR701COR6 PAR601 PAR1302 PAR1702 PAR702 PAR602 COC19 PAC1901 COSP1 PAX601 PAL401 PAD404 PAC1902 COV7 COV8 PAL402 PAC701 PAC702 PAD403 PAX602 PAV703 COC12 COC14 PAX603 PAC1202 PAC1201 P A V 7 0 1 P A V 7 0 2 COC15 2013PAD201PAD20P1ADPAC1401 201 PAD20P9AD2P0A8D207PAD2P0A6D20P5AD204PAD20P3AD2PAC1502 P0AD201 COC13 COC11 PAD20PA5D20 4PAD20 3PAD20PA2D 021PAD20 PAD20P1A9D2018PAD20P1A7D20P1A6D2015PAD20P1A4DPAC1402 COR16 COR15 PASP101 PASP102 PAX604 PAC1101 PAC1501 PAC1301 PAC1302 PAR1602 PAR1502 PAC1102 COD3 PAX605 COR19 COR18 PAR1601 PAR1501 PAX2020 PAX2019 PAX2018 PAX2017 PAX2016 PAX2015 PAX2014 PAX2013 COC3 PAX2012 PAX2011 PAC2602 PAC2601 PAR1901 PAR1801 COD1 PAX2010 PAX209 COR9 COR10 PAR1902 PAR1802 PAC302 PAC301 COR8 PAR1001 PAX208 PAX207 PAR1002 COL2 COD8 COC20 COC10 PAR902 PAR901 PAX301 PAX302 PAX303 PAX206 PAX205 PAR802 PAR801 PAL202 COR21 PAC2001PAC1001PAC2002PAC1002 COC17 COR11 PAC1701 PAL201 COR20 CON1 PAD20P5A1D2052PAD2053PAD20P5A4D205 PAD2056PAD20P5A7D2058PAD20P5A9D20P6AD2061PAD20P6A2D 063PAD2064PAD20P6A5D206 PAD20P6A7DCOC21 20P6A8D2069PAD20P7AD20PCOC16 7A1D2072PAD20P7A3D20P7A4D2075PAC1602 PAC1601 PAR1102 PAR1101 PAR2101 PAR2102 PAX204 PAX203COR12 PAC1702 PAR1202 PAR1201 PAR2001 PAR2002 COC6 PAR301 PAR302 PAC2102 PAC2101 CON2PAX202 PAX201 COC63 COR52 COC45 COR31 PAC602 PAC601 COX9 PAX902 COR2 PAN103 COR53 COR32 PAC6301 PAR5201 PAR5202 PAC4501 PAR3101 PAR3102 COR3 COC5 PAX901 PAR201 PAD301PAD302 PAD302 PAD303 PAD303PAD304 PAD304 PAD305 PAD305PAD306PAD307PAD308PAD309 PAD306 PAD307 PAD309 PAC201 PAN102COC2 COC4 PAC6302 PAR5302 PAR5301 PAC4502 PAR3202 PAR3201 COC49 PAD301 PAR202 COC67 COR58 COD7 PAC6701 COC68 COC50 PAC4902 PAC4901 PAN101 PAC202 COR28CON5 PAC501 PAC502 9018PAD9017PAD90PAC5001 16PAD901P5AD901P4AD901P3AD901P2AD901 PAD901 PAD90 PAD908PAD907PAD906PAD905PAD904PAD903PAD902PAD901 PPAC6802AD801P8AD801P7APAC6801 D801P6AD801P5AD8014PAD8013PAD8012PAD801 PAD801 PAD809PAD80 PAD807PAD806PAD805PAD804PAD80P3AD80PPAC6702 2AD801 COR59 COR56PADPAC5002 PAN201 PAN202COD9 PAN203 PAD708 PAD707 PAR2801 PAR2802 COR66 COC1 CON6 PAD706 PAD709 PAR2902 PAC402 PAC401 COR68 CON7 COR37 COR49 COR67 PAD7010 PAD705 COR38 COL1 PAC102 PAC101 PAR2901 COR69 PAD704 PAD7011 COC36 PAR4902 COR57 PAR5001 PAR5002 PAN703 COL3 COC43COC39 COC41 COC42 COC62COC57 COC59 CON4 PAR3002 PAR3001 PAR3402 PAD7012 COD6 PAD703 COX1 COC54 PAC5401 COC70 PAC4101 PAC4201 PAC3601 PAC5601 PAC5701 PAC5901 PAC4301 COC37 PAC3701 PAR4901 PAC5802 PAC5801 PAR5502 PAN701 PAN702 PAL302 COC56 COR47PAR4402 COC44 COR48 COC60 COC55 COC61 COC38 PAD7013 PAD702 PAC4002 PAC4001 PAR3401 COC40 PAL101 PAL102 PAC5602 PAC5702 PAC5902 PAC5402 PAC4302COR35 PAC3702 PAC4102 PAC4202 PAC3602 PAD7014 PAD701 COR36 PAR5102 PAR5101 PAR5501 PAR6502 PAL301COX8 PAR4401 PAC7001 PAC7002 COR34 PAC6202 PAC6002 PAC5502 PAC6102 PAC4402 PAC3902 PAC3802 COR39 PAN407 PAN406COC46 PAN405 PAN404 PAN403 PACOC33 N402 PAN401 PAR4302 PAR4301 COC34 COR29 COC65 COC47 COC35 COR30 PAN607 PAN606 PAN605 PAN604 PAN603 PAN602 PAN601 PAR6501 COC48 COD2 PAD501 PAD5016 PAD502 PAD503 PAD504 PAD5015 PAD5014 PAD5013 PAD505 PAD506 PAD507 PAD508 PAD5012 PAD5011 PAD5010 PAD509 PAD20100 PAD2027 PAD2028 PAD2029 PAD2030 PAD2031 PAD2032 PAD2033 PAD2099 PAD2098 PAD2091 PAD2090 PAD2037 PAD2089 PAD2038 PAD2039 PAD2040 PAD2041 PAD2042 PAD2043 PAD2044 PAD2045 PAD2046 PAD2047 PAD2088 PAD2087 PAD2086 PAD2085 PAD2084 PAD2083 PAD2082 PAD2081 PAD2080 PAD2079 PAD2048 PAD2078 PAD2049 PAD2050 PAD2077 PAD2076 PAC6201 PAR6402 PAR6401 PAC5302 PAC5301 PAC4701 PAC4702 PAC5202 PAC5201 PAC5101 PAC5102 COR63 PAD608 PAD609 PAD6010 PAD6011 PAD607 PAD606 PAD605 PAD604 PAD6012 PAD6013 PAD6014 PAD603 PAD602 PAD601 PAN608 PAN609 PAN6010 PAN601 PAN6012 PAN6013 PAN6014 PAR5802 PAR5602 PAR5402 PAR6102 PAR6301 PAR6302 COC69 COR51 COC58 PAC6901 COR50 COR65 COR62 PAR6702 PAR6701 PAR5701 PAR5901 PAR6901 PAR6902 PAR5801 PAR5601 PAR5401 COR61 PAC6902 PAR6602 PAR5702 PAR5902 PAR6802 PAR6801 PAR6601 COMH3 PAMH300 PAR6101 PAR6201 PAR6202 COR55 COR64 PAX801 PAX8010PAX809 PAX808 PAX807PAX806PAX805 PAX804PAX803PAX802 PAX801 PAX80MP PAX406 PAX405 PAX404 PAX403 PAX402 PAX401 PAD2092 PAD2035 PAD2036 PAN501 PAN503 PAN502 9021PAD902PPAC6001AD902P3AD902P4AD902P5AD9026PAD9027PADPAC5501 9028PCOC52 AD9029PAD903 PAD9031PAD9032PCOC51 AD903 PADPAC6101 9034PAD9035PAD9036 PAD9019PAD902 PADCOC53 PAC4802 PAC4801 PAX409 PAX408 PAX407 PAD2097 PAD2096 PAD2095 PAD2094 PAD2093 PAD2034 PAC6401 PAX4011 PAX4010 PAV802 PAV803 PAV801 PAD2026 PAD9037 COR60 PAR6001 COC64 PAR6002 PAC6402 PAX4012 COR26 COL9 COC31 PAR2602 PAR2601 COL8 COR25 COC30 COL10 COR27 PAL901 PAL902 PAC3102 PAC3101 PAR2502 PAR2501 PAL801 PAL802 PAC3002 PAC3001 COC32 PAR2702 PAR2701 PAL1001 PAL1002 PAC3202 PAC3201 PAR3901 PAR3902 PAC4602 PAC4601 PAC2801 PAC2802 PAL602 PAL601 PAD105 PAD104 PAD103 PAD1013 PAD1014 PAD102 PAD101 PAD8037 PAR3301 PAR3601 PAR3801 PAR4801 PAR4802 PAR3701 PAR3501 COR43 PAR3602 PAR3802 PAR4702 PAR4602 PAR4601 PAR4502COL5 PAR4501 PAR4701 COR22 COC27 PAR2201 PAR2202 PAC2701 PAC2702 PAL502 COL7 PAL501COR45 COR33 COC29 COR24 COR23 COL6 PAD107 PAD106 PAD1010 PAD1011 PAD1012 COC66 COX7 24PAD8025PAD8026PAD8027PAD8028PAD8029PAD80PAC3801 3 PAD8031PAD8032PAD803 PAD803PPAC6501 4AD803P5AD8036PAC6502 PAD801P9APAC4401 D802P0AD802P1AD802PAD8023PAD80PAC3901 PAC6602 PAC6601PAC3502 PAC3501 PAC3402 PAC3401 PAC3301 PAC3302 COR42 PAN408 PAN409 PAN4010 PAN4COR46 01 PAN4012 PAN4013 PAN4014 PAR3702 PAR3502 PAR3302 COR44 PAR2401 PAR2402 PAC2901 PAC2902 PAL702 PAL701 COC28 PAR2301 PAR2302 PAD108 PAD109 PAX70MP PAR4201 PAR4202 PAR4002 COR41 COR40 PAR4001 PAR4101 PAR4102 PAX701 PAX7010PAX709 PAX708 PAX707PAX706PAX705 PAX704 PAX703PAX702PAX701 PAX104 PAX103 PAX102 PAX101 COMH1 PAMH100 COR54 Bestückungsplan 133 COR54 PAMH300 PAX80MP COMH3 PAR6601 PAR6101 PAR6801 PAR6602 PAR5702 PAR5902 PAR6802 PAL1001 PAL1002 PAC3202 PAC3201 PAC2801 PAC2802 PAL602 PAL601 PAR2702 PAR2701 COC32 PAL801 PAL802 PAC3002 PAC3001 PAR2502 PAR2501 PAL901 PAL902 PAC3102 PAC3101 PAR2301 PAR2302 COC28 PAC2901 PAC2902 PAL702 PAL701 PAR2401 PAR2402 PAC2701 PAC2702 PAL502 PAL501COR45 PAR2602 PAR2601 COC31 PAR2201 PAR2202 COC27 COR22 PAR4502COL5 PAR4501 PAR4701 PAR4602 PAR4601 PAR3602 PAR3802 PAR4702 COR43 COL10 COR27 COC30 COL8 COR25 PAX801 PAX8010PAX809 PAX808 PAX807PAX806PAX805 PAX804PAX803PAX802 PAX801 COR55 COR64 PAR6201 PAR6202 COR26 COL9 PAR6702 PAR6701 PAR5701 PAR5901 PAR6901 PAR6902 PAR5801 PAR5601 PAR5401 COR61 COR65 COR62 COR50 PAC6901 COC58 COR51 PAR6302 COC69 PAR6102 PAR6301 PAN608 PAN609 PAN6010 PAN601 PAN6012 PAN6013 PAN6014 PAR5802 PAR5602 PAR5402 PAC6401 PAR6002 PAC6402 COC64 PAR6001 COR60 COR63 PAC5202 PAC5201 PAC5101 PAC5102 PAC4701 PAC4702 PAC4802 PAC4801 PAR6402 PAR6401 COC53 COC52 COC51 PAC6001 PAC6201 PAC5501 PAC6101 PAR6501 COC48 PAC6002 PAC5502 PAC6102 PAL301 PAC6202 PAR6502 PAC5602 PAC5702 PAC5902 PAC5402 COC60 COC55 COC61 PAN701 PAN702 PAL302 PAC5601 PAC5701 PAC5901 PAC5401 PAC5302 PAC5301 PAD6014 PAC6902 PAD6013 PAD6012 PAD601 PAD602 PAD603 PAD6011 PAD6010 PAD604 PAD605 PAD609 PAD608 PAD606 PAD607 PAMH100 PAX70MP COR23 COL6 COC29 COR24 COR33 COL7 PAX701 PAX7010PAX709 PAX708 PAX707PAX706PAX705 PAX704 PAX703PAX702PAX701 PAR4001 COMH1 PAR4101 PAR4102 COR40 PAR4201 PAR4202 PAR4002 COR41 PAR3601 PAR3801 PAR4801 PAR4802 PAR3701 PAR3501 PAR3301 COR44 PAN408 PAN409 PAN4010 PAN4COR46 01 PAN4012 PAN4013 PAN4014 PAR3702 PAR3502 PAR3302 PAC3502 PAC3501 PAC6602 PAC6601 PAC4601 PAR3901 PAR3902 PAC4602 COR42 PAC3402 PAC3401 PAC3301 PAC3302 PAC6501 PAC6502 PAX101 PAX102 PAX103 PAX104 PAD9019PAD902 PAD9021PAD902PAD902P3AD902P4AD902P5AD9026PAD9027PAD9028PAD9029PAD903 PAD9031PAD9032PAD903 PAD9034PADCOC47 PCOC35 AD801P9APAC4401 9035PAD9036 D802P0AD802P1AD802PAD8023PAD80PAC3901 24PAD8025PAD8026PAD8027PAD8028PAD8029PAD80PAC3801 3 PAD8031PAD8032PAD803 PAD8COC65 03P4AD803P5AD8036 COC66 COX7 COR30 COC34 PAR4301 COR29 PAN4COR39 07 PAN406COC46 PAN405 PAN404 PANCOR36 403 PACOC33 N402 PAN401 PAR4302 PAC4402 PAC3902 PAC3802 COR34 PAC7002 PAR4401 PAC7001 COX8 PAD7014 PAD701 PAC4302COR35 PAC3702 PAC4102 PAC4202 PAC3602 PAL101 PAL102 COC40 PAC4002 PAC4001 PAR3401 PAD7013 PAD702 COC38 COR47PAR4402 COC44 COR48 PAC4301 COC37 PAC3701 PAC4101 PAC4201 PAC3601 COC56 COC59 COC54COC70 COX1 PAD7012 COD6 PAD703 CON4 PAR3002 PAR3001 PAR3402 COC62 COC39 COC43 COC41 COC42 COC36 PAD7011 PAD704 COR69COR57 PAN703 COL3 COC57 PAR2901 PAC102 PAC101 COR38 COL1 PAD7010 PAD705 COR67 COR49 COR68 CON7 COR37 PAC402 PAC401 PAR2902 PAD709 PAD706 CON6 COC1 COR66 PAR2801 PAR2802 PAD708 PAD707 PAN201 PAN202COD9 PAN203 COR56PADPAC5002 COR59 9018PAD9017PAD90PAC5001 PPAC6802AD801P8AD801P7APAC6801 D801P6AD801P5AD8014PAD8013PAD8012PAD801 PAD801 PAD809PAD80 PAD807PAD806PAD805PAD804PAD80P3AD80PPAC6702 2AD801 16PAD901P5AD901P4AD901P3AD901P2AD901 PAD901 PAD90 PAD908PAD907PAD906PAD905PAD904PAD903PAD902PAD901 PAC501 PAC502 CON5 COR28 PAN101 PAC202 PAC4902 PAC4901 COC50 COC68 PAC6701 COR58 COD7 COC67 PAR202 COC49 PAD301 PAC6302 PAR5302 PAR5301 PAC4502 PAR3202 PAR3201 COC4 PAN102COC2 PAC201 PAD301PAD302 PAD302 PAD303 PAD303PAD304 PAD304 PAD305 PAD305PAD306PAD307PAD308PAD309 PAD306 PAD307 PAD309 COC5 PAX901 PAR201 COR3 PAC4501 PAR3101 PAR3102 PAC6301 PAR5201 PAR5202 COR53 COR32 PAN103 PAX902 COR2 COC63 COX9 PAC602 PAC601 COR52 COC45 COR31 CON2PAX202 PAX201 PAC2102 PAC2101 PAR302 PAR301 COC6 PAR2001 PAR2002 PAR1202 PAR1201 COR12 COC16 COC21 PAC1702 PAX204 PAX203 PAR1102 PAR1101 PAR2101 PAR2102 PAD20P5A1D2052PAD2053PAD20P5A4D205 PAD2056PAD20P5A7D2058PAD20P5A9D20P6AD2061PAD20P6A2D 063PAD2064PAD20P6A5D206 PAD20P6A7D20P6A8D2069PAD20P7AD20P7A1D2072PAD20P7A3D20P7A4D2075PAC1602 PAC1601 COR20 CON1 PAL201 PAC1701 COR11 PAC1001PAC2002PAC1002 COC17 PAC2001 PAR801 COR21 PAL202 PAX206 PAX205 PAR802 PAR902 PAR901 PAX301 PAX302 PAX303 COC10 COC20 COD8 COL2 PAX208 PAX207 PAR1002 PAR1001 COR8 PAC302 PAC301 PAR1902 PAR1802 COR10 PAX2010 PAX209 COR9 COD1 PAR1901 PAR1801 PAC2601 PAC2602 PAX2012 PAX2011 COC3 COX3 PAX505 PAX605 COR19 PAC2301 PAR1601 PAR1501 COR18 PAC1102 COD3 PAX2014 PAX2013 COC26 PAR1502 PAR1602 PAC1501 PAC1301 PAC1302 PAC2302 PAC1101 PAX504 PAX604 PAC2201 COR16 COR15 COD2 PAX2016 PAX2015 COC23 COC11 PAD20PA5D20 4PAD20 3PAD20PA2D 021PAD20 PAD20P1A9D2018PAD20P1A7D20P1A6D2015PAD20P1A4DPAC1402 PAC2501 2013PAD201PAD20P1ADPAC1401 201 PCOC15 AD2P0A9D20P8AD207PAD2P0A6D2P0A5D204PAD20P3AD2PAC1502 P0AD201 COC13 PAV701 PAV702 PASP101 PASP102 PAC2202 PAC1202 PAC1201 PAX603 COC14 PAC2502 PAX503 COC12 PAX2018 PAX2017 COC22 PAV703 COD5PAC2401 PAC2402 COC25 PAX502 PAX602 PAL402 PAC701 PAC702 PAD403 PAX2020 PAX2019 PAD404 PAC1902 COV7 COV8 COC24 PAL401 PAX501 PAX601 COSP1 PAC1901 COC19 PAR401 PAR402 PAC802COL4 PAC801COD4 PAR1402 PAR1302 PAR1702 PAR702 PAR602 PAN607 PAN606 PAN605 PAN604 PAN603 PAN602 PAN601 PAR5102 PAR5101 PAR5501 PAR4901 PAC5802 PAC5801 PAR5502 PAR4902 PAR5001 PAR5002 PAD9037 PAD8037 134 E Fertigungsunterlagen des Bordcomputers PAN502 PAN503 PAN501 PAD508 PAD507 PAD506 PAD505 PAD509 PAD5010 PAD5011 PAD5012 PAD504 PAD503 PAD502 PAD5013 PAD5014 PAD5015 PAD501 PAD5016 PAD2050 PAD2049 PAD2076 PAD2077 PAD2048 PAD2078 PAD2047 PAD2046 PAD2045 PAD2044 PAD2043 PAD2079 PAD2080 PAD2081 PAD2082 PAD2083 PAD2084 PAD2085 PAD2086 PAD2087 PAD2088 PAD2042 PAD2041 PAD2040 PAD2039 PAD2038 PAD2037 PAD2089 PAD2036 PAD2035 PAD2090 PAD2091 PAD2034 PAD2092 PAD2033 PAD2032 PAD2031 PAD2030 PAD2029 PAD2028 PAD2027 PAD2093 PAD2094 PAD2095 PAD2096 PAD2097 PAD2098 PAD2099 PAD2026 PAD20100 PAD1014 PAD1013 PAD101 PAD102 PAD1012 PAD1011 PAD1010 PAD103 PAD104 PAD105 PAD109 PAD108 PAD106 PAD107 PAX401 PAV801 PAV803 PAV802 PAX402 PAX403 PAX404 PAX405 PAX406 PAX407 PAX408 PAX409 PAX4010 PAX4011 PAX4012 PAMH400 COMH4 PAD402 PAR502 PAR501 PAC902 PAC901 COX2 PAN301 PAS102 PAN303 PAN302 COX5 PAC1802 PAC1801 COR5 CON3 COC9 PAS101 COC18 COC8 COR4 COS1 COX6 COC7 PAD401 PAR1401 PAR1301 COR17 PAR1701 COR7 PAR701COR6 PAR601 PAV102 PAV502 PAV402 PAV602 PAV302 PAV202 COR14 COR13 PAS104 PAR101 COV6PAV301 PAV201 COV2 PAR102 COR1PAV101 PAV501 PAV401 PAV601 PAS103 COV1 COV5COV4 COV3 PAMH200 COX4 COMH2 Bestückungsplan 135 Die folgende Stückliste enthält alle auf dem Bordcomputer bestückbaren Bauteile. Nicht alle Bauteile sind für die Funktion erforderlich (Variantenbestückung); Bauteile, die nicht bestückt wurden, sind mit einem Stern gekennzeichnet. Element Beschreibung C1 Elko 10u/35V/5mm 1 C2, C4, C5 Keramikkondensator 100n/50V/1206/X7R 3 C20, C21 Keramikkondensator 2u2/10V/0603/X5R 2 C27, C28, C29, C30, C31, C32 Keramikkondensator 47n/50V/0603/X7R 6 C3 Elko 100u/6.3V/5mm 1 C33, C34, C35, C51, C52, C53 Keramikkondensator 220n/50V/0603/Y5V 6 C46, C64 Keramikkondensator 4u7/6.3V/0603/X5R 2 C6, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C22, C23, C24, C25, C26, C36, C37, C38, C39, C40, C41, C42, C43, C44, C45, C47, C48, C49, C50, C54, C55, C56, C57, C58, C59, C60, C61, C62, C63, C65, C66, C67, C68, C69, C70 Keramikkondensator 100n/50V/0603/X7R 48 C7 Elko 10u/10V/4mm/low ESR 1 D1, D6 Schmitt-Trigger 74HC14D 2 D2 Mikropr. STM32F407VGT6 1 D3 Bluetooth-Modul ARF7044A 1 D4 Quarzoszillator 4.000 MHz 1 D5* Treiber/Empf. ADM3202ARN 1 D7 XOR-Gatter 74HC86D 1 D8, D9 Treiber DRV8332DKD 2 L1, L2, L3 Ferrit 100MHz/30R/3A 3 L4, L5, L6, L7, L8, L9, L10 Ferrit 100MHz/2000R/0.15A 7 N1 DC/DC-Wandler TSR1-2433 1 N2 DC/DC-Wandler TSR1-24120 1 N3, N5, N7 Referenzdiode LM4040AIM3-2.5 3 N4, N6 Operationsverstärker MC33204DG 2 R1, R5, R6, R7, R13, R14, R17, R28, R49 Widerstand 100R/0603 9 R2 Widerstand 47k/0603 1 R22, R23, R24, R25, R26, R27, R33, R35, R37, R43, R45, R47, R54, R56, R58, R64, R66, R68 Widerstand 1k/0603 18 R29, R30, R50, R51 Widerstand 100k/0603 Fortsetzung auf nächster Seite Menge 4 136 E Fertigungsunterlagen des Bordcomputers Element Beschreibung R3, R8, R9, R10, R11, R12, R20, R21 Widerstand 4k7/0603 8 R31, R52 Widerstand 27k/0603 2 R32, R53 Widerstand 1R/0603 2 R34, R36, R38, R44, R46, R48, R55, R57, R59, R65, R67, R69 Widerstand 20k/0603 12 R39, R60 Widerstand 10R/0603 2 R4, R15, R16, R18, R19 Widerstand 0R/0603 5 R40, R41, R42, R61, R62, R63 Widerstand 0R05/1W/2010 6 S1 Drucktaste DTSM-62K-V-B 1 SP1* Buzzer QCP-03A 1 V1, V6 Leuchtdiode HSMG-C170/grün/0805 2 V2, V3 Leuchtdiode HSMS-C170/rot/0805 2 V4, V5 Leuchtdiode HSMD-C170/orange/0805 2 V7* Transistor 2N7002 1 V8* Diode BAT54 1 X1 Stiftleiste 733-334 1 X2 Stiftleiste 20pol. N2520-6002RB 1 X3* Stiftleiste 3pol 1 X4 FFC-Buchse 12pin 1 X7, X8 FFC-Buchse 11pin 2 Tabelle E.1: Stückliste Menge F Designprozess 138 Design als Problemlösungsprozess F Designprozess Projektstart Projektplan Gehiemhaltung Offerte Analysephase Definitionsphase Konzeptphase Entwurfsphase Detailierungsphase Realisationsphase Stand der Technik − Normen − Patentrecherche Kreativer Prozess / Ideenentwicklung − Morphologien − Skizzieren − Entwurfsmodelle Wahrnehmungspsychologie − visuelle Wahrnemung [Form und Farbe] − unsichtbare Wahrnemung [Akustik und Geruch] − haptische Wahrnehmung [Material und Oberfläche] − kognitive Ergonomie [Semantik und Semiotik] − anthropometrische Ergonomie [Masse des menschl. Körpers] Visualisieren − technische Zeichnungen − CAD Renderings − Fotografie, Video − Animation Skizzieren Verpackung Handrendering Messeauftritt Stand des Designs − Historisch − Soziokulturell Zielgruppendefinition − Personenbefragung − Bedürfnisanalyse − Personastudie − Demographische Studie − Moodboard Marktposition − Marktanalyse − Marktsegmentierung − Design Strategien Produktanalyse Kreativitätsquellen − Designgeschichte − Bionik − Funktionen [FFF] − Naturwissenschaften Kreativitätstechniken − Morphologischer Kasten − Mindmap − Brainstorming Funktionsmodell Designmodell Protoyp Nullserie Formfindung Modellstudien Modellbau − Konkurrenzanalyse − Produkt im allg. und Userkontext Formale Detaillösung sichtbares / unsichtbares Design Umsetzung CAD Markteinführung Pof. Martin Iseli / Team Industrial Design HSLU 19.09.2011 Norbert Meier / Martin Iseli G Dateistruktur auf der CD Der vorliegenden Arbeit ist eine CD beigefügt, welche sämtliche Dokumente, Quellcode, Zeichnungen etc. enthält. Ordner Inhalt doc Dokumentationen doc/sw Doxygen-Dokumentation der Software der Basiseinheit mit Klassendiagrammen etc. doc/main Das vorliegende Dokument src Quellcode der Software src/pc Quellcode für die PC-Software src/mobile Quellcode für die Embedded-Software Tabelle G.1. Ordnerstruktur Literaturverzeichnis [1] ARF32 Bluetooth modules user’s guide. Adeunis RF. [2] AS5000 Series Magnet Selection Guide. austriamicrosystems AG. [3] Atmel Corporation. AVR32723 Sensor Field Oriented Control for Brushless DC motors with AT32UC3B0256. Online-Quelle. http://www.atmel.com/Images/doc32126.pdf, 25.11.2012. [4] Atmel Corporation. AVR447 Sinusoidal driving of three-phase permanent magnet motor using ATmega48/88/168. Online-Quelle. http://www.atmel.com/Images/doc8010.pdf, 03.11.2012. [5] Microchip Corporation. AN1078 Sensorless Field Oriented Control of PMSM Motors. Online-Quelle. http://www.microchip.com/downloads/en/appnotes/01078a.pdf, 03.11.2012. [6] Digia plc. Qt Framework. Online-Quelle. http://qt-project.org/, 10.10.2012. [7] T. Gockel. Form der wissenschaftlichen Ausarbeitung. Springer-Verlag, Heidelberg, 2008. Begleitende Materialien unter http://www.formbuch.de. [8] A. K. Gupta, A. M. Khambadkone. A Space Vector PWM Scheme for Multilevel Inverters Based on Two-Level Space Vector PWM. IEEE Journals & Magazines, 2006, S. 1631 - 1639. [9] S. Götte. Marketing. Franz Vahlen, München, 2006. [10] Haxx AB. cURL C++ Library. Online-Quelle. http://curl.haxx.se/, 15.12.2012. [11] J. Hu, K. Chen, T. Shen, C. Tang. Analytical Solutions of Multilevel Space-Vector PWM for Multiphase Voltage Source Inverters. IEEE Journals & Magazines, 2011, S. 1489 - 1502. [12] Texas Instruments Inc. SPRA588 Implementation of a Speed Field Oriented Control of 3-phase PMSM Motor using TMS320F240. Online-Quelle. www.ti.com/lit/an/spra588/spra588.pdf, 20.11.2012. [13] Intel Corp., Willow Garage Inc. OpenCV Open Computer Vision Library. Online-Quelle. http://opencv.willowgarage.com/wiki/Welcome, 10.10.2012. [14] Martin Iseli. Ästhetik im Industrie-Design. Vorlesungsskript Hochschule Luzern, 2013. [15] J. J. Labrosse, Micrium Inc. µC/OS-III Echtzeitbetriebssystem für Mikrocontroller. Online-Quelle. http://www.micrium.com, 23.10.2012. [16] J. P. John, Dr. S. S. Kumar, T. Shen, B. Jaya. Space Vector Modulation based Field Oriented Control Scheme for Brushless DC Motors. IEEE Conference Publications, 2011, S. 346 - 351. 142 Literaturverzeichnis [17] G. Küveler, D. Schwoch. Informatik für Ingenieure und Naturwissenschaftler 2. Vieweg-Verlag, Wiesbaden, 1996. [18] J. J. Labrosse. Embedded Systems Building Blocks – Complete and Ready-To-Use Modules in C. Micrium Press, Weston, 2012. [19] J. J. Labrosse. µC/OS-III – The real time kernel user’s manual. Micrium Press, Weston, 2012. [20] H. Lindner. Physik für Ingenieure. Hanser Fachbuchverlag, Leipzig, 2007. [21] A. De Luca, G. Oriolo, M. Vendittelli. Control of Wheeled Mobile Robots: An Experimental Overview. Departement Informatik der Universität Rom. Online-Quelle. http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf, 14.04.2013. [22] J. Lunze. Regelungstechnik 1 – Systemtheoretische Grundlagen, Analyse und Entwurf einschleifiger Regelungen. Springer-Verlag, Heidelberg, 2008. [23] H. Mann, H. Schiffelgen, R. Froriep. Einführung in die Regelungstechnik. Hanser Fachbuchverlag, Leipzig, 2010. [24] M. Michel. Leistungselektronik – Einführung in Schaltungen und deren Verhalten. Springer-Verlag, Heidelberg, 2008. [25] LMX9830 Software User’s Guide Revision 1.3. National Semiconductor. [26] P. Q. Nguyen, J. Dittrich. Praxis der feldorientierten Drehstromantriebsregelungen. Expert-Verlag, Renningen, 1999. [27] Dr. A. Omlin. Leistungselektronik und elektrische Antriebe. Vorlesungsskript Hochschule Luzern, 2011. [28] L. Papula. Mathematik für Ingenieure und Naturwissenschaftler, Band 1. Vieweg+Teubner, Wiesbaden, 2008. [29] L. Papula. Mathematik für Ingenieure und Naturwissenschaftler, Band 2. Vieweg+Teubner, Wiesbaden, 2009. [30] L. Papula. Mathematik für Ingenieure und Naturwissenschaftler, Band 3. Vieweg+Teubner, Wiesbaden, 2009. [31] W. Plassmann, D. Schulz. Handbuch Elektrotechnik. Vieweg+Teubner, Wiesbaden, 1999. [32] LV3000 OEM Scan Enginge Integration Guide. longViewAuto-ID Tech Corp. [33] D. Rathnakumar, J. Lakshmana Perumal, T. Srinivasan. A New Software Implementation of Space Vector PWM. IEEE Conference Publications, 2005, S. 131 - 136. [34] M. Schader, S. Kuhlins. Programmieren in C++. Springer-Verlag, Heidelberg, 1998. [35] J. Specovius. Grundkurs Leistungselektronik – Bauelemente, Schaltungen und Systeme. Vieweg, Wiesbaden, 2008. [36] STM32F407xx advanced ARM-based 32-bit MCU Reference Manual. STMicroelectronics. [37] Dr.-Ing. L. Wyrsch. Die Welt im Zeichen des Motors. Metz-Verlag, Zürich, 1963. [38] Dr.-Ing. L. Wyrsch. Technik überwindet Zeit und Raum. Metz-Verlag, Zürich, 1965. [39] Dr.-Ing. L Wyrsch. Zeitgeschichte der Technik. Metz-Verlag, Zürich, 1967. Tabellenverzeichnis 3.1 3.2 Beschaltung des Mikroprozessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 LEDs auf dem SR407 und deren Bedeutung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1 4.2 4.3 4.4 4.5 Aufbau der Telegramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Telegrammtypen und deren Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufbau des Positions-Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufbau der Zustandsmeldung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufbau des Befehls für nächsten Wegpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Mögliche Störungen und Massnahmen zur Behebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 45 46 46 46 47 12.1 Kostenabrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 E.1 Stückliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 G.1 Ordnerstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Abbildungsverzeichnis 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Explosionszeichnung der Vorderradaufhängung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Explosionszeichnung der Hinterradaufhängung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Explosionszeichnung des Getriebes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Explosionszeichnung des gesamten Fahrzeugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ansicht des Fahrzeugs bei abmontierter Karosserie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Montage der elektronischen Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Beispielhafte Styropor-Halbkugel als Farbmarkierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 22 22 23 24 25 25 3.1 3.2 Ansicht des Bordcomputers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Leiterplatte des SR407 in Originalgrösse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1 4.2 4.3 4.4 4.5 4.6 Struktur des Drehzahlreglers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zur Herleitung des Winkels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anhand der Drehgeber berechnete Position des Fahrzeugs . . . . . . . . . . . . . . . . . . . . . . . Zurückgelegter Weg des Fahrzeugs beim Einfahren in die 5 Garagen . . . . . . . . . . . . . . Zustandsautomat des Empfangs-Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zustandsautomat des Sende-Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 36 40 40 44 45 5.1 5.2 5.3 5.4 5.5 5.6 Datenfluss der Argus-tower Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Klassendiagramm der Argus-Tower Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ansicht der verschiedenen Eingabemasken des GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tracking-Bildschirm im Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entzerrung des Kamerabilds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Strahlensatz zur Berechnung der realen Koordinaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 50 51 52 53 53 6.1 6.2 6.3 6.4 QR-Code zum Aufruf der Webapplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Graphischer Aufbau der Webapplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenfluss vom Fahrzeug bis zum Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktualisierung Daten im Browser durch die Webapplikation . . . . . . . . . . . . . . . . . . . . . 55 56 57 57 7.1 7.2 7.3 Iterationen in der Entwurfsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Herstellung der Karosserie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Ansicht des Fahrzeugs bei montierter Karosserie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.1 8.2 8.3 8.4 8.5 So sollte das Kamerabild aussehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GUI zur Konfiguration der Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die vier zu selektierenden Referenzpunkte (links) und Kontrolle (rechts) . . . . . . . . . . . Auswahl der Farben für die Farbmarkierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ansicht des Tracking-GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 69 69 70 71 Listings 4.1 4.2 4.3 4.4 4.5 4.6 Zentraler Teil des Drehzahlreglers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Positionsberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . So wird für den Winkel ein Hauptwert erzwungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Positionsregelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zentraler Kommunikations-Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funktionsweise des Bluetooth-Interrupthandlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 35 37 38 41 43 Sachverzeichnis A Erfahrungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 App . . . . . . . . . . . . . . . . . . . . . . . . . siehe Webapplikation Argus-Tower Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 F B Basiseinheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Beschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Bestückungsplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Bordcomputer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 127 Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 elektronischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . . 27 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 mechanischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . 27 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 C CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 D Datenübertragung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Analysephase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Entwurfsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Konzeptphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Realisierungsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Diskussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Drehzahlregelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Fahrwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . siehe Chassis Farbmarkierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Fehlerbeseitigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Fertigungsunterlagen . . . . . . . . . . . . . . . . . . . . . 105, 127 Aufhängung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107f. Gesamtansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Getriebeachse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109f. Getriebeplatte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111ff. Grundpatte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114f. Karosserie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Mitnehmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Querlenker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Vorderrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118ff. G Gestaltungskonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 I Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 der Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Referenzpunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 K Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Kommunikations-Task . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Kurzfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 E L Elektronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23, 27 Empfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Entwicklungskosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Lokalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 150 Sachverzeichnis M Markierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Materialkosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Mechanik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21, 105 Messestand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Materialien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 Montage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 Motortreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 N Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 P Positionsberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Positionsbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Positionsregelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Projektplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 SR407 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Störungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Stückliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Stromversorgung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 T Telegramme Aufbau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 Bestätigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Wegpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Zustand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Terminplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Tracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 V Q Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Videomodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 QR-Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 QT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 W R Refresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 S Schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 Senden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Smartphone . . . . . . . . . . . . . . . . . siehe Webapplikation Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Webapplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Aufbau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Aufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Z Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Zustandsautomat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50