106 lines
4.6 KiB
Markdown
106 lines
4.6 KiB
Markdown
# B15F Benutzerhandbuch
|
|
*Hinweise*:
|
|
- Terminal-Befehle sind **fett** gedruckt
|
|
- Als Student/Studentin können Sie davon ausgehen, dass die Steuersoftware auf Ihrem Arbeitsplatz bereits installiert ist
|
|
- D.h. Sie müssen zu Beginn jeder Übung nur die Firmware neu aufspielen (Installation Abschnitt 3)
|
|
|
|
## Einführung
|
|
Das gesamte Softwareprojekt besteht aus zwei Teilen:
|
|
Die ***Firmware*** ist die Software auf dem Mikrocontroller (MCU) des Board 15. Der Mikrocontroller steuert die Peripherie (ADCs, DACs, ...) über einen SPI-BUS.
|
|
|
|
Der zweite Teil von B15F ist die ***Steuersoftware***, die auf dem PC ausgeführt wird. Diese sendet über eine USART-Schnittstelle (RS-232) Befehle an den Mikrocontroller.
|
|
Die Steuersoftware besitzt ein *CLI* (command line interface) mit einer Benutzerschnittstelle für die einfache Fernsteuerung des B15F.
|
|
Außerdem wird eine Bibliothek (*b15fdrv*) installiert, die eine einfache Entwicklung kleiner Steuerprogramme erlaubt.
|
|
|
|
## Installation
|
|
|
|
### 1. Abhängigkeiten installieren
|
|
(a) **sudo apt-get update**
|
|
(b) **sudo apt-get install git avr-libc avrdude libncurses5-dev g++ astyle**
|
|
|
|
### 2. Das Repository klonen
|
|
(a) **cd /home/famulus/**
|
|
(b) **git clone "https://github.com/devfix/b15f.git"**
|
|
|
|
### 3. Die Firmware installieren
|
|
(a) **cd "/home/famulus/b15f/firmware"**
|
|
|
|
(b) Passen Sie in der Datei *Makefile* die Option "MCU = ..." an die MCU des vorliegenden Boards an
|
|
(*atmega1284* und *atmega1284p* sind nicht identisch!)
|
|
|
|
(c) **make**
|
|
|
|
Wenn udev richtig konfiguriert wurde:
|
|
(d I) **make upload**
|
|
Sonst:
|
|
(d II) **sudo make upload**
|
|
|
|
### 4. Die Steuersoftware (Bibliothek & CLI) installieren
|
|
(a) **cd "/home/famulus/b15f/control/src"**
|
|
(b) **make**
|
|
(Die Warnungen durch doxygen können ignoriert werden.)
|
|
|
|
(c) **sudo make install**
|
|
|
|
## Aktualisierung
|
|
(a) **cd /home/famulus/b15f/**
|
|
(b) **git pull --prune**
|
|
(c) **cd "/home/famulus/b15f/firmware"**
|
|
(d) **make clean**
|
|
(e) **cd "/home/famulus/b15f/control/src"**
|
|
(f) **make clean**
|
|
(g) Installation ab Schritt 3 wiederholen
|
|
|
|
## Die CommandLineInterface (CLI) benutzen
|
|
(a) Öffnen Sie ein Terminal und maximieren Sie das Fenster
|
|
(b) Start des CLI erfolgt durch **b15fcli**
|
|
(c) Die Navigation erfolgt durch <Tab>, die Pfeiltasten und <Enter> oder die Maus
|
|
(d) Mit <Strg + c> kann das Programm sofort verlassen werden
|
|
|
|
## Eigene Programme mit B15F schreiben
|
|
|
|
### Grundsätzliches
|
|
Verwendet wird die Bibliothekt *b15fdrv*.
|
|
Die wichtigste Klasse für die Steuerung des Board 15 ist [B15F](https://devfix.github.io/b15f/html/classB15F.html).
|
|
Dort befindet sich auch eine Übersicht der verfügbaren Befehle.
|
|
|
|
### Beispiele
|
|
In dem Verzeichnis [b15f/control/examples](https://github.com/devfix/b15f/tree/master/control/examples) sind einige Beispiele für die Verwendung einzelner B15F Funktionen.
|
|
Zu jedem Beispiel gehört eine *main.cpp* mit dem Quellcode und eine *Makefile*-Datei. Durch das Makefile wird beim Kompilieren und Linken die Bibliothek *b15fdrv* automatisch einbezogen.
|
|
Das Beispiel muss durch Sie also nur mit **make** kompiliert und mit .**/main.elf** gestartet werden.
|
|
|
|
### Den B15F Treiber verwenden
|
|
Benötigt wird der B15F-Header:
|
|
`#include <b15f/b15f.h>`
|
|
und der Header für die plottyfile-Generierung, falls mit Kennlinien gearbeitet werden soll:
|
|
`#include <b15f/plottyfile.h>`
|
|
|
|
Für die Interaktion wird eine Referenz auf die aktuelle Treiberinstanz gespeichert:
|
|
`B15F& drv = B15F::getInstance();`
|
|
Falls noch keine existiert, wird automatisch eine erzeugt und Verbindung zum Board hergestellt.
|
|
|
|
Ab jetzt können auf dem Object `drv` verschiedene Methoden angewand werden, siehe [B15F](https://devfix.github.io/b15f/html/classB15F.html).
|
|
|
|
### Kennlinien mit plottyfile generieren
|
|
Die Beschreibung zu Plottyfile befindet sich [hier](https://devfix.github.io/b15f/html/classPlottyFile.html).
|
|
Nach dem Include von plottyfile kann ein neues Objekt erzeugt und konfiguriert werden:
|
|
```C++
|
|
PlottyFile pf;
|
|
pf.setUnitX("V");
|
|
pf.setUnitY("V");
|
|
pf.setUnitPara("V");
|
|
pf.setDescX("U_{OUT}"); // Markdown wird unterstuetzt
|
|
pf.setDescY("U_{IN}");
|
|
pf.setDescPara("");
|
|
pf.setRefX(5);
|
|
pf.setRefY(5);
|
|
pf.setParaFirstCurve(0);
|
|
pf.setParaStepWidth(0);
|
|
```
|
|
Messpunkte können anschließend hinzugefügt werden.
|
|
Dabei gehören Punkte mit dem gleichen Index für `curve` (*uint8_t*) zur selben Kurve und erhalten durch Plotty automatisch die gleiche Farbe.
|
|
```C++
|
|
pf.addDot(Dot(x, y, curve));
|
|
```
|
|
*Wichtig*: Die Werte für `x` und `y` sind *uint16_t*, also keine Gleitkommazahlen. Stattdessen sind sie auf RefX und RefY bezogen.
|