Space Robot Experimental aka SpaceREx
Dieses Projekt soll das Wissen seine Mitglieder für eine allgemeine Roboterplattform bündeln.
Einige Dinge sind gesetzt:
ROS, Python, Differialantrieb
Raspberry Pi
Videostreaming
Eine Übersicht einiger Videostreamingmöglichkeiten für den Raspberry. [1]
UV4L
Beispiel mit gesichtserkennung [2]
Hier wird gezeigt wie man sich die Bibliothek installiert
[3]
Zum Verwenden die Auflösung und Qualität konfigurieren z.B. auf 640x480 mit einer frame rate von 16 und jpeg quality von 20.
Das kann über die Oberfläche unter Control Panel gemacht werden, die Änderungen werden aber bei jedem Neustart zurückgesetzt.
Besser ist die Konfigurationsdatei für permanente Einstellungen zu ändern.
Sie befindet sich unter /etc/uv4l/uv4l-raspicam.conf .
Anschließend den Service neu starten mit: sudo service uv4l_raspicam restart
Um den mjpeg Stream in eine Webseite einzubinden einfach
<img id="video" src="http://raspberrypi:8080/stream/video.mjpeg" width="640" height="480">
einfügen.
Steuerung
Hier ein JSFiddel der Zeigt wie man aus Koordinaten eines kartesischen Koordinatensystems eine Ansteuerung für zwei Räder berechnen kann.
1. Der Ursprung ist unten links. x und y der Punkt.
2. Danach ist der Ursprung in die Mitte versetzt cx und cy.
3. Zum Schluss in die Ansteuerung für das linke l und rechte r Rad umgerechnet.
Schnittstellen
Raspberry und Arduino
Raspberry und WebSite
WebSockets
Am besten mit Python oder node.js
WebSite -> Raspberry -> Arduino
Sound
Um auf dem Raspi über Python Sound abzuspielen gibt es pygame.
Vorher muss der audio output für den Kopfhöreranschluss konfiguriert werden:
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.
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
Web Server
Tornado python web server.
Start/Stop Script
init.d