Arduino, die verblüffende Welt des Physical-Computing

  • Wer meinen Thread über den Bau der ChRB III mitverfolgt, weiss, dass ich mich seit einigen Monaten ausgiebig mit Arduinos beschäftige. Angefangen hat es mit der Idee, die Zug-Rückmeldungen im Schattenbahnhof mit Infrarot-Lichtschranken anstatt mit Reed-Kontakten oder mit Besetztmelde-Strecken zu realisieren. Abgesehen von der Erkenntnis, dass das einwandfrei funktioniert und verblüffend einfach zu realisieren ist, habe ich viele weitere Anwendungen im Bereich des Modellbau-Hobby's erkannt und will jetzt nach und nach weiter in die Welt der Arduinos vorstossen. Auch Christoph hat den Arduino entdeckt: Er steuert das Kavernen-Tor auf unserer Anlage mit einem Arduino-Nano.


    Mich haben folgende Eigenschaften in der Arduino-Welt erstaunt:
    - Arduinos einzusetzen und zu programmieren ist verblüffend einfach.
    - Arduinos und das zugehörige (massenhaft verfügbare) Zubehör ist nicht nur preisgünstig, sondern geradezu billig.
    - Es gibt eine riesengrosse Community, die Beispiel-Projekte präsentiert und Unterstützung bietet.


    Um Arduino-Projekte realisieren zu können, braucht es keine Programmierer-Kenntnisse. Was es braucht, sind gewisse Grundkenntnisse der Elektrotechnik und Kenntnisse im Umgang mit dem Computer (Mac, Linux oder Windows-PC), etwas Übung im Googeln und ein technisches Allgemein-Verständnis. Eine positive Einstellung gegenüber der digitalen Welt schadet sicher auch nicht.


    Es ist durchaus sinnvoll und legitim, Arduino-Programme aus Tutorial- oder Community-Beispielen abzutöggelen, ohne sie im Detail zu verstehen. Mit etwas technischem Verständnis und etwas Flexibilität werden diese einfachen Progrämmchen dann schnell klar.


    Ich habe diesen Thread eröffnet, mit der Absicht, den Arduino mit einfachen Worten vorzustellen. Dann möchte ich zwei, drei einfache Projekte, die zur Anwendung auf der MoBa geeignet sind, im Detail präsentieren.


    Falls es sich zeigt, dass ausreichendes Interesse vorhanden ist, kann dieser Thread auch hilfreich sein zur gegenseitigen Unterstützung und zum Erfahrungs-Austausch.


    Lasst euch nicht abschrecken durch das Wissen, dass ich als ehemaliger Software-Entwickler leichten Zugang zur Arduino-Welt erfahren habe. Sicher schadet etwas Programmierer-Erfahrung nicht, aber glaubt mir: Es geht auch ohne. Es ist sogar eine ideale Gelegenheit, spielerisch die Welt der Programmierung zu entdecken.


  • Hallo Röbi,


    Das finde ich eine tolle Idee.

    Ich habe bisher nicht den Mut gehabt in die Arduino-Welt "einzusteigen"; da ich keinerlei Programmierer-Erfahrung besitze.

    Ich freue mich auf Deine diesbezüglichen Projekte.

    Wer weiss, vielleicht kann ich das eine oder andere für meine Anlage verwenden.


    Gruss

    Roland

  • Hoi zusammen


    Auf jeden Fall! Ich tüftle da ebenfalls rum mit Arduino und hoffe, auch den einen oder anderen Beitrag zu leisten. Ich verwende es momentan noch vor allem für Zusatzfunktionen (die Verbindung von MP3-Playern, Servos etc. sind eigentlich eine wunderbare Geschichte für die Modelleisenbahn).


    Also, ich freu mich.


    LG Markus

  • Hoi Röbi

    Einige Projekte hier genauer vorzustellen, finde ich eine super Idee. Nachdem ich eure hochpräzis gebaute Anlage am 1. November besuchen durfte, kitzelt es auch mich, mehr von diesen Arduinos zu verstehen. Ich werde allerdings vorerst eher beobachten und zuhören, denn "meine Welt" mit Rautenhaus, Selectrix und Java fordert mich momentan genug. Bin gespannt! Als Idee im Hinterkopf schwebt mir eine PC-gesteuerte Beleuchtung auf der Anlage vor, die dann nichts mit dem Bahnbetrieb zu tun hat, aber vom gleichen Display aus betrieben werden könnte (Tag-/Nacht-Effekte usw.).

    Gruss Oski

    signatur_egos.jpg

    ...auch Nichtraucher können süchtig sein nach Zündhölzern!

  • PC-gesteuerte Beleuchtung auf der Anlage

    Ich habe in der Tat vor, mein erstes vorzustellendes Arduino-Projekt der Beleuchtung zu widmen. Allerdings vorerst noch nicht PC-gesteuert, sondern offline, d.h. der Arduino steuert unabhängig von anderen Systemen verschiedene Beleuchtungen (LEDs) in Häuschen mit zufälligem Ein- und Ausschalten, Strassenbeleuchtung abhängig vom Umgebungs-Licht, eine Lichtsignal-Anlage auf der Strasse, vielleicht ein Fernseh-Simulator (Flimmer-Licht durch einen Vorhang), etc.

  • Ein Arduino ist ein sogenannter Microcontroller. Das ist ein kleiner Computer, aber im Gegensatz zu einem PC oder Mac hat er keinen Bildschirm, keine Tastatur und keine Maus, dafür ist er aber grosszügig mit digitalen und analogen Ein- und Ausgängen ausgerüstet, die es dem Benutzer erlauben, mit ihm hoch-interessante Bastel-Projekte durchzuführen.


    Arduino ist nicht nur ein Microcontroller, sondern eine ganze Plattform. Es sind Entwicklungsumgebungen für Mac, Linux und Windows-PC kostenlos verfügbar. Mit dieser Software kann man über USB zu einem Arduino eine Verbindung herstellen. Man kann nun einfache oder aufwändige, kleine oder grosse Projekte erstellen, womit etwas physisches (Motor, Schrittmotor, Servomotor, Leuchtdiode, Lautsprecher, Relais, etc.) angesteuert und ggf. bewegt werden kann. Um festzustellen, was in der Umgebung läuft, kann man Sensoren (Schalter, Joystick, Mikrophon, Infrarot-Lichtschranken, Hall-Sensoren, Temperatur- und Feuchtigkeits-Sensoren, etc. anschliessen).


    Auf Grund der möglichen Anwendungen, gehört der Arduino zu den sogenannten Physical-Computing-Plattformen, also Plattformen, mit denen man physisch etwas "anrichten" (z.B. bewegen oder ein- und ausschalten) kann.



    Der Arduino Uno ist die gängigste Version. Er ist mittelgross und hat 14 digitale Ein-/Ausgänge.



    Der Arduino Mega ist der grosse Bruder des Uno. Er hat 54 digitale Ein-/Ausgänge.


    Der Arduino Nano hat die gleichen Leistungen wie der Uno. Er ist aber kleiner und hat für die Ein-/Ausgänge nicht die gleichen Steck-Verbindungen. Er ist aber geeignet, um ihn auf ein Breadboard aufzustecken.


    Nebst den gezeigten drei Arduino-Varianten gibt es noch viele weitere mit speziellen Zusatz-Eigenschaften.

    Da die ganze Arduino-Welt OpenSource ist, wird er häufig nachgebaut. Deshalb gibt es ein Fülle von Arduino-kompatiblen Controllern, die meistens preisgünstiger sind als die Originale.


    Wenn man als Neuling in die Arduino-Welt einsteigen möchte, empfehle ich den Erwerb eines Arduino Starter-Kit. Dies ist z.B. bei Digitec zum Preis von CHF 80.00 in den Sprachen Deutsch, Französisch und Englisch erhältlich. Mit dem Starter-Kit hat man (ausser dem Compi *) alles, was man braucht, um interessante Projekte durchzuführen. Das Starter-Kit enthält neben dem Original-Arduino Uno ein Handbuch, ein Breadboard, Kabel, Dioden, Widerstände und viele praktische Sensoren und Aktoren, welche für die beschriebenen Projekte benötigt werden.


    *) Um den Arduino zu programmieren braucht man die Arduino-IDE (Integrated Development Environment oder auf Deutsch Entwicklungs-Umgebung), die man von der Arduino-Website herunterladen kann. Man braucht dazu einen Mac, Linux oder Windows-PC mit USB-Anschluss).


    Solange man keine Projekte erstellt, die grossen Strombedarf haben, wird der Arduino von der USB-Schnittstelle des Compi gespeist. Um einzusteigen, braucht man also keine externe Stromversorgung.


    Arduino Starter-Kit mit Arduino Uno, Handbuch und vielen Bauteilen.


    Handbuch zum Arduino Starter-Kit.

  • Hoi Röbi

    Auf diesen Tread freue ich mich ganz besonders. Ich interessiere mich seit längerem dafür und habe auch schon einige Anwendungen mit Arduinos in Betrieb auf meiner Anlage. Leider kann ich bis jetzt selber nichts alleine erstellen da ich mit der Programmierung nicht zurecht kam.

    Ich habe einen Freund der als Lehrer unter anderem Arduino Kurse für Lehrlinge in der Schule unterrichtet und mir bei der Realisierung meiner Ideen behilflich ist. (Ich habe die Ideen und er programmiert es für mich) :facepalm: :S Dafür schäme ich mich etwas und es war nicht die Idee aber ich möchte es lernen.

    Er versuchte es schon mir zu erklären aber für mich zu schnell und kompliziert.

    Nun freue ich mich sehr hier dabei sein zu dürfen und bin gespannt wie es hier weiter geht.

    Voll motivierte Grüsse Andy

  • Es interessiert sogar mich. Ob ich Röbis Thread intellektuell folgen kann, werde ich aber erst herausfinden müssen.

    Gruss Roger


    95 von 121 grünen Ae 6/6


    Die Katze schläft im Lärm; nur die Stille weckt sie, wenn die Mäuse rascheln.

  • Hallo Röbi


    Mit einem Microcontroller kann man fast alles machen, was man will. Bin gespannt, was Du uns alles so zeigen wirst! :thumbsup:


    Da ich allerdings C als Programmiersprache gelernt habe, kam ich noch nie in die Versuchung, mit Arduino und den gegebenen Programmierumgebungen etwas zu machen. Für ein kleines Projekt für die Schule habe ich mir jetzt zwar so ein Arduino Board gekauft, aber nur, damit ich nicht die ganze Hardware selber bauen muss. Programmieren werde ich den Controller ganz normal in C :D . Dass Arduino Atmel-Controller verwendet, ist für mich da ein positiver Nebeneffekt, denn gelernt habe ich auf Atmel-Controllern. Wie ich den Programmer genau anschliessen muss, um das Arduino-Zeugs überschreiben zu können, muss ich allerdings noch anschauen.


    Wünsche Dir viel Spass damit, man kann damit wirklich viel machen! Und die IOs ganz lassen, viel Strom kann so ein Controller nicht liefern ;) . Wenn Du etwas mehr als ein LED dran hast, empfiehlt es sich, den Ausgang mit einem Transistor zu verstärken.

  • Da ich allerdings C als Programmiersprache gelernt habe, kam ich noch nie in die Versuchung,

    Also das solltest du dir noch mal genau ansehen. Für mich sieht das ganze Arduino-Zeugs arg wie ein C-Dialekt aus.


    Da kann ich mich allerdings auch täuschen, ich kann eigentlich sonst nur Basic auf AVRs und 8051, aber C war mir immer so unsympathisch, weil man so viel schreiben musste und strikte Formatierungen befolgen muss. Is nix für Chaoten...


    Schönen Abend noch, Markus

  • Für mich sieht das ganze Arduino-Zeugs arg wie ein C-Dialekt aus.

    Die für den Arduino verwendete Programmiersprache ist C++. Allerdings ist es so eingerichtet, dass man für einfache Anwendungen gar nicht mit den anspruchsvollen Konzepten des C++ konfrontiert wird. Einfache Programme bestehen im Wesentlichen aus einer Aneinanderreihung von Arduino-Befehlen und werden damit sehr sprechend und leicht verständlich.

  • Aus euren Antworten zu schliessen, ist Interesse vorhanden. Ich werde es also gern mal probieren.


    In der Zwischenzeit habe ich mir auch überlegt, wie ich vorgehen will und werde In den nächsten Tagen einen Projekt-Thread eröffnen über das erste von mir vorgestellte Bastel-Projekt mit dem Titel


    Sturzi's Arduino-Bastel-Projekt #1 - Es werde Licht


    Dabei wird sich alles um Beleuchtung mit Leuchtdioden drehen. Ich werde also zeigen, wie man mit einem Arduino Leuchtdioden ein- und ausschaltet, wie man die Helligkeit beeinflussen kann, wie man dafür sorgt, dass eine Leuchtdiode nur für eine bestimmte Zeit brennt, dann ablöscht und später wieder einschaltet. Ich werde zeigen, wie man den Lichtwechsel zufällig gestalten kann und wie man jede Leuchtdiode unabhängig von den anderen zeitlich steuern kann. Wir werden auch eine Dreifarben-Leuchtdiode in verschiedenen Farben wie einen Fernseher flimmern lassen.


    Was man nachher mit den Leuchtdioden macht, ob man sie als Innenbeleuchtung in ein Häuschen einbaut, ob sie in eine Strassenlampe eingesetzt werden sollen, ob sie Bestandteile einer Verkehrsampel werden sollen, überlasse ich dann eurer Phantasie. Ich will nur aufzeigen, wie man die Leuchtdioden mit einem Arduino steuert.


    Ob es anschliessend noch weitere Arduino-Bastel-Projekte geben wird, weiss ich noch nicht. Das hängt sicher davon ab, wie gut es mit dem ersten geht und ob ich dann noch Lust für weitere haben werde.


    Für die Verwendung der Threads bitte ich euch zu unterscheiden zwischen Projekt-spezifischen Beiträgen, die dann eben in den entsprechenden Projekt-Thread gehören, sowie allgemeinen Fragen, Diskussionen, Anregungen, Erfahrungsaustausch mit/über Arduinos. Für letzteres bitte ich euch nicht einen Projekt-Thread, sondern diesen (Arduino die verblüffende Welt des Physical-Computing) zu benützen.


  • Wir haben auf der Vereinsanlage der Winterthurer Eisenbahn Amateure in den vergangen Jahren diverse Komponenten mit Arduinos ausgerüstet. Vorallem da wo sich ein Knopf auf der Aussenseite befindet, mit dem eine Aktion ausgelöst werden kann, wurstelt dahinter ein Arduino. Für diese kleinen Aktionen sind es Arduino nano welche auf eine simple Lochrasterplatine gesteckt werden. Diese bereits realisierten Projekte funktionieren erstaunlich gut.


    Im Moment befindet sich die Meterspuranlage in einer technischen Rundumerneuerung. Sie erhält neue Stellpulte, einen automatischen Schattenbahnhof und Blockabschnitte. In einer Testphase hatten wir Stromfühler, das funktionierte nicht optimal. Jetzt sollen die Züge von IR-Lichtschranken erfasst werden. Das alles soll von Arduinos gesteuert werden. Die Stellpulte, die Weichenstrassen, die Blöcke. Ein Stellpult ist bereits auf Arduino umgebaut, zusammen mit einer Barriere. Es ist aber noch einiges an Programmier- und Verdrahtungsaufwand zu leisten.


    Es ist also für mich sehr interessant, hier bzw im Projekt-Thread mitzulesen.

  • Dani, das ist erstaunlich. Ich hätte das nicht erwartet auf einer Vereinsanlage.


    Jetzt sollen die Züge von IR-Lichtschranken erfasst werden. Das alles soll von Arduinos gesteuert werden

    Das ist ein guter Ansatz. Ich bin mit den IR-Lichtschranken und deren Kontrolle durch die Arduinos sehr zufrieden. Falls ihr mal bei uns vorbeischauen wollt: Sehr gern!


    Es ist also für mich sehr interessant, hier bzw. im Projekt-Thread mitzulesen.

    Das freut mich natürlich.

  • Inspiriert durch Dani habe ich jetzt auch schon ein Thema für das zweite Bastelprojekt:


    Sturzi's Arduino-Bastel-Projekt #2 - Geschwindigkeits-Messer und Rundenzähler mit IR-Lichtschranken


    Aber erst bringen wir mal das Projekt #1 auf einen anständigen Stand. Und die ChRB III wartet auch auf mich :) .

  • Dani, das ist erstaunlich. Ich hätte das nicht erwartet auf einer Vereinsanlage.

    Dass wir der einzige Verein sind, welche Arduinos nutzen, kann ich kaum glauben. Gerade die Jungen programmieren ganz gerne am Computer.


    Gerade auf einer Vereinsanlage gibt es dafür ein grosses Einsatzgebiet. Kommt dazu, dass hier das Personal eher vorhanden ist. Jemand im Verein hat vielleicht schon Erfahrung damit und kann andere schulen, Elektroniker welche die Schaltung nach dem Arduino aufbauen können, etc etc.


    Und dass ich dich schon für das nächste Projekt inspiriere, finde ich ganz toll. Aber überlupf dich bloss nicht wegen mir.

  • Meine Beiträge im Nachbar-Thread "Sturzi's Arduino-Bastelprojekt #1 - Es werde Licht" stossen auf grosses Interesse. Das freut mich, und motiviert mich, weiterzumachen. Ob ihr's glaubt oder nicht: Ich selber lerne dabei vielleicht mehr als ihr alle zusammen. Und - wie es Erwin so schön formuliert hat - es hält das Gehirn fit.


    Im vorletzten Beitrag habe ich bereits das 2. Projekt angekündigt. Obwohl ich im Moment noch nicht damit loslegen möchte (erst wird das Projekt #1 noch eine ganze Weile weitergeführt), werde ich heute noch den entsprechenden Thread starten. Grund dafür ist, dass das Projekt ein wenig Material benötigt, das man erst beschaffen muss, bevor man loslegen kann. So hat man dafür genügend Zeit.


    Beim zweiten Bastelprojekt


    Sturzi's Arduino-Bastelprojekt #2 - Geschwindigkeits-Messer und Rundenzähler mit IR-Lichtschranken


    geht es um eine Messstrecke mit zwei Infrarot-Reflexions-Lichtschranken. Diese werden in einem sinnvollen Abstand voneinander neben dem Gleis aufgestellt. Jede der beiden Lichtschranken wird an einen digitalen Eingang des Arduino angeschlossen. Dieser kann nun die Zeit messen, die der Zug benötigt, um die Distanz zwischen den beiden Lichtschranken zu bewältigen. Wenn er auch noch die Distanz kennt, kann er sehr genau die Geschwindigkeit berechnen und auf einem einfachen Display anzeigen. Ich selber verwende bei der ChRB III viele solcher Lichtschranken und weiss jetzt aus Erfahrung, dass die sehr gut funktionieren.


    Das wird ein dankbares und relativ einfaches Projekt werden. Selbst im schlimmsten Fall, wenn man das Progrämmchen nur abtippt aber nicht (oder nicht ganz) versteht, kann man den Geschwindigkeitsmesser sehr gut brauchen.

  • Hoi Röbi

    Darf ich mal eine doofe Frage stellen? Wie weiss denn der PC (egal welche Marke), an welchem USB der Arduino angeschlossen wird? Bei Selectrix musste ich genau bezeichnen, wie der Port heisst und wehe, ich stecke nicht dort ein. So müsste doch der Arduino auch zugeordnet werden. Die IDE, die man herunterlädt, kennt doch den PC gar nicht und müsste aber auf den verwendeten USB Anschluss zugreifen können oder müssen.

    Bin ich wieder einmal zu kompliziert verdrahtet?

    Gruss Oski


    P.S. Das Aduino-Starter-Kit ist bereits bei mir.

    signatur_egos.jpg

    ...auch Nichtraucher können süchtig sein nach Zündhölzern!

  • Hoi Oski


    Es gibt Möglichkeiten, eine Liste aller verfügbaren Comm-Ports abzufragen. Dann hat man zumindest einen Anhaltspunkt, welche Ports in Frage kommen. Die Details weiss ich allerdings nicht.


    Im jSerialComm gibt es eine Methode SerialPort.getCommPorts(). Diese bringt einen Array der Namen der verfügbaren Comm-Ports zurück. Diese rufe ich jetzt im Amorocos nach dem Aufstarten. Was ich genau damit machen will, weiss ich noch nicht. Ich habe erst ein paar Ideen. Im Moment habe ich immer noch die Namen der verwendeten Comm-Ports im Params.java.


    Um das genauer anzuschauen, können wir das als Traktandum für deinen nächsten Besuch bei mir festlegen.

  • Ich habe bei Galaxus den Suchbegriff Arduino eingegeben. Es ist einfach unglaublich wie viele Komponenten es gibt womit sich massgeschneiderte Lösungen erstellen lassen. Selbst in unserem grossen 3D FDM Drucker werkelt ein grosses Arduino Board.


    Mal schauen ob ich soweit komme, dass ich mit solchen Komponenten etwas sinnvolles bauen und programmieren kann. Der Robobloq Q-Elefant scheint mir eine interessante Spielwiese zu sein. Zuerst einmal das Projektbuch durcharbeiten, es soll mir nicht wie diesem Herrn ergehen.

    Gruss Erwin



    Wer rast, der verpasst das Leben.


    Kein Platz für weitere Sammelstücke ist nur eine faule Ausrede. ;) Es gibt für alles eine Lösung.