Pārlūkot izejas kodu

Update readme.

master
langspielplatte pirms 5 gadiem
vecāks
revīzija
b3e66e9779
1 mainītis faili ar 127 papildinājumiem un 49 dzēšanām
  1. +127
    -49
      README.md

+ 127
- 49
README.md Parādīt failu

# 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


- 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
- Servos und Pulsbreite in ```/dev/servoblaster``` eintragen - Servos und Pulsbreite in ```/dev/servoblaster``` eintragen


```bash ```bash
echo 1=10000 > /dev/servoblaster
echo 2=10000 > /dev/servoblaster
sudo /home/pi/src/PiBits/ServoBlaster/user/servod --cycle-time 1000

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)




| v [m/s] | PWM (gemessen) | PWM (soll) | | v [m/s] | PWM (gemessen) | PWM (soll) |
|---------|----------------|------------| |---------|----------------|------------|
| 0 | |1.5ms |
| -12.3 | |2ms |
| 0.9 | |15.409ms |
| -7.4 | |11.636ms |
| 0 |1.5ms |1.5ms |
| -12.3 |2ms |2ms |
| 0.9 |1.54ms |1.5409ms |
| 10.5 |1.54ms |1.5ms |
| -7.4 |1.16ms |11.636ms |


#### Steuerung #### Steuerung




| $\alpha$ [°] | PWM (gemessen) | PWM (soll) | | $\alpha$ [°] | PWM (gemessen) | PWM (soll) |
|-------|----------------|------------| |-------|----------------|------------|
| -3 | |14.66ms |
| 18 | |17ms |
| 0 | |1.5ms |
| -44.2 | |10.08ms |
| -3 |1.46ms |14.66ms |
| 18 |1.3ms |17ms |
|51.7 |2ms | 2ms
| 0 |1.5ms |1.5ms |
| -44.2 |1ms |1ms |


## Veruch 4: Wiimote ## Veruch 4: Wiimote


## 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 iwconfig ra0 essid off
sudo iwconfig ra0 essid group02n
sudo ifconfig wlan0 192.168.1.42 netmask 255.255.255.0 up
sudo iwconfig wlan0 essid off
sudo iwconfig wlan0 essid iot_lab_wlan_bgn_2
``` ```


- dann Routen prüfen - dann Routen prüfen
- 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 | | |
| Pi | | |
|Laptop | 1.991 | 0.023 |
| Pi | 0.508 | 0.321 |


- Für dratlos - Für dratlos


| | Dealy | Offset |
| | Dealy [ms] | Offset [ms] |
|-------|-------|--------| |-------|-------|--------|
|Laptop | | |
| Pi | | |
| Pi |0.425 |0.157 |


- **Default Route wieder auf ethernet stellen** - **Default Route wieder auf ethernet stellen**
- NTP Service konfigurieren# - NTP Service konfigurieren#
- 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
./calc-owd.py --client <pcap> --server <pcap> ./calc-owd.py --client <pcap> --server <pcap>
``` ```


- Mittelwert:
- Varianz:
- Standardabweichung:
![](https://i.imgur.com/MiUiD78.png)


- Eingestellte Bitrate:
- Tatsächlich gesendete Bitrate:
- Mittelwert: 0.395ms
- Standardabweichung: 0.213ms

- Eingestellte Bitrate: 2Mbit/s
- Tatsächlich gesendete Bitrate: 0.26Mbit/s


### Streaming über WLAN ### Streaming über WLAN


- Plot der Pakete - Plot der Pakete
- OWDS - OWDS


- Mittelwert:
- Varianz:
- Standardabweichung:
- Mittelwert: 13.78ms
- Standardabweichung: 8.11ms

![](https://i.imgur.com/SeeoqsY.png)



#### Plot UDP #### Plot UDP


- Mittelwert:
- Varianz:
- Standardabweichung:
- Mittelwert: 4.68ms
- Standardabweichung: 2.87ms


![](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:
- Standardabweichung:
- Mittelwert: 13.78ms
- Standardabweichung: 8.11ms
- UDP: - UDP:
- Mittelwert:
- Standardabweichung:
- Mittelwert: 4.68ms
- 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

- 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 | + + |


- Für LAN
- 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)
- Was passiert, wenn die Puffergröße größer als tie MTU
- WLAN
- 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


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

Notiek ielāde…
Atcelt
Saglabāt