Arduino as Port Expander

PetrOs
Beiträge: 13
Registriert: 26.03.2020, 10:45
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Arduino as Port Expander

Beitrag von PetrOs » 01.04.2020, 17:37

[MOD: Von hier ausgelagert: viewtopic.php?f=6&t=162#p1432
PetrOs hat geschrieben:
30.03.2020, 20:10
Ich werde wohl auch Arduino Nano als ein weiteres Port Expander-Typ umsetzen. Ich brauche fuer meine Weichenstrasse sowie Servos als auch LED als auch Gleisbesetzmelder-Steuerung, und die vorhandenen Expander bei mir nicht da sind ;) Arduino Nano sind aber tonnenweise da ;)
]



Arduino as Port extender lib ist jetzt auf GitHub. https://github.com/PetrOsipov/ArduinoPortExtender
Morgen kann ich dann integrieren ;)

PetrOs
Beiträge: 13
Registriert: 26.03.2020, 10:45
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Rueckmeldung

Beitrag von PetrOs » 15.04.2020, 11:58

Ich bin jetzt dran bei der Integration von Arduino-Platinen als Port Extender. LED, usw ansteuern geht.
Allerdings habe ich folgendes Problem, bzw. Lösungsvorschlag:

Fuer die Servos wird derzeit Servo.h Bibliothek in ActionServo verwendet. Das geht nur bei direkter Anbindung von Servos an ESP, nicht aber wenn es z.B. über PCA9685 oder Arduino Port Extender angebunden wird.
Wäre es OK wenn ich das umbaue?

Idee:
Alle Umsetzungen von Ports.h haben eine Methode setServo(int winkel). Jeder Pin hat dann auch Eigenschaft, ob es ein Servo treiben kann. Bei ESP8266 wird es mit Servo.h umgesetzt, bei PCA9685 mit AdafruitLibrary, und bei Arduino wird es auch gehen mit Servo.h aber auf dem Slave-Board. Bei MCP wird es dann halt nicht unterstützt, wie bisher. So hat man in ActionServo nur die Ansteuerung, und die Umsetzung ist dann in jeweiliger Ausprägung von Ports.h drin.

little.yoda
Site Admin
Beiträge: 516
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 13 Mal
Danksagung erhalten: 45 Mal

Re: Rueckmeldung

Beitrag von little.yoda » 15.04.2020, 14:32

Hatte ich so schon geplant, als ich die Port Klasse eingeführt habe.
Aber bislang noch nicht umgesetzt.

Von daher: gerne, so umsetzen.

PetrOs
Beiträge: 13
Registriert: 26.03.2020, 10:45
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Rueckmeldung

Beitrag von PetrOs » 15.04.2020, 15:25

Sehr gut, bin mittendrin beim Umsetzen ;)

little.yoda
Site Admin
Beiträge: 516
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 13 Mal
Danksagung erhalten: 45 Mal

Re: Rueckmeldung

Beitrag von little.yoda » 15.04.2020, 16:03

Wenn du magst, erweiterst du noch die ENUM in Ports.h um SUPPORTS_SERVO.
Ich habe in der PortsESP32 angegangen, die "Fähigkeiten" der Ports zu hinterlegen.
Ziel war es, für alle Ports diese Information verfügbar zu haben, um einige Fehler abfangen zu können.

PetrOs
Beiträge: 13
Registriert: 26.03.2020, 10:45
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Arduino as Port Expander

Beitrag von PetrOs » 15.04.2020, 16:26

Pull request raus :) Laut Servo lib ist nur eine bestimmte Anzahl der Servos nicht zu überschreiten, jedes Digitalpin kann das.

little.yoda
Site Admin
Beiträge: 516
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 13 Mal
Danksagung erhalten: 45 Mal

Re: Arduino as Port Expander

Beitrag von little.yoda » 15.04.2020, 16:45

Habe den Pull-Request gesehen und etwas kommentiert.
Wenn du die eine Änderungen (Zip entfernen; platformio.ini erweitern) in deinem Branch durchführst, dann merge ich es und baue später noch meine Anmerkungen ein.


Schön zu sehen, dass dank der Klassenstruktur solche Erweiterung relativ einfach zu implementieren sind.

PetrOs
Beiträge: 13
Registriert: 26.03.2020, 10:45
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Arduino as Port Expander

Beitrag von PetrOs » 15.04.2020, 19:38

Super, danke! Jetzt ist es drin ;)

Morgen werde ich mich an die Konfiguration von meinem Bahnhof stürzen.

ESP in der Mitte, unter dem Gleisfeld ein Arduino, der dann Servos, Signale und Rueckmelder steuert.

little.yoda
Site Admin
Beiträge: 516
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 13 Mal
Danksagung erhalten: 45 Mal

Re: Arduino as Port Expander

Beitrag von little.yoda » 16.04.2020, 08:28

Wenn du mal Lust und Zeit hast, wäre es schön, wenn du mir mal ein paar Fotos von deiner Lösung schicken könntest.

Ich würde sie gerne in meiner "Präsentation" in den Bereich "Aus der Praxis" übernehmen.

https://littleyoda.github.io/littleyoda ... ntation/p/

PetrOs
Beiträge: 13
Registriert: 26.03.2020, 10:45
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Arduino as Port Expander

Beitrag von PetrOs » 16.04.2020, 09:57

Klar! Bin grad dabei mal die "richtigen" boards mal zu flaschen, da die Wemos zu dick ist für meine Zwecke (da Parkettmodule, nur 2 cm dick, und nur 12mm unterhalb der Platte für Elektronik), und es alles auf eine NodeMCU rüber muss (und auch Nano fuer Uno). Es fehlen aber noch die geplanten Verbinder zwischen den Segmenten, Aliexpress braucht derzeit lange, wird also provisorisch verkabelt.. und auch die Signale muss ich noch zeichnen und 3D Drucken (aber eine Led-Kette zum testen wird heute erstellt)

Antworten