diff --git a/README.md b/README.md index 55ee393..aa9f88e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # IOT-Labor + + ## 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 tso off - Auf dem Client ```bash -tcpdump -i tcp and port 1337 and dst -r +tcpdump -i tcp and port 1337 and dst -w ``` - Auf dem Server ```bash -tcpdump -i tcp and port 1337 and src -r +tcpdump -i tcp and port 1337 and src -w ``` - simple-server.py und simple-client.py verwenden @@ -180,12 +195,13 @@ tcpdump -i tcp and port 1337 and src -r ./calc-owd.py --client --server ``` -- 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 @@ -198,56 +214,113 @@ tcpdump -i tcp and port 1337 and src -r - Plot der Pakete - OWDS -- Mittelwert: -- Varianz: -- Standardabweichung: +- Mittelwert: 13.78ms +- Standardabweichung: 8.11ms + +![](https://i.imgur.com/SeeoqsY.png) + #### Plot UDP -- Mittelwert: -- Varianz: -- Standardabweichung: +- Mittelwert: 4.68ms +- Standardabweichung: 2.87ms + +![](https://i.imgur.com/o9eunaC.png) - 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 -- 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 -- 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? + +![](https://i.imgur.com/GWpC1ek.png) + +- Wenn das Modellauto den Raum verlässt. + +![](https://i.imgur.com/a6SrYKR.png) + ## 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