Update readme.

This commit is contained in:
2020-09-18 09:39:47 +02:00
parent 9dc258d4d8
commit b3e66e9779

174
README.md
View File

@@ -1,5 +1,8 @@
# IOT-Labor # IOT-Labor
<!-- philip.lee2@yahoo.de
prause@finf.uni-hannover.de -->
## Versuch 1: Bash ## Versuch 1: Bash
- Alle Aufgaben sind als Skripte implementiert - Alle Aufgaben sind als Skripte implementiert
@@ -8,6 +11,8 @@
- Aufgaben a bis c als Skripte implementiert - Aufgaben a bis c als Skripte implementiert
- sshfs pi@172.23.90.43:/home/pi ~/test
### d) ### d)
- Laden des Servo Daemon - Laden des Servo Daemon
@@ -25,14 +30,21 @@
- Servos und Pulsbreite in ```/dev/servoblaster``` eintragen - Servos und Pulsbreite in ```/dev/servoblaster``` eintragen
```bash ```bash
echo 1=10000 > /dev/servoblaster sudo /home/pi/src/PiBits/ServoBlaster/user/servod --cycle-time 1000
echo 2=10000 > /dev/servoblaster
echo 1=wert > /dev/servoblaster
echo 2=wert > /dev/servoblaster
``` ```
### e) ### e)
- Oszilloskop an GPIO Pin 17 anschließen - Oszilloskop an GPIO Pin 17 anschließen
- Minimale Pulsbreite ermitteln? 10$\mu s$ ??? - Minimale Pulsbreite ermitteln?
- 25% sind 60
- 50% sind ~120
- 75% sind ~190
- 100% sind 250
### f) ### f)
@@ -53,10 +65,11 @@ echo 2=10000 > /dev/servoblaster
| v [m/s] | PWM (gemessen) | PWM (soll) | | v [m/s] | PWM (gemessen) | PWM (soll) |
|---------|----------------|------------| |---------|----------------|------------|
| 0 | |1.5ms | | 0 |1.5ms |1.5ms |
| -12.3 | |2ms | | -12.3 |2ms |2ms |
| 0.9 | |15.409ms | | 0.9 |1.54ms |1.5409ms |
| -7.4 | |11.636ms | | 10.5 |1.54ms |1.5ms |
| -7.4 |1.16ms |11.636ms |
#### Steuerung #### Steuerung
@@ -65,10 +78,11 @@ echo 2=10000 > /dev/servoblaster
| $\alpha$ [°] | PWM (gemessen) | PWM (soll) | | $\alpha$ [°] | PWM (gemessen) | PWM (soll) |
|-------|----------------|------------| |-------|----------------|------------|
| -3 | |14.66ms | | -3 |1.46ms |14.66ms |
| 18 | |17ms | | 18 |1.3ms |17ms |
| 0 | |1.5ms | |51.7 |2ms | 2ms
| -44.2 | |10.08ms | | 0 |1.5ms |1.5ms |
| -44.2 |1ms |1ms |
## Veruch 4: Wiimote ## Veruch 4: Wiimote
@@ -88,13 +102,13 @@ hcitool scan
## Versuch 5 ## Versuch 5
- Verbinden mit WLAN - Verbinden mit WLAN
- ESSID: group20n - ESSID: group20n oder iot_lab_wlan_bgn_03?
- Kein Passwort und kein DHCP - Kein Passwort und kein DHCP
```bash ```bash
sudo ifconfig ra0 192.168.1.42 netmask 255.255.255.0 up sudo ifconfig wlan0 192.168.1.42 netmask 255.255.255.0 up
sudo iwconfig ra0 essid off sudo iwconfig wlan0 essid off
sudo iwconfig ra0 essid group02n sudo iwconfig wlan0 essid iot_lab_wlan_bgn_2
``` ```
- dann Routen prüfen - dann Routen prüfen
@@ -104,22 +118,23 @@ sudo iwconfig ra0 essid group02n
- Zeit synkronisieren - Zeit synkronisieren
```bash ```bash
ntpq time1.rrzn.uni-hannover.de ntpq -pn time1.rrzn.uni-hannover.de
> peers
``` ```
- Für dratgebunden - Für dratgebunden
- 8.962 0.071
| | Dealy | Offset | | | Dealy [ms] | Offset [ms] |
|-------|-------|--------| |-------|-------|--------|
|Laptop | | | |Laptop | 1.991 | 0.023 |
| Pi | | | | Pi | 0.508 | 0.321 |
- Für dratlos - Für dratlos
| | Dealy | Offset | | | Dealy [ms] | Offset [ms] |
|-------|-------|--------| |-------|-------|--------|
|Laptop | | | | Pi |0.425 |0.157 |
| Pi | | |
- **Default Route wieder auf ethernet stellen** - **Default Route wieder auf ethernet stellen**
- NTP Service konfigurieren# - NTP Service konfigurieren#
@@ -149,13 +164,13 @@ ethtool -K <interface> tso off
- Auf dem Client - Auf dem Client
```bash ```bash
tcpdump -i <interface> tcp and port 1337 and dst <server-ip> -r <file-name.pcap> tcpdump -i <interface> tcp and port 1337 and dst <server-ip> -w <file-name.pcap>
``` ```
- Auf dem Server - Auf dem Server
```bash ```bash
tcpdump -i <interface> tcp and port 1337 and src <client-ip> -r <file-name.pcap> tcpdump -i <interface> tcp and port 1337 and src <client-ip> -w <file-name.pcap>
``` ```
- simple-server.py und simple-client.py verwenden - simple-server.py und simple-client.py verwenden
@@ -180,12 +195,13 @@ tcpdump -i <interface> tcp and port 1337 and src <client-ip> -r <file-name.pcap>
./calc-owd.py --client <pcap> --server <pcap> ./calc-owd.py --client <pcap> --server <pcap>
``` ```
- Mittelwert: ![](https://i.imgur.com/MiUiD78.png)
- Varianz:
- Standardabweichung:
- Eingestellte Bitrate: - Mittelwert: 0.395ms
- Tatsächlich gesendete Bitrate: - Standardabweichung: 0.213ms
- Eingestellte Bitrate: 2Mbit/s
- Tatsächlich gesendete Bitrate: 0.26Mbit/s
### Streaming über WLAN ### Streaming über WLAN
@@ -198,56 +214,113 @@ tcpdump -i <interface> tcp and port 1337 and src <client-ip> -r <file-name.pcap>
- Plot der Pakete - Plot der Pakete
- OWDS - OWDS
- Mittelwert: - Mittelwert: 13.78ms
- Varianz: - Standardabweichung: 8.11ms
- Standardabweichung:
![](https://i.imgur.com/SeeoqsY.png)
#### Plot UDP #### Plot UDP
- Mittelwert: - Mittelwert: 4.68ms
- Varianz: - Standardabweichung: 2.87ms
- Standardabweichung:
![](https://i.imgur.com/o9eunaC.png)
- Was ist besser? - Was ist besser?
- UDP
#### Mittelwert und Standardabweichung der OWDs #### Mittelwert und Standardabweichung der OWDs
- TCP: - TCP:
- Mittelwert: - Mittelwert: 13.78ms
- Standardabweichung: - Standardabweichung: 8.11ms
- UDP: - UDP:
- Mittelwert: - Mittelwert: 4.68ms
- Standardabweichung: - Standardabweichung: 2.87ms
- Um OWDs mit UDP genauer zu berechnen müsste die Reihenfolge der Pakete beachtet werden und die Uhren von Client und Server genaustens synkronisiert werden. - Um OWDs mit UDP genauer zu berechnen müsste die Reihenfolge der Pakete beachtet werden und die Uhren von Client und Server genaustens synkronisiert werden.
#### Verschiedene Bitraten #### Verschiedene Bitraten
- Hier wieder OWDs messen - Hier wieder OWDs messen
- Mit UDP
- Für LAN - 0.2 MBit/s mit LAN
![](https://i.imgur.com/11t6Skr.png)
- 2 MBit/s mit LAN
![](https://i.imgur.com/TBB2xbD.png)
| LAN | $\mu_{OWD}$ | $\sigma_{OWD}$ | Wertung |
| -------- | -------- | -------- | --------- |
| 0.2 Mbits/s | -0.01 | 0 | + - |
| 2 Mbit/s | -0.007 | 0 | + + |
- 0.2 MBit/s mit WLAN
![](https://i.imgur.com/qlLJ9S4.png)
- 2 MBit/s mit WLAN
![](https://i.imgur.com/6KARpaL.png)
| WLAN | $\mu_{OWD}$ | $\sigma_{OWD}$ | Wertung |
| -------- | -------- | -------- | --------- |
| 0.2 Mbits/s | 53.03 | 29.76 | - - |
| 2 Mbit/s | 5.17 | 3.03 | + - |
- Für WLAN
#### Verschiedene Parameter raspivid #### Verschiedene Parameter raspivid
- Hier wieder OWDs messen - 1280 x 720, 20fps, 2Mbit/s ,
- ```-t 0 -fps 20 -w 1280 -h 720 -b 2000000 -o```
- 1280 x 720, 10fps, 2Mbit/s
- ```-t 0 -fps 10 -w 1280 -h 720 -b 2000000 -o```
- 1280 x 720, 5fps, 2Mbit/s
- ```-t 0 -fps 5 -w 1280 -h 720 -b 2000000 -o```
- 640 x 360, 40fps, 2Mbit/s
- ```-t 0 -fps 40 -w 640 -h 360 -b 2000000 -o```
- 640 x 360, 20fps, 2Mbit/s
- ```-t 0 -fps 20 -w 640 -h 360 -b 2000000 -o```
| Parameterset | $\mu_{OWD}$ | $\sigma_{OWD}$ | Wertung |
|--------------|-------------|----------------|---------|
|```-t 0 -fps 20 -w 1280 -h 720 -b 2000000 -o```| 5.17ms | 3.02ms | + - |
|```-t 0 -fps 10 -w 1280 -h 720 -b 2000000 -o```| 5.69ms | 3.38ms | - - |
|```-t 0 -fps 5 -w 1280 -h 720 -b 2000000 -o```| 5.64ms | 3.40ms | - - |
|```-t 0 -fps 40 -w 640 -h 360 -b 2000000 -o```| 6.2ms | 3.91ms | + + |
|```-t 0 -fps 20 -w 640 -h 360 -b 2000000 -o```| 8.86ms | 5.03ms | + + |
#### Verschiedene Puffergrößen #### Verschiedene Puffergrößen
- Einmal mit 10Byte und 1400 Byte (WLan MTU) - WLAN
- Was passiert, wenn die Puffergröße größer als tie MTU - Puffergröße: 10B, nichts zu sehen
- Puffergröße: 1400B
- $\mu_{OWD}: 5.17ms$
- $\sigma_{OWD}: 3.02ms$
- Wertung: +-
- Was passiert, wenn die Puffergröße größer als die MTU
- Fragmentierung, mehr Overhead - Fragmentierung, mehr Overhead
- Mit 4000B Puffergröße versuchen - Mit 4000B Puffergröße versuchen
- Mit Wireshark angucken - Mit Wireshark angucken
- Fragmentierung ist zu sehen
### Streaming am Fahrzeug ### Streaming am Fahrzeug
- Ploten der Pakete in einer Abbildung (wie vorher) - Ploten der Pakete in einer Abbildung (wie vorher)
- Wenn das Modellauto sich stetig vom Router entfernt. - Wenn das Modellauto sich stetig vom Router entfernt.
- Wenn das Modellauto den Raum verlässt.
- Was kann in beiden Fällen beobachtet werden? ![](https://i.imgur.com/GWpC1ek.png)
- Wenn das Modellauto den Raum verlässt.
![](https://i.imgur.com/a6SrYKR.png)
## Versuch 6 ## Versuch 6
@@ -265,9 +338,14 @@ sudo i2cdetect -l
sudo i2cdetect -y 1 sudo i2cdetect -y 1
``` ```
- Adressen der Sensoren:
- Infrarot: 0x4f in V
- Kompas: 0x60
- Radencoder: On pin 21
- Ultraschall-Modul: 0x70, 0x71
- Kernelmodule laden i2c-bcm2708 - Kernelmodule laden i2c-bcm2708
- Überprüfen mit ```lsmod``` - Überprüfen mit ```lsmod```
- Adressen in die ```ikt_car_sensorik.py``` eintragen - Adressen in die ```ikt_car_sensorik.py``` eintragen
- Unten in der Main - Unten in der Main