Arduino – Pflanzenbewässerung

Microcontroller ATmega328
Arduino UNO

Sensor Shield V5.0

1 Kanal Relaismodul KF-301

Bodenfeuchtesensor
Der Bodenfeuchtesensor war nach drei Tagen im Einsatz defekt.

Mini Wasserpumpe
Spannung: 5V DC
Außendurchmesser Wasserauslass: 6,3mm
Innendurchmesser Wasserauslass: 4,1mm

HyperCube 3D – Z-Offset

Wo bekommt man den Z-Offset her und wie stellt ich den Offset ein ?

Der Abstand zwischen der Düse und dem Bett bei genullter Z-Achse ist der Z-Offset.

Vorbereitung

Drucker in Homeposition fahren. Mit dem Button „Home XYZ“ können alle drei Achsen gleichzeitig genullt werden. Um den Z-Offset herauszufinden reicht jedoch die Z-Achse.

Der Drucker wird nach dem „homeing“ selbstständig in eine definierte Position (in Marlin definiert) gefahren. Auch hier ist nur die Z-Achse von Bedeutung.

Achse zum Z-Offset fahren

Die Z-Achse so lange in Richtung Düse fahren bis gerade noch ein Stück Papier dazwischen passt / ganz leicht reibt. Gefahren wird über das Display im Menu „bewegen“.

Wurde die optimale Position gefunden, wird im Display oben rechts der Offset angezeigt. Im Bild Z:-1.48.

Achtung: Z+ vergrößert den Abstand zwischen der Düse und dem Bett !!!

Z-Offset speichern und verwenden


Im Terminal kann der Offset mit der Eingabe

M851 Z-1.48
M850 Werte im Eprom speichern

gespeichert werden.

CGMiner 4.11.1 auf Raspberry Pi

Hard und Software
GekkoScience 2pac USB Miner
Raspberry Py 2
Lüfter / Kühlung für Miner

Voraussetzungen
Vorinstalliertes Raspian (Debian) auf SD-Karte mit ssh-Zugang.

Installation nach https://www.bitshopper.de/support/anleitungen/2pac/2pac-inbetriebnahme-linux-raspberry-pi/

Raspian aktualisieren

sudo apt-get update
sudo apt-get upgrade -y

Zusätzliche Pakete
Zusätzliche Pakete installieren um die Abhängigkeiten von CGminer aufzulösen:

sudo apt-get install -y build-essential git autoconf automake libtool pkg-config libcurl4-openssl-dev libudev-dev libusb-1.0-0-dev libncurses5-dev

build-essential – Compiler und Compile Werkzeuge
git – Source Code repository
autoconf – für den Build aus GIT nötig
automake – für frn Build aus GIT nötig
libtool pkg-config – shared library Zugriff für CGMine
pkg-config – Für Build und Kompilierung benötigt
libcurl4-openssl-dev – http connectivity für CGMiner
libudev-dev – USB support für CGMiner
libusb-1.0-0-dev – USB support für CGMiner
libncurses5-dev –  Textbasiertes User Interface für CGMiner

CGMiner aus GIT klonen
Verzeichnis erstellen wo der CGMiner rein soll
git clone klont von github den aktuellen cgminer.

mkdir -p mining/2pac 
cd mining/2pac
sudo git clone https://github.com/vthoang/cgminer.git

CGMiner kompilieren
Der Parameter –enable-gekko aktiviert die GekkoScience Treiber für Compac und 2Pac Miner.

cd cgminer

sudo CFLAGS="-O2" ./autogen.sh --enable-gekko
sudo make -j 2

Binary testen
Das erzeugte Binary testen. Mit der Option -n werden alle angeschlossenen USB-Miner angezeigt.

./cgminer -n

Weitere Komandozeilenparameter sind z.B.
-D = Debug-Ausgabe aktivieren
-E =
-m =
-n = Alle USB-Geräte anzeigen
-P =
-Q =
-q = Protokollausgabe deaktivieren, Status und Fehler anzeigen
-U = URL
-V = Version anzeigen
-s =
-T =
-O = Benutzername:Passwort
-c = Konfigurationsdatei die geladen werden soll
-h = Hilfe

Inbetriebnahme
Betrieb bis 150MHZ mit Lüfter / Kühlung machbar. Ohne nur bis 100MHZ.

Leistung in GH/s = 0.11 * MHz

cd ~/mining/2pac/cgminer
sudo ./cgminer -o stratum+tcp://stratum.braiins.com:3333 -u hargil.BTC_01 -p anything123 --suggest-diff 32 --gekko-2pac-freq 100

-o = Pooldaten
-u = Benutzername Pool
-p = Passwort Pool

–gekko-2pac-freq =
–suggest-diff = Miner-Schwierigkeit

CG-Miner mit Konfigurationsdatei

Konfigurationsdatei
Anlegen und erstellen einer Konfigurationsdatei.

-> Verzeichnis erstellen
-> in das neue Verzeichnis wechseln
-> cgminer.conf erstellen

mkdir -p /home/pi/mining/2pac/config
cd /home/pi/mining/2pac/config
sudo nano cgminer.conf

https://www.lurkmore.com/view/Cgminer.conf#:~:text=cgminer.conf%20is%20the%20default%20configuration%20file%20for%20the,cgminer.conf%20is%20the%20best%20way%20to%20run%20cgminer.

{
"pools" : [
	{
		"url" : "stratum+tcp://stratum.braiins.com:3333",
		"user" : "hargil.BTC_01",
		"pass" : "anything123"
	}
]
,
"gekko-2pac-freq" : "125",
"kernel-path" : "/usr/local/bin"
}

CGMiner mit Konfigurationsdatei starten

sudo ./cgminer -c /home/pi/mining/2pac/config/cgminer.conf

Autostart

Autostart
Starten von CGMiner beim Systemstart / Autostart

Als erstes muss im Verzeichnis /etc/init.d/ ein Skript erstellt werden, mittels welchem der CGMiner gestartet wird.

sudo nano /etc/init.d/CGMiner
#! /bin/sh
### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
 
case "$1" in
    start)
        echo "CGMiner wird gestartet"
        # Starte den CGMiner Programm
        /home/pi/mining/2pac/cgminer/cgminer -c /home/pi/mining/2pac/config/cgminer.conf
        
        # Eine weitere Möglichkeit den Miner zu starten
        # screen -d -m -S cgminer sudo /home/pi/mining/2pac/cgminer/cgminer -c /home/pi/mining/2pac/config/cgminer.conf
        # -d
        # -m
        # -S
        ;;

    stop)
        echo "CGMiner wird beendet"
        # Beende Programm
        killall cgminer
        ;;
    *)
        echo "Benutzt: /etc/init.d/CGMiner {start|stop}"
        exit 1
        ;;
esac
 
exit 0

Rechte zuweisen

sudo chmod 755 /etc/init.d/CGMiner

Script testen

sudo /etc/init.d/CGMiner start

Scriptaufruf in die Autostartdatei eintragen

sudo update-rc.d CGMiner defaults

sudo update-rc.d -f CGMiner remove
sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# CGMiner starten
/etc/init.d/CGMiner start

exit 0

Screen

https://wiki.ubuntuusers.de/Screen/

sudo apt-get install screen

screen – Startet den Fenstermanager

-c dateinameKonfigurationsfile laden
-ddetach
-h lineshistoryAnzahl der History-Linien die angezeigt werden.
– ls [match]
-listlistwie -ls
– m ignor $STY variable, do create a new screen session
– r [session]resumeReatach to a detached screen process
-S sitzungStartet eine neue Sitzung mit dem Namen „sitzung“
-t titleSet title (window’s name)
-vversionZeigt die Programmversion an
-wipe [match]
-x„attach“ mit einem nicht „detacht“ Screen (multi display mode)
–helpZeigt einen Hilfebildschirm an
Komandozeilenparameter
0 – 9Springt zum Terminal mit der entsprechenden Nummer; die Nummerierung beginnt bei 0
^B bbreak
CclearErstellt ein neues, leeres Fenster (terminal)
:colon
copy
^D ddetachTrennen der Verbindung zur aktuellen Sitzung, Sitzung läuft im Hintergrund weiter
^Vdisgraph
*display
:dumptermcap
Ffit
^F fflow
^Ifocus
hhardcopy
?helpÜbersicht über Tastaturkürzel / Online-Hilfe
{ }history
iinfo
K kkillBeendet den Screen
^M mlastmsg
,license
HlogSchreibt die Ausgaben des Terminals in ein Logfile mit Namen screenlog.<nummer>; als Nummer wird die Nummer des virtuellen Terminals angehängt. Die Wiederholung des Kommandos beendet das Mitschneiden.
Llogin
ameta
Mmonitor
nnextwechselt in das nächste virtuelle Terminal
Nnumber
Qonly
^Aother
Bpow-break
Dpow-detach
Ppreviouswechselt ins vorige virtuelle Terminal
\quitBeendet das Programm
<readbuf
^L lredisplay
Xremove
=removebuf
Zreset
^C cscreenErstellt ein neues, leeres Fenster (terminal)
select
_silence
Ssplit
^Z zsuspend
^T ttimeZeigt die aktuelle Systemzeit an
AtitleTerminalbezeichnung umbenennen
^Gvbel
vversionZeigt die Programmversion an
Wwidth
^R rwrap
>writebuf
^S sxoff
^Q qxon
Wechseln zwischen den einzelnen Fenstere einer Sitzung
windwoslistBlendet eine Liste der Terminals ein; mit den Pfeiltasten navigieren Sie in der Liste, mit [Eingabe] wechseln Sie zum Fenster unter der Markierung.
WBlendet für ein paar Sekunden eine Statuszeile am unteren Fensterrand ein, welche die Anzahl der geöffneten Fenster (und deren Namen) anzeigt.
Tastaturkürzel von Screen

Testen ob der CGMiner läuft

mit top, htop oder ps

CGminer 4.12.1 GekkoScience

Beschreibt die Installation von CGminer 4.12.1 GekkoScience auf einem Raspberry Pi 2. Beim CGminer 4.12.1 von „wareck“ handelt es sich um eine speziell für die USB Miner Compac, 2pac, Newpac und CompacF angepasste Version.

Weitere Informationen gibt es bei github.

Hard und Software
GekkoScience CompacF USB Miner
Raspberry Pi 2
Lüfter / Kühlung für Miner

Voraussetzungen
Vorinstalliertes und aktualisiertes Raspian (Debian stretch) auf SD-Karte mit ssh-Zugang.

Zusätzliche Pakete
Zusätzliche Pakete installieren um die Abhängigkeiten von CGminer aufzulösen:

sudo apt-get install build-essential git autoconf automake libtool pkg-config libcurl4-openssl-dev libudev-dev libjansson-dev libncurses5-dev libusb-1.0-0-dev zlib1g-dev -y

build-essential – Compiler und Compile Werkzeuge
git – Source Code repository
autoconf – für den Build aus GIT nötig
automake – für frn Build aus GIT nötig
libtool pkg-config – shared library Zugriff für CGMine
pkg-config – Für Build und Kompilierung benötigt
libcurl4-openssl-dev – http connectivity für CGMiner
libudev-dev – USB support für CGMiner
libjansson-dev – C-Bibliothek für JSON-Daten
libncurses5-dev –  Textbasiertes User Interface für CGMiner
libusb-1.0-0-dev – USB support für CGMiner
zlib1g-dev – Kompressionsbibliothek

CGMiner aus GIT klonen
git clone klont von github den aktuellen CGminer-gekko.

sudo git clone https://github.com/wareck/cgminer-gekko.git

CGMiner kompilieren
Der Parameter –enable-gekko aktiviert die GekkoScience Treiber.

cd cgminer-gekko
sudo usermod -a -G dialout,plugdev $USER
sudo cp 01-cgminer.rules /etc/udev/rules.d/
sudo CFLAGS="-O2 -march=native" ./autogen.sh
sudo ./configure --enable-gekko
make
sudo make install

Binary testen
Das erzeugte Binary testen. Mit der Option -n werden alle angeschlossenen USB-Miner angezeigt.

./cgminer -n

Inbetriebnahme

sudo  ./cgminer -o stratum+tcp://stratum.braiins.com:3333 -u hargil.BTC_02 -p anything123 --suggest-diff 32 --gekko-compacf-freq 250

weitere mögliche Gekko-Parameter

  --gekko-compac-freq <clock>   Chip clock speed (MHz) default is 200 Mhz
  --gekko-2pac-freq <clock> Chip clock speed (Mhz) default is 150 Mhz 
  --gekko-newpac-freq <clock> Chip clock speed (Mhz) default is 150 Mhz
  --gekko-compacf-freq <clock>
  --gekko-r606-freq <clock> Set GekkoScience Terminus R606 frequency in MHz, range 50-900 (default: 550)
  --gekko-terminus-detect Detect GekkoScience Terminus BM1384
  --suggest-diff <value> Limit diff for starting mine default is 32

Jedermannsrechte

§32 StGB – Notwehr / Nothilfe

(1) Wer eine Tat begeht, die durch Notwehr geboten ist, handelt nicht rechtswidrig.

(2) Notwehr ist die Verteidigung, die erforderlich ist, um einen gegenwärtigen rechtswidrigen Angriff von sich oder einem anderen abzuwenden.

§227 BGB – Notwehr / Nothilfe

(1) Eine durch Notwehr gebotene Handlung ist nicht widerrechtlich.

(2) Notwehr ist diejenige Verteidigung, welche erforderlich ist, um einen gegenwärtigen rechtswidrigen Angriff von sich oder einem anderen abzuwenden.

§15 OWiG – Notwehr / Nothilfe

(1) Wer eine Handlung begeht, die durch Notwehr geboten ist, handelt nicht rechtswidrig.

(2) Notwehr ist die Verteidigung, die erforderlich ist, um einen gegenwärtigen rechtswidrigen Angriff von sich oder einem anderen abzuwenden.

(3) Überschreitet der Täter die Grenzen der Notwehr aus Verwirrung, Furcht oder Schrecken, so wird die Handlung nicht geahndet.

§34 StGB – Rechtfertigender Notstand

Wer in einer gegenwärtigen, nicht anders abwendbaren Gefahr für Leben, Leib, Freiheit, Ehre, Eigentum oder ein anderes Rechtsgut eine Tat begeht, um die Gefahr von sich oder einem anderen abzuwenden, handelt nicht rechtswidrig, wenn bei Abwägung der widerstreitenden Interessen, namentlich der betroffenen Rechtsgüter und des Grades der ihnen drohenden Gefahren, das geschützte Interesse das beeinträchtigte wesentlich überwiegt. Dies gilt jedoch nur, soweit die Tat ein angemessenes Mittel ist, die Gefahr abzuwenden.

§16 OWiG – Rechtfertigender Notstand

Wer in einer gegenwärtigen, nicht anders abwendbaren Gefahr für Leben, Leib, Freiheit, Ehre, Eigentum oder ein anderes Rechtsgut eine Handlung begeht, um die Gefahr von sich oder einem anderen abzuwenden, handelt nicht rechtswidrig, wenn bei Abwägung der widerstreitenden Interessen, namentlich der betroffenen Rechtsgüter und des Grades der ihnen drohenden Gefahren, das geschützte Interesse das beeinträchtigte wesentlich überwiegt. Dies gilt jedoch nur, soweit die Handlung ein angemessenes Mittel ist, die Gefahr abzuwenden.

§35 StGB – Entschuldigender Notstand

(1) Wer in einer gegenwärtigen, nicht anders abwendbaren Gefahr für Leben, Leib oder Freiheit eine rechtswidrige Tat begeht, um die Gefahr von sich, einem Angehörigen oder einer anderen ihm nahestehenden Person abzuwenden, handelt ohne Schuld. Dies gilt nicht, soweit dem Täter nach den Umständen, namentlich weil er die Gefahr selbst verursacht hat oder weil er in einem besonderen Rechtsverhältnis stand, zugemutet werden konnte, die Gefahr hinzunehmen; jedoch kann die Strafe nach § 49 Abs. 1 gemildert werden, wenn der Täter nicht mit Rücksicht auf ein besonderes Rechtsverhältnis die Gefahr hinzunehmen hatte.

(2) Nimmt der Täter bei Begehung der Tat irrig Umstände an, welche ihn nach Absatz 1 entschuldigen würden, so wird er nur dann bestraft, wenn er den Irrtum vermeiden konnte. Die Strafe ist nach § 49 Abs. 1 zu mildern.

§228 BGB – Defensiv Notstand

(1) Wer eine fremde Sache beschädigt oder zerstört, um eine durch sie drohende Gefahr von sich oder einem anderen abzuwenden, handelt nicht widerrechtlich, wenn die Beschädigung oder die Zerstörung zur Abwendung der Gefahr erforderlich ist und der Schaden nicht außer Verhältnis zu der Gefahr steht. 

(2)Hat der Handelnde die Gefahr verschuldet, so ist er zum Schadensersatz verpflichtet.

§904 BGB – Aggressiv Notstand

Der Eigentümer einer Sache ist nicht berechtigt, die Einwirkung eines anderen auf die Sache zu verbieten, wenn die Einwirkung zur Abwendung einer gegenwärtigen Gefahr notwendig und der drohende Schaden gegenüber dem aus der Einwirkung dem Eigentümer entstehenden Schaden unverhältnismäßig groß ist. Der Eigentümer kann Ersatz des ihm entstehenden Schadens verlangen.

§229 BGB – Allgemeine Selbsthilfe

Wer zum Zwecke der Selbsthilfe eine Sache wegnimmt, zerstört oder beschädigt oder wer zum Zwecke der Selbsthilfe einen Verpflichteten, welcher der Flucht verdächtig ist, festnimmt oder den Widerstand des Verpflichteten gegen eine Handlung, die dieser zu dulden verpflichtet ist, beseitigt, handelt nicht widerrechtlich, wenn obrigkeitliche Hilfe nicht rechtzeitig zu erlangen ist und ohne sofortiges Eingreifen die Gefahr besteht, dass die Verwirklichung des Anspruchs vereitelt oder wesentlich erschwert werde.

§859 BGB – Selbsthilfe des Besitzers

§859 BGB – Selbsthil

(1) Der Besitzer darf sich verbotener Eigenmacht mit Gewalt erwehren.

(2) Wird eine bewegliche Sache dem Besitzer mittels verbotener Eigenmacht weggenommen, so darf er sie dem auf frischer Tat betroffenen oder verfolgten Täter mit Gewalt wieder abnehmen.

(3) Wird dem Besitzer eines Grundstücks der Besitz durch verbotene Eigenmacht entzogen, so darf er sofort nach der Entziehung sich des Besitzes durch Entsetzung des Täters wieder bemächtigen.

(4) Die gleichen Rechte stehen dem Besitzer gegen denjenigen zu, welcher nach § 858 Abs. 2 die Fehlerhaftigkeit des Besitzes gegen sich gelten lassen muss.

§860 BGB – Selbsthilfe des Besitzdieners

Zur Ausübung der dem Besitzer nach § 859 zustehenden Rechte ist auch derjenige befugt, welcher die tatsächliche Gewalt nach § 855 für den Besitzer ausübt.

§127 StPO Abs. 1 – Vorläufige Festnahme

(1) Wird jemand auf frischer Tat betroffen oder verfolgt, so ist, wenn er der Flucht verdächtig ist oder seine Identität nicht sofort festgestellt werden kann, jedermann befugt, ihn auch ohne richterliche Anordnung vorläufig festzunehmen. Die Feststellung der Identität einer Person durch die Staatsanwaltschaft oder die Beamten des Polizeidienstes bestimmt sich nach § 163b Abs. 1.

(2) Die Staatsanwaltschaft und die Beamten des Polizeidienstes sind bei Gefahr im Verzug auch dann zur vorläufigen Festnahme befugt, wenn die Voraussetzungen eines Haftbefehls oder eines Unterbringungsbefehls vorliegen.

(3) Ist eine Straftat nur auf Antrag verfolgbar, so ist die vorläufige Festnahme auch dann zulässig, wenn ein Antrag noch nicht gestellt ist. Dies gilt entsprechend, wenn eine Straftat nur mit Ermächtigung oder auf Strafverlangen verfolgbar ist.

(4) Für die vorläufige Festnahme durch die Staatsanwaltschaft und die Beamten des Polizeidienstes gelten die §§ 114a bis 114c entsprechend.

HyperCube 3D – los gehts

Hier werde ich beschreiben wie ich mit dem Hypercube drucke.

Druckdatei vorbereiten

Dateien zum Drucken werden entweder mit OpenSCAD erstellt oder von z.B. www.thingiverse.com oder einer anderen Quelle geladen. Die Datei sollte im Format .stl sein.

Die Datei wird dann im Programm Repetier-Host geladen und weiter bearbeitet.
Repetier-Host -> Datei -> öffnen -> .stl-Datei auswählen

10mm Testwürfel

Die geladene Datei wird mit der CuraEngine geslicet, also in ein für den Drucker nutzbare Format übersetzt. Was an der CuraEngine alles eingestellt werden kann und wie diese funktioniert habe ich im Beitrag „3D-Drucker – CuraEngine“ beschrieben. Die mit dem Slicer erzeugte Datei wird nun auf einen USB-Stick gespeichert.

Drucker starten / einschalten

Der Drucker wird am verbauten (umgebauten) PC-Netzteil eingeschaltet. Als sobald das Startmenu erscheint, ist der Drucker startklar.

AutoBedLeveling – ABL

Das Menu zum Bedleveling ist vom Hauptmenu aus über den Button „Leveling“ oder „ABL“ erreichbar.

ABL – Menu

[Start] Startet das Leveling

[Z Offset] Offset von Düsenspitze zum BL-Touch in der Z-Achse einstellen

[BLTouch] BL-Tocuh bedienen

[Z Fade]

Der Offset zwischen Düse (Nozzle) und dem BL-Touch (Sensor) ist in der Marlin Firmware 2.0.x in der Configuration.h fest hinterlegt. Zum jetzigen Zeitpunkt war der Offset 1.95mm. Der Offset kann sich durch abreiten am Drucker verändern und sollte ab und zu überprüft und entsprechend angepasst werden.

 * Nozzle-to-Probe offsets { X, Y, Z }
...
#define NOZZLE_TO_PROBE_OFFSET { 28, 12, -1.95 }

drucken