== Space Robot Experimental aka SpaceREx ==
Dieses Projekt soll das Wissen seine Mitglieder für eine allgemeine Roboterplattform bündeln.
Mitglieder:
[[Benutzer:Strange|Strange]]
[[Benutzer:Snow|Snow]]
Einige Dinge sind gesetzt:<br>
ROS, Python, [https://en.wikipedia.org/wiki/Differential_wheeled_robot Differialantrieb]<br>
Raspberry Pi
== Motor Steuerung ==
Da die normalen PWM-Pins mit einer Frequenz von 490 Hz arbeiten gibt der Motor im Betrieb störende Fiepstöne von sich.
Hier wird gezeigt wie man diese standard Frequenz ändern kann: [[ArduinoVariablePWMFrequenz]].
== Videostreaming ==
Eine Übersicht einiger Videostreamingmöglichkeiten für den Raspberry.
[http://reefwingrobotics.blogspot.de/2017/03/streaming-video-from-raspberry-pi-camera.html]
== UV4L ==
Beispiel mit gesichtserkennung [https://www.linux-projects.org/uv4l/tutorials/custom-webapp-with-face-detection/]<br>
Hier wird gezeigt wie man sich die Bibliothek installiert
[https://www.linux-projects.org/uv4l/installation/]<br>
<br>
Zum Verwenden die Auflösung und Qualität konfigurieren z.B. auf 640x480 mit einer frame rate von 16 und jpeg quality von 20.<br>
Das kann über die Oberfläche unter <b>Control Panel</b> gemacht werden, die Änderungen werden aber bei jedem Neustart zurückgesetzt.<br>
Besser ist die Konfigurationsdatei für permanente Einstellungen zu ändern.<br>
Sie befindet sich unter '' /etc/uv4l/uv4l-raspicam.conf ''.<br>
Anschließend den Service neu starten mit: '' sudo service uv4l_raspicam restart ''
Um den mjpeg Stream in eine Webseite einzubinden einfach<br>
''<img id="video" src="http://raspberrypi:8080/stream/video.mjpeg" width="640" height="480">''<br>
einfügen.
== Steuerung ==
Hier ein [https://jsfiddle.net/strangeoptics/e8jnqkjp/13/ JSFiddel ] der Zeigt wie man aus Koordinaten eines kartesischen Koordinatensystems eine Ansteuerung für zwei Räder berechnen kann.<br>
1. Der Ursprung ist unten links. x und y der Punkt. <br>
2. Danach ist der Ursprung in die Mitte versetzt cx und cy.<br>
3. Zum Schluss in die Ansteuerung für das linke l und rechte r Rad umgerechnet.<br>
[[File:Steering_kartesian.PNG|link=https://jsfiddle.net/strangeoptics/e8jnqkjp/13/]] == Schnittstellen == === Raspberry und Arduino ===[[RaspberryGPIOSerial]] === Raspberry und WebSite ===WebSockets<br>Am besten mit Python oder node.js === WebSite -> Raspberry -> Arduino === [[DataTransferWebRaspberryArduino]] == Sound ==Um auf dem Raspi über Python Sound abzuspielen gibt es [https://www.pygame.org/docs/ref/mixer.html pygame]. Vorher muss der audio output für den Kopfhöreranschluss konfiguriert werden:<br> '' amixer cset numid=3 1 '' Freie Sound Samles gibts hier: https://freesound.org/=== pygame === pygame unterstützt keine 32-bit float WAVs. Diese müssen in signed 16-bit WAVs encodiert werden z.B. mit Audacity. <pre>import pygame pygame.mixer.init(44100, -16, 1, 1024)pygame.mixer.music.load("321967__n-audioman__sheep-bleat.wav")pygame.mixer.music.play()while pygame.mixer.music.get_busy(): continue</pre> == Web Server == [http://www.tornadoweb.org/en/stable/ Tornado] Python Webserver. === Start/Stop Script === Der Webserver braucht ein start/stop Skript und muss während des Bootens gestarted werden. [[SpaceRExStartStopScript]] == Links == <b>CS235: Applied Robot Design for Non-Robot-Designers</b><br>Videoaufzeichnungen es Standfordkurses der alle mechanischen Komponenten eines Roboters beleuchtet. Lager, Führungen, Riemen, Motoren, Rahmen, ...<br>https://sites.google.com/site/salisburyrobotics2/home/Courses/cs235/schedule