Einführung

Einführung

In diesem Kapitel werden Sie mit dem Arduino Engineering Kit vertraut gemacht, was sind die Materialien, die im Kit enthalten sind, und welche Werkzeuge Sie verwenden werden, um die drei wichtigsten Projekte zu erstellen und zu programmieren.

function out = myFactorial(n)

if n > 1
	out = n.*myFactorial(n-1)
else
	out = 1
end

Über das Arduino Engineering Kit

Das Arduino Engineering Kit richtet sich an Studenten der Ingenieurwissenschaften, die mehr über Arduino, MATLAB, Simulink und Stateflow erfahren möchten. Es wurde in Zusammenarbeit zwischen Mathworks und Arduino entwickelt. Das Kit enthält alle Komponenten, die für den Bau von drei kompletten Projekten benötigt werden, sowie Lehrmaterialien mit Erläuterungen zur Physik und Mathematik der Mechatronik. Sie werden in die Programmierung in vier verschiedenen Programmiersprachen eingeführt und lernen alles über die oben genannten Dinge, während Sie diese drei anspruchsvollen Engineering-Projekte durchführen.

Enthaltene Materialien

  • 1Arduino MKR1000
  • 1Arduino MKR Motor Carrier
  • 1Arduino MKR IMU Shield
  • 1Micro-USB-Kabel
  • 1Gleichstrommotor
  • 2 Gleichstrommotor mit Encoder
  • 1 Standard Micro Servo Motor
  • 1Hall-Sensor-Module
  • 1Ultraschall-Sensor-Modul
  • 1Webcam
  • 1LiPo-Akku
  • 2Modulkabel
  • 3Montagesets
  • 1Stützrad
  • 2Räder
  • 1Zahnriemenscheibe
  • 2 Zahnriemen
  • 2Montagehalterung für Gleichstrommotore
  • 1Metal Shaft
  • 2 Metall-D-Welle
  • 10Abstandshalter
  • 1Propelleradapterschraube
  • 10 Muttern und Schrauben
  • 1 Zusätzliche Komponenten
  • 1 Zusätzlich notwendige Komponenten – nicht im Set enthalten

Struktur des Lerninhaltes

Der Lerninhalt für dieses Kit ist in sechs Kapitel unterteilt: eine kurze Einführung, eine Einführung in die Werkzeuge, die verwendet werden, einen dreiteiligen Konzeptteil, der sowohl theoretische Aspekte umfasst, detaillierte technische Beschreibungen der wichtigsten Teile liefert und den Projekten gewidmet ist.

 

Der Lerninhalt ist so konzipiert, dass er Schritt für Schritt die Kapitel 1 bis 3 beschreibt. Er wird jeweils immer als Referenz für die einzelnen Themen herangezogen. Die Kapitel 4, 5 und 6 sind abgeschlossene Projekte. Die Projekte können in beliebiger Reihenfolge durchgeführt werden. Es wird aber empfohlen, mit dem Projekt in Kapitel 4 zu beginnen.

 

Alle Inhalte sind online über die Arduino Education Online Plattform verfügbar.

Lernziele

Aus dem einleitenden Kapitel:

  • Sie werden lernen, wie die gesamte Arduino-Plattform funktioniert und Sie werden das Arduino MKR1000 Board kennenlernen und nutzen. Sie programmieren das Board mit der Arduino IDE, lernen die digitalen Ein-/Ausgänge und die serielle Kommunikation kennen.

 

  • Um die Möglichkeiten des Arduino-Boards zu erweitern, nutzen Sie den Arduino MKR Motor Carrier. Sie werden dabei viel über Motoren lernen und wie man sie vom Arduino-Board aus ansteuert.

 

  • Sie erhalten eine Einführung in die Benutzeroberfläche von MATLAB und erfahren, wie man Daten erstellt, auf sie zugreift, sie ändert und visualisiert. Außerdem werden Sie imstande sein, Skripte und Funktionen in MATLAB zu schreiben.

 

  • Sie werden auch erfahren, wie man ein Simulink-Modell erstellt und simuliert. Außerdem lernen Sie, wie Sie Simulationsdaten in der Simulink-Umgebung visualisieren, die Abtastrate eines Blocks in einem Simulink-Modell einstellen und mit Subsystemen eine Blockhierarchie zu einem Simulink-Modell hinzufügen.

 

  • Nachdem Sie eine Einführung in Arduino, MATLAB und Simulink erhalten haben, werden Sie sehen, wie diese drei Tools miteinander verbunden werden können. In einer praktischen Anwendung nutzen Sie die Tools zur Charakterisierung eines DC-Getriebemotors.

 

Sobald Sie wissen, wie man die Tools zusammen verwendet werden Sie einige technische Konzepte vorgestellt bekommen, die es Ihnen später ermöglichen, die Projekte besser zu verstehen. Bei den Konzepten geht es sowohl um eine weitergehende Beschreibung von Komponenten, wie z.B. DC-Motoren oder Encoder, als auch um die Präsentation neuer Themen wie I2C-Kommunikation oder PWM-Signale. Ziel ist es dabei, dass Sie diese Konzepte allgemein verstehen können, so dass Sie sie in anderen, über dieses Kit hinausgehenden Szenarien umsetzen können.

 

Anschließend an die Engineeringkonzepte werden Sie 3 verschiedene Projekte bauen und programmieren:

MOBILER ROVER

Sie werden mehr über die Grundbewegung eines Roboters mit Differentialantrieb von MATLAB erfahren, wie man kinematische Gleichungen verwendet, um die Roverbewegung zu simulieren. Sie werden zur Steuerung des Rovers mit offenen oder geschlossenen Regelkreisen arbeiten, Zustände zur Programmierung des Rovers nutzen, Bildverarbeitung zur räumlichen Lokalisierung und der Steuerung des Rovers und des Gabelstaplers einsetzen, um Gegenstände aufzunehmen und abzusetzen. Außerdem nutzen Sie Wi-Fi für Kommunikation zwischen Rover und MATLAB.

ZEICHENROBOTER

Sie lernen, wie Sie sich mit einem Arduino-basierten Roboter aus MATLAB heraus verbinden und MATLAB-Anwendungen, Funktionen und Skripte für die Robotersteuerung zu schreiben. Sie werden Konzepte aus Geometrie, Physik, symbolischer Mathematik und Bildverarbeitung anwenden und einen kompletten Anwendungs-Workflow von Anfang bis Ende automatisieren.

SELBSTBALANCIERENDES MOTORRAD

Sie werden lernen, wie man das Gesamtverhalten des Motorrads simuliert und Modelle der Komponenten erstellt, um die Qualität der Simulation sowie den der Regelalgorithmen zu verbessern. Sie werden untersuchen, wie man das Motorrad mit Simulink® programmiert, seinen Balance-Algorithmus steuert, es geradlinig bewegt und Hindernisse erkennt. Nach Abschluss des Projekts haben Sie das Wissen, Ihre eigenen selbstbalancierenden Fahrzeuge zu bauen. Wer weiß, vielleicht werden Sie Ihr eigenes Hoverboard® oder sogar den nächsten Arduino gesteuerten Segway® bauen.

Tools

Arduino

Arduino ist eine Open-Source-Elektronikplattform, die auf einfach zu bedienender Hard- und Software basiert. Arduino boards können über die Eingänge Daten wie Lichtmenge auf einem Sensor, den Zustand eines Tasters oder das Eintreffen einer Twitter-Nachricht einlesen, diese verarbeiten und über die Ausgänge Aktionen auslösen wie, z.B. einen Motor zu aktivieren, eine LED einzuschalten oder etwas online zu veröffentlichen. Sie können Ihr Board so programmieren, das es das tut was es soll, indem eine Reihe von Anweisungen an den Mikrocontroller auf dem Board abgearbeitet wird. Dazu verwenden Sie Arduino programming language und die Arduino Software (IDE).

 

Dank der Open-Source-Philosophie, die Arduino zugrunde liegt, hat sich inzwischen eine riesige Gemeinschaft von Nutzern gebildet, welche Projekte, Tutorials und Vorschläge auf den dafür vorgesehenen Plattformen wie dem Arduino forum und dem Arduino Project Hub austauschen.

 

Im Laufe der Jahre hat Arduino eine Vielzahl von different boardsentwickelt. Jedes ist gekennzeichnet durch unterschiedliche Fähigkeiten und Funktionalitäten. So gibt es beispielsweise für jedes Kommunikationsprotokoll eine anderes Board mit Wi-Fi (MKR1000), Bluetooth, LoRa, SigFox, GSM und so weiter.

MATLAB

Im Arduino Engineering Kit programmieren Sie den Arduino MKR1000 mit MATLAB und Simulink.

 

MATLAB ist eine High-Level-Programmiersprache und Entwicklungsumgebung für technische und wissenschaftliche Berechnungen. MATLAB ist für die numerische Berechnung optimiert und enthält Tausende von mathematischen und technischen Funktionen, mit denen Daten analysiert und visualisiert, Algorithmen entwickelt und mathematische Modelle erstellt werden können. Dutzende von Zusatzmodulen erweitern MATLAB um spezifische Funktionen in Bereichen wie Steuerung, Signalverarbeitung, Robotik, Optimierung, Bildverarbeitung und vielem mehr.

 

Mit dem MATLAB Support Package für Arduino können Sie direkt in MATLAB mit der Arduino-Hardware kommunizieren. Sie können interaktiv Daten von einer Vielzahl von Sensoren und Peripheriegeräten lesen, die Rohdaten zu aussagekräftigen Größen verarbeiten und externe Geräte wie Leuchten und Motoren ansteuern. Da MATLAB eine High-Level-Programmiersprache ist, können Sie die Ergebnisse von I/O-Anweisungen sofort sehen, ohne Ihren Code kompilieren zu müssen.

SIMULINK

Simulink ist eine Blockdiagrammumgebung zur Modellierung und Simulation dynamischer Systeme und zur Entwicklung von Algorithmen, die Sie auch in Arduino und andere Hardware integrieren können. Operationen und Funktionen werden durch Simulink-Blöcke dargestellt, während Daten durch Signale dargestellt werden, die von einem Block zum anderen fließen. Mit Simulink können Sie Signalverarbeitung, Steuerungsdesign, Zustandslogik und andere fortgeschrittene mathematische und technische Routinen automatisch in Ihre Arduino-Projekte integrieren. So umgehen Sie die traditionellen Softwareentwicklungsprozesse und Sie können sich einfach auf das Engineering konzentrieren!

 

Das Simulink Support Package für Arduino erweitert Simulink um Blöcke zur Konfiguration von Arduino-Sensoren und zum Lesen und Schreiben von deren Sensordaten. Nachdem Sie Ihr Simulink-Modell erstellt haben, können Sie Simulationen fahren und interaktiv die Algorithmenparameter anpassen. Den so optimierten und fertigen Algorithmus laden Sie anschließend zur eigenständigen Ausführung auf Ihren Arduino. Mit dem MATLAB Function Block können Sie MATLAB-Code in Ihr Simulink-Modell integrieren.

 

Beide Arduino Support Packages erübrigen das manuelle Schreiben von C- oder C++-Code sowie das Kompilieren, Erstellen und Ausführen der Anwendung. Die Support-Pakete übersetzen Ihre MATLAB- und Simulink-Entwicklungen in funktionierenden C- und C++-Code.

MATLAB AND SIMULINK INSTALLATION

Sie benötigen die folgenden MathWorks-Produkte, um die Projekte im Arduino Engineering Kit zu programmieren:

  • MATLAB®, Simulink®
  • Control System Toolbox™
  • Curve Fitting Toolbox™
  • DSP System Toolbox™
  • Image Processing Toolbox™
  • Instrument Control Toolbox™
  • Optimization Toolbox™
  • Signal Processing Toolbox™
  • Simscape™
  • Simscape Multibody™
  • Stateflow®
  • Symbolic Math Toolbox™.

Wenn Sie MATLAB bereits installiert haben, können Sie sehen, ob Sie die erforderlichen Produkte haben, indem Sie im Befehlsfenster ver eingeben.

Beachten Sie, dass Sie nicht nur die erforderlichen Produkte haben, sondern auch das Release R2018a oder höher verwenden müssen.

 

Wenn Sie keine bestehende MATLAB-Lizenz haben, die diese Kriterien erfüllt, können Sie die im Kit enthaltene 1-Jahres-Lizenz unter installieren.

Wenn Sie beabsichtigen, diese Lizenz mit Laborcomputern zu verwenden, senden Sie eine E-Mail an arduino-engineering-kit@mathworks.com

SCHRITTE ZUM INSTALLIEREN DER LIZENZ

  1. Besuchen Sie [mathworks.com/arduino-kit-license] (http://mathworks.com/arduino-kit-license)
  2. Von hier aus werden Sie aufgefordert, ein MathWorks-Konto zu erstellen (oder sich bei Ihrem bestehenden Konto anzumelden), den Nutzungsbedingungen zuzustimmen und den Code aus Ihrem Kit einzugeben.
  1. Nach dem Absenden der erforderlichen Informationen, Ihre Lizenz wird sofort erstellt und steht zur Installation zur Verfügung .
  2. Wählen Sie Ihre Plattform und fahren Sie mit der Installation fort.

Wenn Sie sich für eine spätere Installation entscheiden, besuchen Sie mathworks.com/mwaccount und wählen Sie die Lizenznummer aus, die dem MathWorks Arduino Kit entspricht.

 

Nach Abschluss der Installation müssen Sie mehrere Add-Ons installieren, die in den Projekten verwendet werden. Öffnen Sie MATLAB erneut mit Administratorzugriff und wählen Sie Add-Ons aus dem MATLAB-Toolstrip aus (siehe Bildung unten) und klicken Sie auf Get Add-Ons.

Installieren Sie diese Add-Ons in der unten angegebenen Reihenfolge.

 

  1. MATLAB Support Package for Arduino Hardware: Erfasst Eingangsdaten und sendet Ausgangsdaten an Arduino-Boards und angeschlossene Geräte

 

  1. Simulink Support Package for Arduino Hardware: Führt Simulink-Modelle auf Arduino-Boards aus.

 

  1. MATLAB Support Package for USB Webcams: Übernimmt Bilder und Videos von USB-Webcams

 

  1. Arduino_Engineering_Kit_Hardware_Support (Wählen Sie nach Ihrer MATLAB-Version die richtige aus):

    • MATLAB R2019a und höher: Arduino_Engineering_Kit_Hardware_Support_19a: MATLAB- und Simulink-Unterstützung für den Arduino MKR-Motorträger und andere im Arduino Engineering Kit verwendete Komponenten.
    • MATLAB R2018b: Arduino_Engineering_Kit_Hardware_Support_18b: MATLAB- und Simulink-Unterstützung für den Arduino MKR-Motorträger und andere im Arduino Engineering Kit verwendete Komponenten.
    • MATLAB R2018a: Arduino_Engineering_Kit_Hardware_Support : Hardware-Unterstützung für das Arduino Engineering Kit: MATLAB- und Simulink-Unterstützung für den Arduino MKR-Motorträger und andere im Arduino Engineering Kit verwendete Komponenten.

 

  1. Arduino Engineering Kit Project Files: MATLAB- und Simulink-Dateien zum Programmieren der Projekte im Arduino Engineering Kit, einschließlich des selbstausgleichenden Motorrads, des mobilen Rovers und des Zeichenroboters.

 

Denken Sie daran, die Anweisungen auf den Add-Ons selbst zu befolgen.

Hinweis: Das MATLAB Support Package for Arduino installiert Arduino IDE 1.8.1 und einige zugehörige Bibliotheken. Ändern Sie diese Dateien oder deren Speicherort nicht.

Projekte

You will learn how the entire Arduino platform works, you will be using the Arduino MKR1000 Board. You will program the board by using the Arduino IDE, learning about digital inputs/outputs, and serial communication.

ZEICHENROBOTER

You will learn how the entire Arduino platform works, you will be using the Arduino MKR1000 Board. You will program the board by using the Arduino IDE, learning about digital inputs/outputs, and serial communication. You will learn about the basic movement of differential drive robot from MATLAB, how to use kinematic equations to simulate the rover motion and perform open loop control, closed loop control of the rover, use states to program your rover, localization of the rover using Image processing, control the rover and forklift to pick up the target and drop it off and Wi-Fi communication between rover and MATLAB.

Unter Verwendung von Bildverarbeitung, Trajektorienberechnung und Trajektorienoptimierung für die Bewegungsplanung zeichnet der Zeichenroboter ein Bild auf ein Whiteboard von einem Bild einer Webcam, das von MATLAB digitalisiert wird. Der Roboter verwendet reinen MATLAB-Code und Motorsteuerungs-Theorie, um ein physisches Bild in ein digitales Format zu konvertieren und auf ein Whiteboard zu übertragen.

MOBILER ROVER

Der Mobile Rover verfügt über eine Positionsverfolgung über eine ferngesteuerte Webcam und integrierte Sensorfunktionen zur Hindernisvermeidung und -bewegung. Der Rover nutzt eine Mischung aus MATLAB- und Simulink-Programmen, um sich zu bewegen und mit der Welt zu interagieren.

SELBSTBALANCIERENDES MOTORRAD

Das selbstbalancierende Motorrad verfügt über eine invertierte Pendeldynamik mit Reaktionsrad und Bewegungs-Kreisel und kann sich selbstständig bewegen und balancieren. Das Motorrad verwendet Simulink, um die Bewegungen zu überwachen und zu steuern, die Trägheit zu erfassen und zu filtern, um das Motorrad in der Balance zu halten.