Raspi als Car-PC vorbereiten


Raspi als Car-PC vorbereiten

Für Automatisierung von Tastatur- und Mausaktionen:

apt-get install xkbd (Virtuelle Tastatur)
apt-get install xautomation (für xte)
apt-get install xnee http://xnee.wordpress.com/ (xresponse)


Beispiele:

 xresponse -k Tab,100 -t Hello -k Return,100
 xresponse -k Tab,100 -w 1
 xresponse -t Hello -w 1
 xresponse -k Return,100 -w 1

 xresponse -k Tab,100 -b 250
 xresponse -t Hello -b 250
 xresponse -k Return,100 -b 250

XBMC

nano /etc/apt/sources.list.d/mene.list
folgenden Text am Ende einfügen: deb http://archive.mene.za.net/raspbian wheezy contrib
STRG + O + STRG + X
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED


apt-get update
apt-get upgrade

sudo apt-get install xbmc

VLC-Player installieren:

apt-get install vlc

BLUETOOTH CSL - USB nano Bluetooth-Adapter V4.0

sudo apt-get install bluetooth bluez-utils blueman

VNC Server

Als erstes holen wir uns mit apt-get update die aktuellsten Pakete.
Danch führen wir apt-get install tightvncserver aus.

Jetzt starten wir den Server mit 
tightvncserver
und vergeben ein Kennwort für den Server.

und schon kann es losgehen, indem wir eine neue Session mit
vncserver :1 -geometry 1024x768 -depth 24 -- httpport 9501
öffnen .

Um den VNCServer beim Booten mitzustarten legen wir ein Startscript mit folgendem Inhalt unter /etx/init.d ab:


#!/bin/sh
#
# /etc/init.d/vncserver                 this Script
# /usr/bin/vncserver                    Program
#
### BEGIN INIT INFO
# Provides:          tightvncserver
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: vnc server
# Description:
#
### END INIT INFO
# Check for missing binaries
FOO_BIN=/usr/bin/vncserver
test -x $FOO_BIN || exit 5

# User, unter dem der VNC-Server ausgefuehrt wird
VNC_USER=""
export VNC_USER

# Set HOME of User
HOME=""
export HOME

# Set ID for Connections
FOO_ID=1

case "$1" in
    start)
        echo -n "Starting Vnc-Server with Terminal-ID $FOO_ID "

        # Delete old PIDs
        rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.pid

        if [ -e $HOME/.vnc/$HOSTNAME:$FOO_ID.log ]; then
           cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
           rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log
        fi

        sudo -u $VNC_USER -H $FOO_BIN :$FOO_ID 2>&1
        ;;
#
     stop)
        echo -n "Shutting down Vnc-Server "
        $FOO_BIN -kill :$FOO_ID 2>&1

        cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
        rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log

        ;;
#
     restart)
        $0 stop
        $0 start
        ;;
#
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

danach noch folgende Befehle ausführen:

sudo chown root:root /etc/init.d/vncserver
sudo chmod 0755 /etc/init.d/vncserver

sudo update-rc.d vncserver defaults

Im Windows holen wir uns einen VNC-Client, UltraVNC ist hier meine wahl
und geben als IP-Adresse die Adresse des Raspberry ein und danach den Port (:9501)

schon sehen wir das LXDE im VNC-Viewer.

Navis:

apt-get install monav
apt-get install navit

Messenger:

apt-get install pidgin

Chrome:

sudo apt-get install chromium-browser

Verbindung zum Mobiltelefon

apt-get install gammu
apt-get install xgnokii

Tethering über Android einrichten

Nachdem wir das Handy angesteckt haben prüfen wir mit ifconfig ob das Netzwerkinterface usb0 vorhanden ist.
Mit einem sudo dhclient usb0 starten wir DHCP auf diesem Interface
nano /etc/network/interfaces
und folgendes dort am Ende einfügen:
iface usb0 inet dhcp
danach folgendes ausführen:
ifup usb0
mit ifconfig prüfen ob USB0 eine Ip-Adresse erhalten hat.
Anschließend:

SICHERUNG MACHEN !!!!!!!!!!!!!!!!!!
und die Feineinstellungen im Auto vornehmen.

Read-Only Pi:

http://raspberrycenter.de/forum/umruestung-raspberry-pi-read-only-root-filesystem

Swap-File abschalten
Zuerst sollte man das Swap-File ausschalten und deaktivieren. Hierzu kann man zuerst folgendes ausführen:
# dphys-swapfile swapoff
# dphys-swapfile uninstall
Danach sollte der vom Init gestartete Service ausgeschaltet werden:
# update-rc.d dphys-swapfile disable

mount -o remount,rw /

Spannungsversorgung:

Hintergrund: 

Mein Fahrzeug (Golf 6) schaltet die Stromversorgung
des Zigarettenanzünders beim Starten und Stoppen des
Motors aus (komplett aus, keine Versorgung vom
Zigarettenanzünder an die Batterie => Deshalb keine 
Diode beim laden der Goldcaps). Wenn ich jetzt das
Fahrzeug starte und den Motor abstelle, so soll der Raspi
die Spannungslose Zeit über die Goldcaps überbrücken.

Nach vielen Bastlereien und Lötereien ist die am besten geeignetste
Lösung auch die simpelste: 14 Goldcaps parallel geschalten, die Direkt
vom Zigarettenanzünder geladen werden. Der Raspi samt USB-Hub 
ebenfalls parallel zu der Schaltung. 

Bei I > 0,50 wird der Raspi zwar noch versorgt, jedoch brechen die USB-
Geräte teils für den gesamten Betrieb bis zum Neustart weg. Ich werde 
weitere Versuche mit einem Step-Up Converter machen, der bis 3.5V die 
Spannung konstant auf 5V hält. Das USB-Hub sollte mitversorgt werden,
da ansonsten 1. die Geräte wegbrechen (dauerhaft) und 2. der Raspi durch
das erkennen und entfernen der USB-Geräte enorme zicken macht !

Nachteil der Schaltung ist dass der Raspi durch das auf- und abbauen
der Spannung der Kondensatoren ~ 3 Neustarts versucht, die nach kurzer
Zeit (5 Sec. bis zum Anstieg des Stromes auf ~ 0,4 A) wieder zu einem 
Neustart führt. Ich denke dass dieses Problem mit dem Step-Up ebenfalls
behoben wird.

gemessene Werte:

Raspi I(A): 
Min / Norm / Max
0,34 / 0.34 / 0,43 
0,13 - 0,20 beim booten (Die ersten 5 Sec.)
(Abschaltung bei 4,20V- 4,12V)

Raspi am USB Hub mit Wlan, BT und Tastatur I(A):
Min / Norm / Max
0,48 / 0,53 / 0,60

+ Maus (optisch) + Handy (Laden + Tethering)
Min / Norm / Max
0,59 / 0,59 / 0,60

1 Goldcap 1F 5,5V 
Ladestrom: 0,10 A
Max Ausgang: 0,10 A

So ergibt sich für meine Spannungsversorgung:
14F 5,5V Parallel (Ladestrom 1,4 A) + 0,6 A Raspi
= 2A USB-Adapter 
durch die Ladekurve der Kondesatoren (Stromaufnahme
verringert sich nach ~ 2Sec enorm können Max. 18 Goldcaps 
verbaut werden => 18F, 5,5 V. 

Möglicherweise auch 20F wenn die sichergestellt ist dass die 
Goldcaps vorgeladen sind (die Goldcaps nicht komplett entladen werden).
Somit ist die Startlast wiederrum < 2A. Ebenfalls zu berücksichtigen ist dass
die 2A (meine Meinung) sich auf eine Dauerlast beziehen und eine kurzfristige
Überlast aushalten. Die Erstladung der Goldcaps stellt  eine *kurzfristige* 
Überlast dar ... 

Links:

http://www.therasberrypi.com/how-to-usb-tether-android-to-your-raspberry-pi/
http://www.elstel.org/Handy.html#creatdev
http://michael.gorven.za.net/blog/2012/08/06/xbmc-packages-raspberry-pi-running-raspbian#comment-116
https://www.modmypi.com/blog/installing-the-raspberry-pi-nano-bluetooth-dongle
http://wiki.openmoko.org/wiki/Manually_using_Bluetooth

GUI Programmierung auf dem PI


GUI Programmierung auf dem PI

Mono

zuerst holen wir uns Mono mit:

apt-get update
apt-get upgrade
apt-get install mono-complete --fix-missing

anschließend öffnen wir Nano und fügen folgenden Sourcecode ein:
using System;
using System.Windows.Forms;
using System.Drawing;

class Programm{
public static void Main (string[] args){
Application.EnableVisualStyles();
var f = new Form();
f.SetBounds (0,0,200,200);
Application.Run(f);
}
}

und Speichern das ganze unter "Test.cs"
jetzt führen wir gmcs mit den Imports aus und compilieren unsere Anwendung:
gmcs test.cs /r:System.dll,System.Drawing.dll,System.Windows.Forms.dll

Im Ordner, in der unsere cs-Datei liegt finden wir jetzt auch eine .exe Datei mit dem
gleichen Namen. 

Jetzt können wir die Anwendung auch schon Testen mit mono Test.exe