elektronikjogi
Moderator
Hi an alle ArduMower-Fans,
Nach dem Alexander hier
http://www.ardumower.de/index.php/d...berry-pi-als-wlan-router-fuer-ardumower#10467
den Pi schon so schön eingeführt hat. Möchte ich dieses Thema von einer anderen Seite weiter aufgreifen.
Worum geht es...
Grundlegend geht es darum, dass der Pi nicht ungeregelt ausgeschaltet werden darf. Das geht zwar meistens gut aber manchmal auch nicht. Schlicht es darf nicht sein, dass der Pi einfach abgeschaltet wird. Dazu hat die Schaltung einen Power Source und einen Power Backup Anschluss. Für unsere Zwecke muss man sich das so vorstellen. Der Power Source von der Schaltung hängt im Hauptzweig der Akku-Versorgung in dem sich auch ein Hauptschalter, Notaus, Spannungsüberwachung etc. befindet. Das Power Backup hängt nach der Akku-Sicherung direkt am Akku. Wird der Pi eingeschaltet (hochgefahren) aktiviert die Schaltung augenblicklich den Backup Zweig. Selbst wenn jetzt jemand den Notaus drückt oder den Hauptschalter ausschaltet wird der Pi über Power Backup weiter versorgt. Er kann also ganz gemütlich seinen Programmen nachgehen ohne aus dem Leben gerissen zu werden. Natürlich merkt der Pi über das Power-Good Signal das Power Source ausgefallen ist und leitet jetzt ein geregeltes Shutdown ein. Er macht also alle Files die er gerade bearbeitet zu. Wenn das alles erledigt ist schaltet der Pi die Versorgung über Power Backup für sich selbst aus und belastet das System nicht weiter. Schaltet jetzt jemand den Hauptschalter wieder ein oder/und entriegelt den Notaus, bekommt das die Schaltung mit und fährt den Pi automatisch hoch sodass das Gesamtsystem wieder betriebsbereit ist. Natürlich kann man den Pi auch einfach über den Taster im Bedienfeld (Taster On/Off) durch drücken hoch und runter fahren (wie beim PC). Je nach dem wie der Pi ausgeschaltet wird kann er einen Höllenlärm machen mit unterschiedlichen Zeiten versteht sich. Dazu dient der Buzzer. Da der aber freiprogrammierbar ist kann man natürlich auch noch andere Alarme damit ausgeben. Ein eventuell vorhandener Pi-Monitor (7"-Touch) wird mit dem Pi ein und ausgeschaltet ebenso wie ein möglicher USB-HUB und/oder noch ein kleiner LAN-Switch. Ein potentialfreier Kontakt signalisiert einer externen Schaltung ob der Pi läuft oder nicht. Dieser Kontakt kann 6A bei 30V schalten. Zusätzlich sind noch zwei weitere Relais auf dem Board die frei programmierbar sind. Ebenso gibt es zwei Eingänge die mit dieser Auslegung direkt 5V vertragen. Möchte man mehr muss man einen anderen Widerstand einsetzen. Da der Pi ja keine Uhr hat und das nur über NTP geht habe ich Ihm gleich noch eine von unseren RTC-Modulen verpasst. Es gibt auf dem Board drei I2C Anschlüsse einen direkten 3,3V vom Pi (man beachte der Pi hat schon 2x1K8 PullUp on Board), einen internen I2C mit 5V und einen externen mit 5V der geschützt nach außen geführt ist. Um das ganze noch abzurunden ist auch noch ein 3,3V 1Wire Anschluss vorhanden an dem man einen DHT11 oder DHT22 anschließen kann.
So wird das fertige PCB aussehen.
Der Labor-Aufbau zum Testen der Schaltung.
Der Pi3 mit Pi-Monitor 7"-Touch hängt zum Test dran.
Schaltplan
Belegung der 40pol Stiftleiste
Übersicht der GPIO's
Kleiner wichtiger und gewollter Nebeneffekt der Schaltung ist, dass der Pi den Arduino sofern er am USB hängt nicht über diesen versehentlich versorgt, was für den Pi tödlich enden kann.
Hier noch das BASH Script das ich für mich geschrieben habe. Die Python Programme für das Senden der Mails sind hier nicht dabei. Bei Interesse passe ich das alles gerne noch auf den ArduMower allgemein an.
Wer mit einem RPi3 arbeitet ist gut beraten Kühlkörper einzusetzen. Nähere Informationen findet ihr hier.:
https://www.elektormagazine.de/news...234335561&mc_cid=371f1deef4&mc_eid=2a6a7bb9ea
Hier die Bilder vom Labor-Aufbau mit der Prototypen-Platine.
Bild Labor-Aufbau 1
Bild Labor-Aufbau 2
Bild Labor-Aufbau 3
Wird auf Wunsch hier Erweitert.
Euer Jürgen
Nach dem Alexander hier
http://www.ardumower.de/index.php/d...berry-pi-als-wlan-router-fuer-ardumower#10467
den Pi schon so schön eingeführt hat. Möchte ich dieses Thema von einer anderen Seite weiter aufgreifen.
Worum geht es...
Grundlegend geht es darum, dass der Pi nicht ungeregelt ausgeschaltet werden darf. Das geht zwar meistens gut aber manchmal auch nicht. Schlicht es darf nicht sein, dass der Pi einfach abgeschaltet wird. Dazu hat die Schaltung einen Power Source und einen Power Backup Anschluss. Für unsere Zwecke muss man sich das so vorstellen. Der Power Source von der Schaltung hängt im Hauptzweig der Akku-Versorgung in dem sich auch ein Hauptschalter, Notaus, Spannungsüberwachung etc. befindet. Das Power Backup hängt nach der Akku-Sicherung direkt am Akku. Wird der Pi eingeschaltet (hochgefahren) aktiviert die Schaltung augenblicklich den Backup Zweig. Selbst wenn jetzt jemand den Notaus drückt oder den Hauptschalter ausschaltet wird der Pi über Power Backup weiter versorgt. Er kann also ganz gemütlich seinen Programmen nachgehen ohne aus dem Leben gerissen zu werden. Natürlich merkt der Pi über das Power-Good Signal das Power Source ausgefallen ist und leitet jetzt ein geregeltes Shutdown ein. Er macht also alle Files die er gerade bearbeitet zu. Wenn das alles erledigt ist schaltet der Pi die Versorgung über Power Backup für sich selbst aus und belastet das System nicht weiter. Schaltet jetzt jemand den Hauptschalter wieder ein oder/und entriegelt den Notaus, bekommt das die Schaltung mit und fährt den Pi automatisch hoch sodass das Gesamtsystem wieder betriebsbereit ist. Natürlich kann man den Pi auch einfach über den Taster im Bedienfeld (Taster On/Off) durch drücken hoch und runter fahren (wie beim PC). Je nach dem wie der Pi ausgeschaltet wird kann er einen Höllenlärm machen mit unterschiedlichen Zeiten versteht sich. Dazu dient der Buzzer. Da der aber freiprogrammierbar ist kann man natürlich auch noch andere Alarme damit ausgeben. Ein eventuell vorhandener Pi-Monitor (7"-Touch) wird mit dem Pi ein und ausgeschaltet ebenso wie ein möglicher USB-HUB und/oder noch ein kleiner LAN-Switch. Ein potentialfreier Kontakt signalisiert einer externen Schaltung ob der Pi läuft oder nicht. Dieser Kontakt kann 6A bei 30V schalten. Zusätzlich sind noch zwei weitere Relais auf dem Board die frei programmierbar sind. Ebenso gibt es zwei Eingänge die mit dieser Auslegung direkt 5V vertragen. Möchte man mehr muss man einen anderen Widerstand einsetzen. Da der Pi ja keine Uhr hat und das nur über NTP geht habe ich Ihm gleich noch eine von unseren RTC-Modulen verpasst. Es gibt auf dem Board drei I2C Anschlüsse einen direkten 3,3V vom Pi (man beachte der Pi hat schon 2x1K8 PullUp on Board), einen internen I2C mit 5V und einen externen mit 5V der geschützt nach außen geführt ist. Um das ganze noch abzurunden ist auch noch ein 3,3V 1Wire Anschluss vorhanden an dem man einen DHT11 oder DHT22 anschließen kann.
So wird das fertige PCB aussehen.
Der Labor-Aufbau zum Testen der Schaltung.
Der Pi3 mit Pi-Monitor 7"-Touch hängt zum Test dran.
Schaltplan
Belegung der 40pol Stiftleiste
Übersicht der GPIO's
Kleiner wichtiger und gewollter Nebeneffekt der Schaltung ist, dass der Pi den Arduino sofern er am USB hängt nicht über diesen versehentlich versorgt, was für den Pi tödlich enden kann.
Hier noch das BASH Script das ich für mich geschrieben habe. Die Python Programme für das Senden der Mails sind hier nicht dabei. Bei Interesse passe ich das alles gerne noch auf den ArduMower allgemein an.
Code:
!/bin/bash
#DIRBOXLOG=/home/pi/boxlog
#this is the GPIO pin connected to the lead on switch labeled ON-OFF-KEY
GPIOpin1=23
#this is the GPIO pin connected to the lead on switch labeled SYSTEM-UP
GPIOpin2=24
#this is the GPIO pin connected to the lead on switch labeled Power Good
GPIOpin3=25
#this is the GPIO pin connected to the lead on switch labeled Buzzer
GPIOpin4=22
echo "$GPIOpin1" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
echo "$GPIOpin2" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
echo "$GPIOpin4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIOpin4/direction
echo "0" > /sys/class/gpio/gpio$GPIOpin4/value
echo "$GPIOpin3" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio$GPIOpin3/direction
LOGTIME=$(date)
LOGTXT='--Das System wurde eingeschaltet'
if [ -e $DIRBOXLOG/Boxlog.txt ]; then
echo $LOGTIME$LOGTXT >> $DIRBOXLOG/Boxlog.txt
else
echo $LOGTIME$LOGTXT > $DIRBOXLOG/Boxlog.txt
fi
sleep 120
sudo /home/pi/mailmsg/userupmail.py
while [ 1 = 1 ]; do
power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
good=$(cat /sys/class/gpio/gpio$GPIOpin3/value)
if [ $power = 0 ]; then
if [ $good = 1 ]; then
echo "1" > /sys/class/gpio/gpio$GPIOpin4/value
LOGTIME=$(date)
LOGTXT='--Das System hat einen Versorgunsfehler festgestellt.'
if [ -e $DIRBOXLOG/Boxlog.txt ]; then
echo $LOGTIME$LOGTXT >> $DIRBOXLOG/Boxlog.txt
else
echo $LOGTIME$LOGTXT > $DIRBOXLOG/Boxlog.txt
fi
sudo /home/pi/mailmsg/powerfailmail.py
sleep 5
sudo poweroff
fi
sleep 1
else
echo "1" > /sys/class/gpio/gpio$GPIOpin4/value
LOGTIME=$(date)
LOGTXT='--Das System wurde von einem Anwender beendet.'
if [ -e $DIRBOXLOG/Boxlog.txt ]; then
echo $LOGTIME$LOGTXT >> $DIRBOXLOG/Boxlog.txt
else
echo $LOGTIME$LOGTXT > $DIRBOXLOG/Boxlog.txt
fi
sudo /home/pi/mailmsg/userdownmail.py
sleep 1
sudo poweroff
fi
done
Wer mit einem RPi3 arbeitet ist gut beraten Kühlkörper einzusetzen. Nähere Informationen findet ihr hier.:
https://www.elektormagazine.de/news...234335561&mc_cid=371f1deef4&mc_eid=2a6a7bb9ea
Hier die Bilder vom Labor-Aufbau mit der Prototypen-Platine.
Bild Labor-Aufbau 1
Bild Labor-Aufbau 2
Bild Labor-Aufbau 3
Wird auf Wunsch hier Erweitert.
Euer Jürgen