Lok24
20.09.2016, 11:47

Editiert von
Lok24
20.09.2016, 11:53

SBrick, Arduino und Raspberry

Hallo zusammen,

ich möchte einmal über eine Alternative zu PF nachdenken.
Als Empfänger scheint mir SBrick das einzig ernstzunehmende Produkt, damit läge die Übertragung fest bei Bluetooth. Oder gibt es anderes Sinnvolles?

Zum Senden benötigte ich dann irgendwas etwas wie einen Arduino oder Raspberry. Leider bin ich auf den Seiten so gar nicht fündig geworden, was die einzelnen an Featuers bieten.

Wenn ich es richtig verstehe benötige ich:
- Prozessorkarte
- USB Bluetooth-Modul (da nicht auf der Prozessorplatine?)
- 5V Stromversorgung (9v?)

- Bootfähige SD-Karte mit OS
- Module für den Bluetooth-Stick
- Module für das SBrick-Protokoll
- SDK für den PC (welche Sprache?)
- Verbindungskabel PC/Controller

Leider, leider ist das ganze Unix/OpenSource so gar nicht meine Welt, selbst mit Mühe verstehe ich auf den entsprechenden Seiten ungefähr Null. Der Link von Steffen letztens hat mich mehr als ratlos hinterlassen

Was ich machen möchte:
Eine Steuertabelle anlegen wie folgt:
IO-Port Raspberry - A/D - Kanal SBrick - Port SBrick

Und dann soll das tun.
Leider habe ich auch auf der SBrick-Seite nicht einmal die Anzahl der Kanäle oder irgendwelche anderen technischen Daten gefunden.

Wer kann mir da mal mit diesen Themen auf die Sprünge helfen?

Grüße

Werner



Haenk
20.09.2016, 13:32

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

http://www.eurobricks.com/forum/index.php?showtopic=121722

Da wird das im Prinzip diskutiert.

Der Pi 3 hat bereits BT an Bord, ansonsten gibt es die BT-Dongles fuer 1 EUR auf ebay.

Aber: Ohne Programmierkenntnisse wird man an diesem Vorhaben vermutlich scheitern.



Xris
20.09.2016, 13:38

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

Hallo Werner,

schön wäre das, aber davor wäre derzeit noch einiges an Arbeit gesetzt: Die Macher scheinen für den Sbrick nämlich kein SDK anbieten zu wollen (Disskussion zum SDK).
Es gibt dort einen Verweis auf das verwendete Protokoll, so dass möglicherweise irgendwann jemand eine Bibliothek zur Kommunikation mit dem Sbrick anbieten könnte.

Gruß

Christian



GBCPeter
20.09.2016, 14:31

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

Hallo Werner
Ich würde für Steuerungsaufgaben den Arduino vorziehen, da seine Architektur für solche Zwecke konzipiert ist. Du findest auch im Netz Hard und Software, die ihn Lego-kompatibel machen kann. Du brauchst auch keinen SBrick, denn der Arduino kann ihn in allen Belangen voll ersetzen.

Gruß GBCPeter ( Aus dem Nachbarforum, der auch damit bastelt )



Lok24
20.09.2016, 15:34

Als Antwort auf den Beitrag von Lok24

Editiert von
Lok24
20.09.2016, 15:39

Re: SBrick, Arduino und Raspberry

Hallo,

Vielen Dank schon mal für die Hinweise, hier eine kurze Sammelantwort.

Die Möglichkeit mit dem Arduino ist mir bekannt, allerdings hat sich die IR-Steuerung auf Ausstellungen nicht wirklich bewährt, daher der Gedanke, auf BT umzusteigen, also SBrick.

Meine Idee ist, dass es eine Bibliothek/ein Modul geben muss, mit dem das SBrick-Protokoll an den USB-Port ausgeben wird.
Das könnte also eine Routine SBrick.SendToUSB(parm1, parm2,...) zur Verfügung stellen.

Auf dem PC stelle ich mit einem "SDK" (hier: Text-Editor) ein kleines Programm zusammen

Include SBrick.Library

do
a = getIOport(5) ; Wert von IO-port 5 holen
SBrick.SendToUSB(13,1,a) ; 13=SBrickNr, 1=PortNr, a= Geschwindigkeit)
loop

Das ganze wird auf dem Raspberry gespeichert, dort compiliert und dann ausgeführt. Wenn man an den port 5 ein Potentiometer hängt? Sollte das nicht gehen?

Dass das alles geht, hat in dem gezeigten Link Steffen ja gezeigt. Es muss also solche Libraries bereits geben.

Was mir völlig fehlt sind die Zusammenhänge. Welche Sprachen, welches OS, welche Module, wie kommuniziert man mit dem Raspberry überhaupt?
Über einen Web-Server?
Keine Ahnung. Vielleicht gibt es ein gutes Tuturial.

Zu den Programmierkenntnissen: vorhanden.
Mein erstes "ernstzunehmendes" Programm hat die Bewegung eines Steuerknüppels meiner Graupner-Fernsteurung eingelesen und daraus direkt die PWM für den Lok-Motor (über selbstgebauten Optokoppler / Booster) erzeugt. Programmiersprache: Assembler mit Prozessor-Interruptprogrammierung, um eine konstante 60Hz-Frequenz zu erzeugen - auf dem C64. UI mit Basic. Das müsste 1984 gewesen sein.



Grüße

Werner



GBCPeter
20.09.2016, 21:31

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

Hallo Werner
Bluetooth ist aufm Arduino sehr wohl möglich.
Eine Szenerie: 1x Arduino Nano, Bluetooth Adapter HC06, und H293 Ic für den Motor. Die Kombi passt praktisch in jeden Zug und das alles kannst du mit dem AppInventor übers Handy/Tablet steuern. Kostenmäßig max 30-35€ wenn die Sachen in China bestellt werden.
Und programieren kannst du in c++ wobei die fertige Software dafür praktisch im Netz zu finden ist.

Gruß Peter



daniel.vergien
21.09.2016, 08:35

Als Antwort auf den Beitrag von Lok24

Editiert von
daniel.vergien
21.09.2016, 08:38

Re: SBrick, Arduino und Raspberry

Moin,

Lok24 hat geschrieben:

Hallo zusammen,

Als Empfänger scheint mir SBrick das einzig ernstzunehmende Produkt, damit läge die Übertragung fest bei Bluetooth. Oder gibt es anderes Sinnvolles?



Wenn es was fertiges sein soll wohl schon. Wenn ich die Seite von SBrick richtig gelesen habe, ist der aber wohl "nur" ein Empfänger. Rückmeldung unterstützt der leider nicht.


Lok24 hat geschrieben:
Zum Senden benötigte ich dann irgendwas etwas wie einen Arduino oder Raspberry. Leider bin ich auf den Seiten so gar nicht fündig geworden, was die einzelnen an Featuers bieten.

Zum senden brauchst Du irgendwas was Bluetooth spricht - es kann also auch dein Handy oder Laptop sein. Hier kommt es wohl drauf an was Du eigentlich möchtest:
- Wenn Dir zwei oder drei Schieber für je eine Lok reichen, geht das noch ganz gut auf dem Tablet
- Wenn Du etwas komplexeres für Deine (feststehende) Anlage möchtest, wäre ein Arduino sicher keine schlechte Wahl - Du erstellst Dir eine Firmware, die auf deine Schalter, Regler und Motoren zugeschnitten ist, für die Ansteuerung benötigts Du dann noch ein Bluetooth Modul, sowie eventuell Motorentreiber, etc.
- Wenn Du gerne eine komplexe Anwendung wie ein Gleisbild bei dem Du die Weichen, etc per Touchscreen stellen kannst, würde ich die zu einem Raspberry raten, da das halt ein "normaler" Computer mit zusätzlichen IO Ports ist.

Lok24 hat geschrieben:
Leider, leider ist das ganze Unix/OpenSource so gar nicht meine Welt, selbst mit Mühe verstehe ich auf den entsprechenden Seiten ungefähr Null. Der Link von Steffen letztens hat mich mehr als ratlos hinterlassen

Mit Unix kommst Du nur beim Raspberry in Kontakt, wobei es für den auch ein Windows gibt. Du kannst dann also auch .net einsetzten falls Dir das näher ist.

Lok24 hat geschrieben:
Leider habe ich auch auf der SBrick-Seite nicht einmal die Anzahl der Kanäle oder irgendwelche anderen technischen Daten gefunden.


Das ist leider wahr, schön Bunt aber kaum Fakten...

Was mich zum SBrick und Bluetooth noch interessieren würde: Bluetooth ist ja eine Punkt-zu-Punkt Verbindung, wie schnell geht der Wechsel der Verbindung, wenn ich z.B. alle Züge stoppen möchte?

Wie Peter schrieb, ist ein selbst gebauter Empfänger natürlich auch möglich, wobei man dann evtl. gleich einen esp8266 WLAN Chip nehmen könnte - dann sind auch mehrere parallele Verbindungen von der Steuerung zu den Empfängern möglich. Der Punkt ist dabei halt immer der das man sich Features für einiges an Arbeit "kauft" im Vergleich zu einem SBrick...

Ich hoffe ich konnte ein wenig helfen

Daniel

P.S.: Das hier scheint mir eine schicke Sache zu sein: WLAN Zug



Lok24
21.09.2016, 12:10

Als Antwort auf den Beitrag von daniel.vergien

Editiert von
Lok24
21.09.2016, 12:16

Re: SBrick, Arduino und Raspberry, Sammelantwort

Hallo alle zusammen,

Danke für die weiterführenden Infos.

Hier nochmal die Projektliste.

Was will ich erreichen?
- die unsichere Signalübertragung via IR durch eine bessere ersetzen

Möglichkeiten der Signalübertragung:
- Schienen (nur via 12V/9V-Schienen, DCC)
- WiFi
- BT
- andere ?

Alle drei sind prinzipiell bidirektional.

Wie will ich das erreichen?
- mit möglichst geringem Aufwand

Welche Elemente sollen wie ersetzt werden?
- Empfänger im Lego-Stil (SBrick, NodeMCU / Arduino mit MotorShield)
- Sender im Lego-Stil (Ein Lego-Kasten mit einem Drehknopf und 3 Tasten, drinnen eine Nicht-Lego-Elektronik), ggf. noch ein Wahlschalter für die Lokadresse. Kein Smartphone/Tablet.

Was soll nicht erreicht werden?
- Automatisches fahren, Steuerung von Abläufen, Stellen von Weichen und Signalen

Was muss das Programm des Senders also tun?
- 4 Ports zyklisch abfragen (ggf mehr für die Lokadresse)
- mit den vorherigen Werten vergleichen
- bei Änderung übertragen
- ca alle 1sec alle Werte übertragen (Sync)

Das ist alles, der Quellcode läge bei deutlich unter 50 Zeilen....

Weiter Programmierung:
- keine

Hoffe das ist jetzt klarer geworden.
Die Option einer Steuerung, wie ihr und Steffen sie beschreibt, bliebe natürlich dadurch als Option erhalten.

<Einschub>
Rückmeldung
Für eine Automatik ist eine Rückmeldung unerlässlich.
DCC bietet die, SBrick nicht. Für eine Positionsbestimmung über die Rückmeldung würde man Balisen nutzen. Moderne Systeme arbeiten allerdings mit einer Art GPS und benötigen keine Rückmeldung des Zuges. Wer auf der FanWelt ist kann sich das vermutlich ein Stockwerk tiefer anschauen.
</Einschub>

Was ich bisher verstanden habe:

Ein Arduino ist ein Mikrocontroller ohne OS, Tastatur, Maus, Monitor.
Man schließt ihn an den PC an, dort gibt es eine Entwicklungsumgebung, mit der man das Programm erstellt und in den Controller lädt. (Ähnlich einem EV3)
BT oder WiFi mit Zusatzhardware möglich.
Einfacher Betrieb mit 9V-Batterie.
Stromverbrauch bei 30mA

Ein Raspberry Pi ist ein kompletter "PC" mit OS und Anschlüssen für Tastatur, Maus, Monitor.
Man erstellt am PC (oder kauft fertig) eien SD-Karte, von der der Controller bootet, egal ob Linux oder Windows.
Programmieren kann man dann direkt auf dem Gerät, auch das Programm dort compilieren. (Ähnlich einem PC)
BT oder WiFi mit Zusatzhardware (je nach Modell) möglich.
Betrieb mit USB-Powerpack.
Stromverbrauch bei 80 mA.

Was mir (anscheinend) "nur" fehlt ist die Library für das SBrick-Protokoll.

Habe ich das soweit alles richtig verstanden?


Grüße

Werner



Lothar
21.09.2016, 15:17

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

Hallo Werner,

ich habe keine Ahnung, was Du genau machen willst, da ich mich dem technischen Zeugs nicht so auskenne,
aber vielleicht hilft Dir das weiter:

http://www.bluesmartcontrol.com/de

Nimm einfach mal mit Andreas Kontakt auf.

Liebe Grüße
Lothar



Lok24
21.09.2016, 16:28

Als Antwort auf den Beitrag von Lothar

Re: SBrick, Arduino und Raspberry

Haloo Lothar,

Lothar hat geschrieben:

ich habe keine Ahnung, was Du genau machen willst, da ich mich dem technischen Zeugs nicht so auskenne,


Ich habe das hier nochmal genauer beschrieben.

Keinesfalls möchte ich irgendwas mit einem Smartphone betreiben.
Trotzdem Danke für den interessanten Link.

Grüße

Werner



FETT
29.09.2016, 14:20

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

Es gibt für Arduino unzählige Module.
Ganz günstig auf aliexpress
Dann kannst du mit Smartphone oder Tablet das ganze bedienen.

Einen Sbrick brauchste da auch nicht, da du ja alles über den Arduino steuern kannst.

Ich habe z.B. vor meinen Kran per Arduino automatisch sich ständig bewegen zu lassen.


Das geht so nicht mitm Sbrick.
Aber mit Arduino schon.

Als nächstes mache ich mich dran meine 9V Eisenbahn komplett zu automatisieren mit Arduino.
Kostet ja nix.

Arduino Mega $5,60 ist ja ein witz...



Lok24
29.09.2016, 14:40

Als Antwort auf den Beitrag von FETT

Re: SBrick, Arduino und Raspberry

Hallo,

Danke für Deine Antwort.

FETT hat geschrieben:

Als nächstes mache ich mich dran meine 9V Eisenbahn komplett zu automatisieren mit Arduino.


d.h. Du baust einen Arduino mit BT in die Lok, dazu ein Pufferelko für den Prozessor und einen Motortreiber, und gibst konstant 9V auf die Schienen zur Stromversorgung?
Passt das in eine Lok?

Den zweiten Arduino mit BT nutzt Du als Sender.
Dann braucht Du aber noch ein Übertragungsprotokoll?

Grüße

Werner



FETT
29.09.2016, 14:56

Als Antwort auf den Beitrag von Lok24

+1Re: SBrick, Arduino und Raspberry

Nein in die Loks wird gar nichts gebaut.
Ich baue alles an die Strecke.

Per Lichtsignale / Ultraschall (besser als IR) kann mann alles steuern und regeln.

Wo ein Zug sich aufhält, ob eine Kreuzung blockiert ist.
Weichen schalten usw. usw.

Wenn du allerdings alles zentral steuern möchtest, geht das mit den entsprechenden Modulen genauso.
Aber da muss man sich weiter einarbeiten.
Ich habe mir jetzt ne ganze Ladung Module bestellt. Und fange einfach mal an und schaue was passiert.
Ideen habe ich durch die Videos unten viel.

Hier mal schöne Videos, die eine Idee geben was man so machen kann und wie der Einstieg ist.























Xymion gefällt das


Lok24
29.09.2016, 15:53

Als Antwort auf den Beitrag von FETT

+1Re: SBrick, Arduino und Raspberry

Hallo,

FETT hat geschrieben:

Nein in die Loks wird gar nichts gebaut.
Ich baue alles an die Strecke.

Verstehe, du überträgst also die passende Spannung via Motor-Treiber an die Gleise. Auch schick.

FETT hat geschrieben:
Wenn du allerdings alles zentral steuern möchtest, geht das mit den entsprechenden Modulen genauso.

Ich möchte gar nichts steuern und habe PF-Schienen.

Ich möchte lediglich die von LEGO vorgegebene IR-Steuerung durch BT ersetzen. Dazu benötige ich einen kleinen BT-Empfänger mit Motor-Treiber wie z.B SBrick und einen Sender, der das SBrick-Protokoll via BT sendet. Ein anderer Ansatz. Nein, kein Smartphone oder Tablet.

FETT hat geschrieben:

Ich habe mir jetzt ne ganze Ladung Module bestellt. Und fange einfach mal an und schaue was passiert.

Ein guter Ansatz, danke auch für die interessanten Links.


Grüße

Werner



asper gefällt das


LuDaCriSoNe
30.09.2016, 13:34

Als Antwort auf den Beitrag von FETT

Re: SBrick, Arduino und Raspberry

@FETT
Danke für die Videos, ein sehr interessantes Thema!

Gibt's die Infos, vor allem die Einrichtung vom Arduino auch irgendwo auf deutsch?


Instagram -> the_collector_of_lego
https://brickset.com/sets/ownedby-LuDaCriSoNe


asper
30.09.2016, 18:20

Als Antwort auf den Beitrag von Lok24

+1Re: SBrick, Arduino und Raspberry

Hallo,

Diesen Thread habe ich bisher verpasst.

Lok24 hat geschrieben:


Ich möchte lediglich die von LEGO vorgegebene IR-Steuerung durch BT ersetzen. Dazu benötige ich einen kleinen BT-Empfänger mit Motor-Treiber wie z.B SBrick und einen Sender, der das SBrick-Protokoll via BT sendet. Ein anderer Ansatz. Nein, kein Smartphone oder Tablet.


Genau das war mein Ansatz und das habe ich mit dem Raspberry PI und den SBricks erreicht. An den Zügen musste ich nur den IR Empfänger durch den SBrick ersetzen. Da es von SBrick nur die Doku und kein SDK gab, habe ich mir das selbst geschrieben. Ich habe hier nicht von 0 an angefangen sondern auf Code aus dem SBrick Forum aufgesetzt.

Was ich jetzt habe ist ein Modul für die Programmiersprache python und eines für die Programmiersprache javascript. Im wesentlichen funktionieren beide ungefähr so:

Zug1 = SBricks ['123456789']
Zug2 = SBricks ['ABCDEFGHI']
Zug1.move (1, 255)
Zug2.move (3, -150)
Zug1.move (1,0)

Das ist nicht der genaue Syntax aber zeigt die Idee dahinter. Die "Namen" sind in den SBricks einprogrammiert und weltweit(?) eindeutig. Man bekommt ein SBrick "Objekt" mit der eindeutigen ID und kann damit die Funktionen aufrufen. Das erste Argument bei move ist der Kanal, also an welchem der Stecker der Motor steckt, der zweite ist die Geschwindigkeit von -255..0..+255. Es gibt auch eine Funktion "blink" mit der man die LED blinken lassen kann, um herauszufinden, welcher SBrick in welchem Zug steckt.

Das ganze funktioniert auf jedem Rechner mit Linux und Bluetooth 4.0. Entwickelt und getestet habe ich das auf meinem normalen PC, kurz vor Ende ist das dann auf den Raspberry PI gewandert - ohne Anpassungen.

Eine großartige Verzögerung beim Stoppen von zwei Zügen konnte ich nicht feststellen. In einem der Züge habe ich auch zwei Motoren am SBrick angeschlossen, so dass ich immer zwei move() Befehle hintereinander schicken muss. Aber auch hier kann ich keinen Versatz bemerken.

Die Rückmeldung mit den Reed Schaltern ist dann mit einer der Bibliotheken geschehen, von denen es reichlich für den Raspberry PI gibt. Einen der digitalen Eingänge auszulesen ist sehr einfach und gut dokumentiert. Ob das auch analog geht? Dann hätte man mit einem Poti im Prinzip so was ähnliches wie einen klassischen Modellbahntrafo. (Diesen manuellen Modus habe ich während der Ausstellung in Schierling vermisst. Da werde ich definitiv weitermachen. Zur Zeit existiert ein rudimentäres Webinterface, mit dam man im Prinzip mit dem Smartphone alles steuern kann. Aber dann muss ich ja vor Ort mein eigenes WLAN aufbauen...)

Werner, ist das so ungefähr das, was Du machen möchtest? Bei diesem Ansatz müsstest Du Dich auf den Raspberry PI und Linux einlassen. python ist recht einfach zu lernen und hierfür gibt es massenhaft Beispiele. javascript sieht ein wenig mehr wie C(++) aus, die ganzen Bibliotheken arbeiten aber "asynchron", d.h. man reagiert nur auf eingehende Ereignise. Wenn Du eine fertige Software suchst, die man nur "konfigurieren" muss, habe ich leider keine Lösung. Unter Linux ist der Zugriff auf Bluetooth relativ einfach. Unter Windows scheint's nicht ganz so problemlos zu gehen. Viele der Bibliotheken gibt es nur für Linux oder die Windows-Version ist relativ ungepflegt und kann nicht alles.

Die python Programme rufen Linuxtools im Hintergrund auf (über die Kommandozeile). Das in C oder C++ nachzubauen ist machbar. Das aufwendige ist hier immer der Hintergrundprozess, der ständig mit dem SBrick kommuniziert. Ein Feature der SBRicks ist ein eingebauter Watchdog, wen man nicht immer wieder das letzte Kommando wiederholt, bleibt der Zug stehen. Das kann man wohl ausschalten, ich habe das aber als Sicherheitsfeature benutzt: Wenn man das Programm abbricht, bleiben alle Züge stehen.

Für feststehende Anlagen wie Weichen und Schranken werde ich in Zukunft auf Arduino oder ESP8266 setzen. Das ist deutlich billiger. Für Züge sind die mir zu groß - wenn man keine eigene Hardware entwickeln will und die Standard-Boards einsetzt. Die Kommunikation mit dem Raspberry PI als Zentrale sollte einfach umzusetzen sein.

(Für Interessenten, der Javascript Code liegt auf github, den python Code müsste ich raussuchen)


flickr


Xymion gefällt das


Lok24
30.09.2016, 20:30

Als Antwort auf den Beitrag von asper

Editiert von
Lok24
30.09.2016, 20:56

Re: SBrick, Arduino und Raspberry

Hallo Steffen,

asper hat geschrieben:

Diesen Thread habe ich bisher verpasst.

Ja, hab Dich schon vermisst, nachdem die Automatik mir so gut gefallen hat.

Mein Problem ist zu verstehen, wie die Programme und Bibliotheken zusammenspielen.

asper hat geschrieben:
Was ich jetzt habe ist ein Modul für die Programmiersprache python und eines für die Programmiersprache javascript. Im wesentlichen funktionieren beide ungefähr so:

Zug1 = SBricks ['123456789']
Zug2 = SBricks ['ABCDEFGHI']
Zug1.move (1, 255)
Zug2.move (3, -150)
Zug1.move (1,0)


Genau. Meins würde so aussehen:

Zug1 = SBricks ['123456789']

do
a = getport(5) ' gibt die vom Poti an Port 5 generierte Spannung als Wert
Zug1.move (1, a)
wait(100)
loop

asper hat geschrieben:
An den Zügen musste ich nur den IR Empfänger durch den SBrick ersetzen. Da es von SBrick nur die Doku und kein SDK gab, habe ich mir das selbst geschrieben. Ich habe hier nicht von 0 an angefangen sondern auf Code aus dem SBrick Forum aufgesetzt


??????
Genau da liegt mein Verständnisproblem.
Du benötigst doch irgendeine Bibliothek "SBRICK", die Dir das Objekt "SBrick" mit der Methode "Move" liefert. Ich dachte da macht man irgendwo ein Include für die und macht mit make eine ausführbare Datei. Scheint nicht so zu sein. Und das BT muss man doch sicher irgendwie einbinden? Hm.

asper hat geschrieben:
Werner, ist das so ungefähr das, was Du machen möchtest?

Ja, durchaus.

Leider ist wohl das Nichtverständnis der Zusammenhänge das wesentliche Problem, und das liegt bei mir.
Die von Dir genannten Beispiele auf github helfen mir nicht, weil sie offenbar schon viel, viel mehr machen und ich keine Ahnung habe was ich mit den einzelnen Teilen anfangen sollte und welche wozu gut sind.
Und wenn ich sie mir herunterladen würde: was sollte ich dann damit machen?

Da ich keinerlei Zugang zu diesen Dingen habe werde ich das Projekt wohl aufgeben müssen, sehr schade. So wird wohl ein Fahrbetrieb auf Ausstellungen nichts mehr.

Dennoch vielen Dank für die ausführlichen Erläuterungen, es ist offenbar genau das was ich brauche und was Du bauen möchtest, nämlich ein einfaches Fahrpult mit Drehknopf.

Ich hoffe dass ich das irgendwann einmal im Betrieb ansehen kann.

PS.:
Ich habe jetzt das hier gefunden:
https://github.com/JorgePe/SBrick-Stress-Test
Offenbar ist sbstress.py das auszuführende Script.
Aufzurufen mit "sbstress.py -a 'adapter>' -d 'device' -p 'period'"
Da findet sich dann "from sbrick import SBrick"
"sbrick" ist offenbar die im gleichen Verzeichnis liegende Datei "sbrick.py", die die Klasse "SBrick" mit ihren Eigenschaften und Methoden liefert.

Grüße

Werner



asper
30.09.2016, 22:34

Als Antwort auf den Beitrag von Lok24

Re: SBrick, Arduino und Raspberry

Hallo Werner,

Lok24 hat geschrieben:

Ich hoffe dass ich das irgendwann einmal im Betrieb ansehen kann.

Ich plane das mit zur LEGO Fanwelt nach Köln zu bringen - allerdings mit anderen Zügen und ohne Bahnübergang.


Lok24 hat geschrieben:
Ich habe jetzt das hier gefunden:
https://github.com/JorgePe/SBrick-Stress-Test


Ja, genau, das ist derselbe Autor. Seinen Code habe ich damals im SBrick Forum gefunden. So wie er jetzt auf github liegt kannte ich das (noch) gar nicht. Was seinem SBrick Modul fehlt, ist das ständige Wiederholen des letzten Befehls. Das löst er in seinem "GUI" Code. Hier hat er einen Timer laufen.

Meine Erweiterung betrifft u.a. genau dieses Aktualisieren im Hintergrund. D.h. ich brauche keinen externen Timer mehr. Sobald ein SBrick Objekt erzeugt wird, startet im Hintergrund ein "Thread" der immer den letzten Befehl wiederholt - der Anwender muss sich da nicht mehr drum kümmern.

Genau die von Dir erwähnten Module, die man mit import/include einbinden muss, habe ich selbst geschrieben. Für javascript ist das auf dem von mir verlinkten github Projekt die Datei sbrick.js im Ordner controls. Mehr brauchst Du für den SBrick nicht. (Die Datei selbst braucht dann das Modul "noble" das für Bluetooth zuständig ist).

Wahrscheinlich ist python einfacher, ich werde versuchen am Wochenende meinen python Code vom Februar auszugraben und lade das hoch. Dann kannst Du Dir das anschauen. Ist dann vielleicht überschaubarer, weil nur 2 Dateien: ein allgemein verwendbares SBrick Modul und die Logik für den 2-Zug Betrieb.

Grüße
Steffen


flickr


Lok24
30.09.2016, 23:05

Als Antwort auf den Beitrag von asper

Editiert von
Lok24
30.09.2016, 23:12

Re: SBrick, Arduino und Raspberry

Hallo Steffen,

asper hat geschrieben:

Ich plane das mit zur LEGO Fanwelt nach Köln zu bringen - allerdings mit anderen Zügen und ohne Bahnübergang.


Mift, da kann ich wahrscheinlich nicht....

asper hat geschrieben:
Meine Erweiterung betrifft u.a. genau dieses Aktualisieren im Hintergrund. D.h. ich brauche keinen externen Timer mehr. Sobald ein SBrick Objekt erzeugt wird, startet im Hintergrund ein "Thread" der immer den letzten Befehl wiederholt - der Anwender muss sich da nicht mehr drum kümmern.

Genau die von Dir erwähnten Module, die man mit import/include einbinden muss, habe ich selbst geschrieben. Für javascript ist das auf dem von mir verlinkten github Projekt die Datei sbrick.js im Ordner controls. Mehr brauchst Du für den SBrick nicht. (Die Datei selbst braucht dann das Modul "noble" das für Bluetooth zuständig ist).

AH! Erleuchtung. Da nutzen andere wohl gatttool.
Langsam wird's. Eingebunden wird das dann mit
var noble = require('noble'); , und das "require" ist Bestandteil von Node.js um Module zuladen.

d.h. egal ob js oder python: das alls sind keine gelinkten executable files, sondern werden zur Laufzeit interpretiert, und die Einzelteile müssen alle in einem Verzeichnis liegen und referieren aufeinander.

asper hat geschrieben:
Wahrscheinlich ist python einfacher, ich werde versuchen am Wochenende meinen python Code vom Februar auszugraben und lade das hoch. Dann kannst Du Dir das anschauen. Ist dann vielleicht überschaubarer, weil nur 2 Dateien: ein allgemein verwendbares SBrick Modul und die Logik für den 2-Zug Betrieb.


Du kannst es mir auch per Mail schicken, ich reiche mal meine email per PN rüber.
Ich kann zwar besser js als py (das nämlich gar nicht), aber das ist ja alles selbstähnlich.
Hab aber schon eine prima py-Sprachreferenz gefunden, mit der ich das Programm zerfieseln konnte.


Grüße und ganz, ganz lieben Dank vorab, ich glaube das ist genau das, was ich brauche.


Grüße

Werner



Lok24
01.10.2016, 11:13

Als Antwort auf den Beitrag von asper

Re: SBrick, Arduino und Raspberry

Hallo Steffen,

die Nebel lichten sich.

Ich kaufe also
- Raspberry Pi mit BT 4.0 on board
- ein Netzteil
- SD-Card mit Raspbian drauf

Das stöpsle ich mit Tastatur, Monitor und Maus zusammen und habe ein laufendes Linix mit GUI. Ohne Ahnung was ich da tue.

Von Dir bekomme ich zwei Dateien, die ich in irgendein Verzeichnis kopiere (da wird nix kompiliert der installiert)

Dann passe ich die eine an (SBrick-ID) und rufe sie von der Kommandozeile aus auf. Läuft.

asper hat geschrieben:

Die python Programme rufen Linuxtools im Hintergrund auf (über die Kommandozeile). Das in C oder C++ nachzubauen ist machbar. Das aufwendige ist hier immer der Hintergrundprozess, der ständig mit dem SBrick kommuniziert. Ein Feature der SBRicks ist ein eingebauter Watchdog, wen man nicht immer wieder das letzte Kommando wiederholt, bleibt der Zug stehen. Das kann man wohl ausschalten, ich habe das aber als Sicherheitsfeature benutzt: Wenn man das Programm abbricht, bleiben alle Züge stehen.


Das ist natürlich elegant, für mein Mickymaus-Programm hatte ich das aber bereits in den "Client" eingebaut (do-wait(100)-loop).

asper hat geschrieben:
Für feststehende Anlagen wie Weichen und Schranken werde ich in Zukunft auf Arduino oder ESP8266 setzen. Das ist deutlich billiger.


Hum. Ein Raspberry Pi zero kostet $5.

Hast Du mal überlegt DCC einzusetzen?
Das ist Standard, auch halbwegs preisgünstig und aufbaufreundlich.

Natürlich eine ganz andere Welt. Steuerbar sein sollte das über OpenDCC oder o.ä. Oder hier http://www.trainelectronics.com/DCC_Arduino/

Die zentrale Eigenschaft von DCC ist die Übertragung von Energie für die Verbraucher und die Steuersignale über zwei Adern, bei der Modellbahn eben die Schienen. Wo immer eine Weiche hin soll wird die Leitung angezapft, ein Decoder zwischengeschaltet.

Eine andere Architektur, aber es gibt Dutzende von Selbstbauprojekten.

Grüße

Werner



Steinemann
19.10.2016, 03:56

Als Antwort auf den Beitrag von LuDaCriSoNe

Re: SBrick, Arduino und Raspberry

LuDaCriSoNe hat geschrieben:

Gibt's die Infos, vor allem die Einrichtung vom Arduino auch irgendwo auf deutsch

Kleiner Badewann, kannst nicht englisch ? Peinlich für einen Big bussines Men



LuDaCriSoNe
19.10.2016, 10:53

Als Antwort auf den Beitrag von Steinemann

Re: SBrick, Arduino und Raspberry

Steinemann hat geschrieben:

LuDaCriSoNe hat geschrieben:
Gibt's die Infos, vor allem die Einrichtung vom Arduino auch irgendwo auf deutsch

Kleiner Badewann, kannst nicht englisch ? Peinlich für einen Big bussines Men


Das heißt "Padawan" kleiner Steinejunge... und das ich es nicht kann, habe ich nie gesagt ;)

Es ist aber nicht meine Muttersprache! Wenn ich es auf deutsch bekommen kann, nutze ich natürlich das.

Wie du auf dem Foto siehst, bin ich gut ausgerüstet mit Arduinos, Controllern, Sensoren und anderen Kram... Kauft man sich sicher, wenn man kein englisch kann

[image]


Instagram -> the_collector_of_lego
https://brickset.com/sets/ownedby-LuDaCriSoNe


Steinemann
19.10.2016, 14:23

Als Antwort auf den Beitrag von LuDaCriSoNe

Re: SBrick, Arduino und Raspberry

Tja kleine Badnerbahn, kaufen kann man vieles,
ob man es dann auch nutzt ?



LuDaCriSoNe
19.10.2016, 15:33

Als Antwort auf den Beitrag von Steinemann

Re: SBrick, Arduino und Raspberry

Steinemann hat geschrieben:

Tja kleine Badnerbahn, kaufen kann man vieles,
ob man es dann auch nutzt ?


Doch doch. Den ersten Code hab ich schon fertig geschrieben. Funktioniert auch einwandfrei mit Lego.

Kann ich nur empfehlen!


Instagram -> the_collector_of_lego
https://brickset.com/sets/ownedby-LuDaCriSoNe


stefanraulfs
19.10.2016, 18:09

Als Antwort auf den Beitrag von Steinemann

Re: SBrick, Arduino und Raspberry

ach hier war das mit der Badewann,

sehr schön!!



Chesleyn
24.06.2019, 09:19

Als Antwort auf den Beitrag von stefanraulfs

Re: SBrick, Arduino und Raspberry

Guten Tag auch,

Ich habe diesen Thread mit Interesse verfolgt. Aber Verstanden habe ich nichts, weil ich nicht der Computerexperte bin wie Ihr alle es seit. Ich fange gerade an mit dem Arduino. Ich muss gestehen das ich mich mit dem Programieren schwer tue. Mein Ziel ist es, mit dem Arduino die Beleuchtung zu steuern. Also nicht nur An Aus sondern auch Vor Zurück, Links, Rechts abbiegen und Start Stop und ua.
Meine Frage ist nun kann man das, dass SBrick und Arduino so Kuminizieren das der Arduino weiß wann Er was schalten soll.
Ich wäre Sehr froh wenn ihr mir da weiterhelfen könntet.

Gruß Ches



Lok24
24.06.2019, 10:49

Als Antwort auf den Beitrag von Chesleyn

Re: SBrick, Arduino und Raspberry

Hallo,

der Thraed ist schon älter, aber egal.

Chesleyn hat geschrieben:

Aber Verstanden habe ich nichts, weil ich nicht der Computerexperte bin wie Ihr alle es seit. Ich fange gerade an mit dem Arduino. Ich muss gestehen das ich mich mit dem Programieren schwer tue.

Dann wird es naturgemäß etwas knifflig.

Chesleyn hat geschrieben:
Mein Ziel ist es, mit dem Arduino die Beleuchtung zu steuern. Also nicht nur An Aus sondern auch Vor Zurück, Links, Rechts abbiegen und Start Stop und ua.

????
Beleuchtung? Abbiegen? Start/Stop?

Willst Du eine Eisenbahnanlage(?) steuern oder komplett kontrollieren?
Schreib mal, dann such ich Dir ein paar Links raus.

Vielleicht machst Du auch einen neuen Thread dazu auf?

Grüße

Werner



Gesamter Thread: