diy_flatfield-controller
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
diy_flatfield-controller [2019/03/06 18:44] – roehl | diy_flatfield-controller [2020/11/22 16:19] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== DIY Flatfield-Controller ====== | ====== DIY Flatfield-Controller ====== | ||
- | Der Flatfield-Controller | + | Für die Reparator (oder Nachbau) des Flatfield-Controller |
+ | <WRAP center round important 80%> | ||
+ | Dieses Raspberry Pi Projekt benutzt Relays und steuert lebensgefährliche Netzspannung 220V. Projekte dieser Art sollten nur bei ausreichenden Elektronikkenntnissen und Praxiserfahrung bearbeitet werden. | ||
+ | </ | ||
+ | |||
+ | ===== Übersicht ===== | ||
== Hardware == | == Hardware == | ||
Zeile 7: | Zeile 12: | ||
* Relay-Shield (4 Relays, wovon 3 benötigt werden) | * Relay-Shield (4 Relays, wovon 3 benötigt werden) | ||
* I2C Servo-Shield (16 Channel wovon 2 benötigt werden) | * I2C Servo-Shield (16 Channel wovon 2 benötigt werden) | ||
- | * 4 Endschalter | + | * // |
- | * 2 Servomotoren " | + | * // |
* Servocity Gearset | * Servocity Gearset | ||
* Mechanik-Bauteile (8mm Welle, Aluminiumbefestigung) | * Mechanik-Bauteile (8mm Welle, Aluminiumbefestigung) | ||
* Halter für die Folie sind mit dem 3D-Drucker gefertigt | * Halter für die Folie sind mit dem 3D-Drucker gefertigt | ||
- | * | + | * //2x// Einbausteckdosen |
+ | * //2x// 4Pin-DC Buchsen und //2x// 3Pin-Dc Buchsen | ||
+ | * //1x// Kaltgerätebuchse (Stromversorgung) | ||
+ | * //1x// 5-6 Volt 2.1mm (innen positiv) Buchse (Spannungsversorgung für die Servomotoren) | ||
+ | * Lan-Verlängerung (optional) | ||
+ | |||
+ | <WRAP center round info 90%> | ||
+ | Beim Bau einen " | ||
+ | </ | ||
+ | |||
== Software == | == Software == | ||
+ | * Raspian Betriebssystem | ||
* Apache2 Webserver | * Apache2 Webserver | ||
* PHP Webinterface | * PHP Webinterface | ||
* Python-Scripte zur Steuerung der Hardware | * Python-Scripte zur Steuerung der Hardware | ||
+ | ===== Details ===== | ||
+ | ==== Hardware ==== | ||
- | ==== Quellcode und Nachbau ==== | + | === Pinbelegung |
+ | {{ : | ||
+ | <WRAP center round box 90%> | ||
+ | == Python auswahl der Pinbelegung == | ||
+ | |||
+ | **GPIO.setmode(GPIO.BOARD)** wählt die Pinheader (1-40) als Nummerierung aus, während | ||
+ | ** GPIO.setmode(GPIO.BCM)** die GPIO Bezeichnung (außerhalb des roten Kastens) auswählt. | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | 14 Pins werden verwendet. Pins __ohne__ Bezeichnung werden für die elektronische Schaltung benötigt, müssen jedoch | ||
+ | ^ Pin (Board Nummerierung) | ||
+ | |38 | PIN_RELAY_1 | ||
+ | |36 | PIN_RELAY_2 | IN2 (Relay)|Relay für Steckdose Z61 Flatfield-Folie| | ||
+ | |32 | PIN_RELAY_3 | IN3 (Relay) |Relay für die Servomotoren (Servoshield) | | ||
+ | | 17 | | VCC (Relay)| Relay VCC | ||
+ | | 34 | |GND (Relay) | Relay GND | ||
+ | |1 |I2C (VCC 3.3) | VCC (PCA9685) | | ||
+ | |3 |I2C (SDA)| SDA (PCA9685) | | ||
+ | |5 |I2C (SCL) | SCL (PCA9685) | | ||
+ | |6 |I2C (GND) | GND (PCA9685) | | ||
+ | |29 |PIN_SWITCH_1_OPEN | |Endschalter C11 open | | ||
+ | |31 | ||
+ | |33 | ||
+ | |35 | ||
+ | |39 | | | Masseleitung der Endschalter (Flatfield A) | | ||
+ | |30 | | | Masseleitung der Endschalter (Flatfield B) | | ||
+ | === Relay === | ||
+ | {{ : | ||
+ | |||
+ | Die Pinheader-Leiste ist die Anschlussseite des Raspberry PI. Jedes Relay verfügt eine eine 3er Klemme an dem der Stromführende (220V) Verbraucher angeschlossen wird. Der Raspberry PI schaltet das Relay (als Schalter AN/AUS), hierfür wird jeweils ein stromführendes Kabel des Verbrauches in eine Klemme hinein geführt und an einer zweiten herausgeführt. | ||
+ | |||
+ | Der Baustein wird als NO-Schalter (**n**ormally **o**pen) verwendet, d.h. ohne Spannungszufuhr | ||
+ | === PCA9685 I2C Servo Board === | ||
+ | {{ : | ||
+ | |||
+ | * Default Adresse 0x40 wird verwendet. | ||
+ | * Die grüne Klemme dient der Stromversorgung der angeschlossenen Servomotoren. Diese Klemme kann über Relay3 geschaltet werden. Ich verwende ein 6 Volt (3 Ampere) Netzteil. Das über einen 2.1 mm Stecker (innen positiv) an die Box angeschlossen werden kann. | ||
+ | * Kanal 0 und 1 werden für die Servomotoren verwendet. | ||
+ | |||
+ | Für die Verbindung des Controllers mit dem Raspi werden vier Leitungen benötigt. Die Pinbelegung ist weiter oben angegeben. | ||
+ | | ||
+ | |||
+ | |||
+ | ==== Software ==== | ||
+ | Nach der Installation wurde mit //apt-get upate// und //apt-get upgrade// einmalig alles aktualisiert. | ||
+ | |||
+ | * Raspberry Pi (Raspian) | ||
+ | * SSH aktivieren (Passwort ändern nicht vergessen 8-) ) | ||
+ | * Raspi-Config | ||
+ | * I2C freischalten | ||
+ | * //i2cdetect -y 1// (auf der Konsole) ergibt dann, dass die Addresse 40 (default) zur Verfügung steht. (Hierzu muss der Servocontroller mit dem Raspi verbunden sein) | ||
+ | * //sudo pip install Adafruit-PCA9685// | ||
+ | * Frequenz ist Moderat auf 800 MHZ gesetzt | ||
+ | * Festplatten Erweiterung aktivieren nicht vergessen | ||
+ | * Python 3.5 (ist bereits lauffähig) | ||
+ | |||
+ | |||
+ | <WRAP center round important 90%> | ||
+ | Der der Raspberry nur im (vertrauenwürdigen) lokalen Netz zur Verfügung steht wird großzügig mit der Rechtevergabe zur Ansprache der Hardware (Python/ | ||
+ | </ | ||
+ | |||
+ | === PHP === | ||
+ | Mit Python (und Bootstrap als HTML-Layout) wurde eine minimale Weboberfläche entworfen. | ||
+ | Die Steuerung der Hardware erfolgt, indem in PHP Pythonscripte aufgerufen werden. | ||
+ | === Python === | ||
+ | Die eigentliche Steuerung der Hardware läuft durch einfache Pythonscripte, | ||
==== Installation und Inbetriebnahme ==== | ==== Installation und Inbetriebnahme ==== | ||
+ | Der Quellcode ist bei Bitbucket gelistet. | ||
+ | Dieser Quellcode enthält die alle erforderlichen PHP (Html) und Pythonscripte. | ||
+ | Voraussetzung ist: | ||
+ | - Installiertes Raspian mit LAMP | ||
+ | - I2C muss freigeschaltet sein | ||
+ | - Adafruit-PCA9685 Bibliothek (s.o) muss installiert sein | ||
+ | - Hardware muss zur Verfügung stehen | ||
+ | |||
+ | Die Installation erfolgt in zwei Schritten: | ||
+ | - Quellcode im Verzeichnis / | ||
+ | - Rechte vergeben | ||
+ | |||
+ | Schalterpinout: | ||
+ | * Servo | ||
+ | * 3PIN: Signal=links, | ||
+ | |||
+ | * Endschalter | ||
+ | * 4PIN: GND=unten, open=links, close=rechts | ||
+ | |||
+ |
diy_flatfield-controller.1551897893.txt.gz · Zuletzt geändert: 2020/11/22 16:41 (Externe Bearbeitung)