Änderungen
Aus Hackerspace Ffm
FPV-Auto
,/* Chassis */Alte Datei Links durch Link zu Github Repository ersetzt.
==== Package für Arduino ====
Die Idee ist, dass das Board direkt vom Raspberry Zero geupdatet werden kann. Dazu muss auf den Raspberry zunächst Arduino installiert werden - am besten indem zunächst der Default-Arduino via <pre>sudo apt install arduino</pre> installiert wird, und dann aber ersetzt wird, indem von arduino.cc die ARM-Version nach installiert wird.
<pre>wget https://downloads.arduino.cc/arduino-1.8.9-linuxarm.tar.xztar -xvf arduino-1.8.9-linuxarm.tar.xzsudo mv arduino-1.8.9 /optsudo /opt/arduino-1.8.9/install.sh</pre>In der neuen Arduino-IDE wird dann der unter File->Preferences den Sketchbook-Speicherort auf das Arduino-Verzeichniss aus dem GIT-Repository gesetzt und die IDE neu gestartet. Damit sind sofort alle speziellen Libraries und das FPV-Auto in der Board-Auswahl verfügbar. Auf dem Raspberry muss "FPV-Auto on Raspberry" gewählt werden, um vom Raspberry das aufgesteckte Board umzuprogrammieren. Die Variante ohne "on Raspberry" ist für den Fall, dass man das Board vom PC aus programmieren möchte - hierzu muss man RX/TX/Reset und GND mit einem 3.3V USB-Seriell-Adapter anschliessen.
==== Kommandos von FPVAutoControl ====
Die Kommandos werden per Serieller Schnittstelle übertragen mit 38400,8N1. Komplexere Kommandos müssen mit einem Return terminiert werden, andere werden direkt ausgeführt um z.B. das Auto rudimentär mit den Tasten W-S-A-D zu steuern.Test per Minicom <code>minicom -b 38400 -D /dev/ttyS0</code>
Kommandos:
* m xx yy rr : Drive mit den Werten XX YY RR(alt, eher unsinn ohne Omniwheels)* f ll rr : Aktiviere Motoren Links / Rechts(-255 ... 0 ... 255)* N aa bb : Stelle Servo A/B (0..180 besser nur 0..160 bei SG90...)* p!999 : Abschalten nach 60sek* ph aa : Stelle Servo A* pv aa : Stelle Servo B
==== Bootloader ====
==== Audio Ausgabe aktivieren ====
Geht am Arduino vorbei, dieses Tutorial nutzen: http://www.lucadentella.it/en/2017/04/26/raspberry-pi-zero-audio-output-via-i2s/und die asound.conf mit dem Kram von hier bestücken: https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage#detailed-install-5-16 <pre>sudo nano /boot/config.txt</pre><pre>...#dtparam=audio=ondtoverlay=hifiberry-dacdtoverlay=i2s-mmap...</pre> <pre>sudo nano /etc/asound.conf</pre> <pre>pcm.speakerbonnet { type hw card 0} pcm.dmixer { type dmix ipc_key 1024 ipc_perm 0666 slave { pcm "speakerbonnet" period_time 0 period_size 1024 buffer_size 8192 rate 44100 channels 2 }} ctl.dmixer { type hw card 0} pcm.softvol { type softvol slave.pcm "dmixer" control.name "PCM" control.card 0} ctl.softvol { type hw card 0} pcm.!default { type plug slave.pcm "softvol"}</pre> pygame installieren<pre>sudo apt install python3-pygame</pre> sound downloaden<pre>wget http://www.wavsource.com/snds_2018-06-03_5106726768923853/animals/chicken.wav</pre> python3 script erstellen<pre>import pygameimport time pygame.mixer.init(44100, -16, 1, 1024)pygame.mixer.music.load("chicken.wav")pygame.mixer.music.play() time.sleep(3)</pre> ==== Kamera aktivieren ====https://github.com/jacksonliam/mjpg-streamer
=== Platinen ===
== Reifen ==
Ø = 5,8 cm<br>
U = π·d = 18,2 cm<br>
50 RPM = 15,2 cm/sec<br>
200 RPM = 60,7 cm/sec<br>
250 RPM = 75,9 cm/sec<br>
Dateien sind hier zu finden https://github.com/bmarl/FPVCar/tree/master/3D-print-parts
== Akkus ==
== Chassis ==
Alle Teile für das aktuelle Chassis sind hier zu finden - https://github.com/bmarl/FPVCar/tree/master/3D-print-parts
Da es zwei unterschiedliche Ansätze zur Nutzung gibt
*Tumbler mit großer Bodenfreiheit und Option über Kopf zu fahren
[[Datei:20180624-fpvauto-fpvauto-stdconfig.jpg|320px]]
[[Datei:20180624-fpvauto-fpvauto-stdchassis.jpg|320px]]
== Raspberry Pi Zero W ==
== Software ==
=== Protokoll für Commandos aus der Webgui ===
{
"modul":"MODULNAME",
"key": "value"
}
Beispiel
{
"modul":"base",
"forward": 10
}
=== Videostreaming ===
Hier könnten wir UV4L verwenden.<br>
Um den mjpeg Stream in eine Webseite einzubinden einfach folgendes Tag einfügen.
<img id="video" src="http://raspberrypi:8080/stream/video.mjpeg" width="640" height="480">
== Emotionen ==
Mit einem OLED Display kann man dem Gefährt Emotionen mit geben.
Hier ein Test mit einem 128x64 Pixel Display:<br>
[[Datei:Eyes neutral.png]]
[[Datei:Eyes skeptic.png]]
[[Datei:Eyes angry.png]]
[[Datei:Eyes sad down.png]]
Verwendet wird die Python Bibliothek [https://github.com/rm-hull/luma.oled Luma.OLED].<br>
Das Python-Skript liegt im Git Repo unter python/eyes.