| @@ -1,5 +1,8 @@ | |||
| # IOT-Labor | |||
| <!-- philip.lee2@yahoo.de | |||
| prause@finf.uni-hannover.de --> | |||
| ## Versuch 1: Bash | |||
| - Alle Aufgaben sind als Skripte implementiert | |||
| @@ -8,6 +11,8 @@ | |||
| - Aufgaben a bis c als Skripte implementiert | |||
| - sshfs pi@172.23.90.43:/home/pi ~/test | |||
| ### d) | |||
| - Laden des Servo Daemon | |||
| @@ -25,14 +30,21 @@ | |||
| - Servos und Pulsbreite in ```/dev/servoblaster``` eintragen | |||
| ```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) | |||
| - 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) | |||
| @@ -53,10 +65,11 @@ echo 2=10000 > /dev/servoblaster | |||
| | 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 | |||
| @@ -65,10 +78,11 @@ echo 2=10000 > /dev/servoblaster | |||
| | $\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 | |||
| @@ -88,13 +102,13 @@ hcitool scan | |||
| ## Versuch 5 | |||
| - Verbinden mit WLAN | |||
| - ESSID: group20n | |||
| - ESSID: group20n oder iot_lab_wlan_bgn_03? | |||
| - Kein Passwort und kein DHCP | |||
| ```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 | |||
| @@ -104,22 +118,23 @@ sudo iwconfig ra0 essid group02n | |||
| - Zeit synkronisieren | |||
| ```bash | |||
| ntpq time1.rrzn.uni-hannover.de | |||
| ntpq -pn time1.rrzn.uni-hannover.de | |||
| > peers | |||
| ``` | |||
| - 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 | |||
| | | Dealy | Offset | | |||
| | | Dealy [ms] | Offset [ms] | | |||
| |-------|-------|--------| | |||
| |Laptop | | | | |||
| | Pi | | | | |||
| | Pi |0.425 |0.157 | | |||
| - **Default Route wieder auf ethernet stellen** | |||
| - NTP Service konfigurieren# | |||
| @@ -149,13 +164,13 @@ ethtool -K <interface> tso off | |||
| - Auf dem Client | |||
| ```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 | |||
| ```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 | |||
| @@ -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> | |||
| ``` | |||
| - Mittelwert: | |||
| - Varianz: | |||
| - Standardabweichung: | |||
|  | |||
| - 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 | |||
| @@ -198,56 +214,113 @@ tcpdump -i <interface> tcp and port 1337 and src <client-ip> -r <file-name.pcap> | |||
| - Plot der Pakete | |||
| - OWDS | |||
| - Mittelwert: | |||
| - Varianz: | |||
| - Standardabweichung: | |||
| - Mittelwert: 13.78ms | |||
| - Standardabweichung: 8.11ms | |||
|  | |||
| #### Plot UDP | |||
| - Mittelwert: | |||
| - Varianz: | |||
| - Standardabweichung: | |||
| - Mittelwert: 4.68ms | |||
| - Standardabweichung: 2.87ms | |||
|  | |||
| - Was ist besser? | |||
| - Was ist besser? | |||
| - UDP | |||
| #### Mittelwert und Standardabweichung der OWDs | |||
| - TCP: | |||
| - Mittelwert: | |||
| - Standardabweichung: | |||
| - Mittelwert: 13.78ms | |||
| - Standardabweichung: 8.11ms | |||
| - 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. | |||
| #### Verschiedene Bitraten | |||
| - Hier wieder OWDs messen | |||
| - Mit UDP | |||
| - 0.2 MBit/s mit LAN | |||
|  | |||
| - 2 MBit/s mit LAN | |||
|  | |||
| | 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 | |||
|  | |||
| - 2 MBit/s mit WLAN | |||
|  | |||
| | 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 | |||
| - 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 | |||
| - 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 | |||
| - Mit 4000B Puffergröße versuchen | |||
| - Mit Wireshark angucken | |||
| - Fragmentierung ist zu sehen | |||
| ### Streaming am Fahrzeug | |||
| - Ploten der Pakete in einer Abbildung (wie vorher) | |||
| - Wenn das Modellauto sich stetig vom Router entfernt. | |||
| - Wenn das Modellauto den Raum verlässt. | |||
| - Was kann in beiden Fällen beobachtet werden? | |||
|  | |||
| - Wenn das Modellauto den Raum verlässt. | |||
|  | |||
| ## Versuch 6 | |||
| @@ -265,9 +338,14 @@ sudo i2cdetect -l | |||
| 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 | |||
| - Überprüfen mit ```lsmod``` | |||
| - Adressen in die ```ikt_car_sensorik.py``` eintragen | |||
| - Unten in der Main | |||
| - Unten in der Main | |||