Jump to content
Usertreffen 2024: 29.5.-2.6. | Anmelden bitte bis 30.4. ×
Schiffsmodell.net

Arduino im Modellbau


Guest willie

Recommended Posts

Guest willie

Erstmal möcht ich mich bei dir bedanken. Find ich echt klasse.

 

Und noch so 2-3

Unter hilfe fehlt ein link auf die reference, oder auch inoffiziell auf deutsch.

Eingepflegt. Die deutsche Referenz hinkt leider etwas hinterher...

Unter Variablenypen fehlt die double.

Aus gutem Grund. Double gibt es auf dem Arduino nicht, bzw. wird direkt auf Float gemappt. Leider erweckt alleine das Keyword Dobule den Eindruck man könnte damit rechnen. Geht aber nicht.

Auch fehlt irgendwie der Hinweis das double und long nicht in hardware berechnet werden, sondern in software und Berechnungen mit ihnen ein vielfaches länger dauern als mit float und int.

Auch float wird nicht in der Hardware berechnet. Hinweis hab ich eingebaut.

Und wo ich gerade bei variablen bin, typecasting fehlt auch noch komplett, oder? Und das eine int 16 bit hat ist zwar richtig da es ja eigentlich um den Arduino geht, aber wenigstens ein Hinweis das dies beim Intel Daheim nicht so ist sollte eigentlich nicht fehlen.

Ach ja, stellenweise nutzt du es wie selbstverständlich, aber den Unterschied zwischen digitalWrite und EEPROM.write dürfest du auch kurz andeuten... will sagen Objektorientierung. Du kannst ja den Rattenschwanz Vererbung und Polimorphie verschweigen.

Ja, da muss ich aber nocheinmal drüber schlafen, wie man das sinnvoll erklärt.

All deine Mühen in Ehren, ich glaube aber du schießt mit dem Projekt massiv über das Ziel hinaus. Ich an deiner Stelle würde mit 4-5 kleinen Projekten anfangen die jeder daheim selber nachbauen kann und für die er nichts programmieren muss, nur um erst einmal eine gewisse Begeisterung zu wecken und den nutzen eines mc verständlich zu machen. Nach einigem wird ja durchaus recht regelmäßig gefragt, servo reverse, kreuzmischer, eine Verzögerung für Servos damit die Heckklappe schön langsam aufgeht, mit einem Kanal mehrere LED schalten und evtl. ein Lauflicht. Zu jedem den Code und ein kleines Video, ich glaube damit würdest du mehr interessierte hinter dem Ofer vorlocken als mit der durchdachtesten Wiki zum Arduino, die im Endeffekt mit Modellbau über ziemlich weite Strecken kaum etwas zu tun hat. Nicht böse gemeint, mir macht das durchblättern Spaß, aber frag mal deine Freundin ob sie, z.B. auf der Seite Vergleiche mehr als Bahnhof versteht beim lesen, so geht es den meisten die da einfach kurz reinschnuppern und diejenigen die es verstehen, brauchen es eigentlich nicht wirklich. Wie gesagt, für mich durchaus lesenswert, aber ich glaube an der eigentlichen Zielgruppe vorbei.

/just my 2 cent

Ja, und Nein. Klar ist das ganze recht umfangreich. Aber ich kenn mich und genügend andere, die mit MCU's noch nix am Hut hatten. Und mich persönlich nervt es total, wenn ich nicht eine Anlaufstelle habe, sondern die verschiedenen Sachen immer zusammen suchen muss. Ich versuch ja gerade auf dieser Seite, das wichtigste zusammenzufassen und zwar jeweils auf einer Seite. Was mich z.B. bei der Arduino Referenz stört, ist das für jeden Befehl immer eine neue Seite gibt. Ich krieg so keinen Überblick, was z.B. die Bibliothek EEPROM kann. Jedesmal wenn ich da was suche muss ich in jeden Befehl reingehen um z.B. die Parameter zu suchen.

Meine Frau brauch ich garnicht erst fragen, bei der klebte am Rechner auf der Arbeit immer das Schild "Computer sind doof". Der macht aber weder Modellbau noch Computer spass. Dafür kann Sie nähen und spanisch, was mir wieder völlig abgeht.

Das sind ja mal ein paar schöne Projekte. Wenn ich darf, übernehm ich die schon mal in die Projektliste. Wenn du Lust hast, kannst du auch gerne ein oder 2 Beiträge selber schreiben.

Was hälst du eigentlich von dem Format? MIttlerweile finde ich das ganze etwas unübersichtlich. Ich würde das ganze jetzt doch mit einem Wiki machen. (Konvertierung wäre dabei gar kein Problem...)

Was meinst du?

Link to comment
  • Replies 58
  • Created
  • Last Reply

Top Posters In This Topic

  • Kessl

    4

  • hoppppla

    3

  • Arno Hagen

    2

  • Hansen-Bengel

    1

Da hatt sich doch der Fehlerteufel ins Programm geschlichen. Na sowas auch... Muss natürlich

    initNP = ! ((escNullpoint > 0) && (servoNullpoint > 0)); 

heissen und nicht

    initNP = (escNullpoint > 0) && (servoNullpoint > 0); 

PS.: Programm ist geprüft und funktioniert.

Kleine Übung: Baut mal bitte einen Servo-Revers ein?

Tipp die doWork() Methode wäre nicht schlecht. Als Pins zum Auswerten hätten wir noch die 7 für den Servo1 und die 8 für den Servo2 übrig.

Vorschläge als PM zu mir...

Link to comment

So,

wieder mal ein kleines Update. Für die verschiedenen Projekte hier und auf meiner INet-Seite, habe ich mal eine kleine Bibliothek geschrieben, die die Anbindung an einen Modellbauempfänger etwas einfacher macht. Die Bibliothek beinhaltet ein Objekt RCReciver, welches für die Anbindung zuständig ist.

Die Bibliothek arbeitet im Pollingbetrieb, d.h. man muss die Bibliothek immer wieder antriggern zum WErte lesen. Die Bibliothek ermittelt automatisch den Nullpunkt aus den ersten 10 Werten. Weiterhin wird der Wertebereich automatisch auf den Bereich von 0..255 beschränkt, was wohl für die meisten Anwendungen ausreichen sollte. Beispielprojekt gibt's auch. (Link im vorheriger Beitrag...)

Die Bibliothek gibt's hier:http://klaas.homeip.net/ArduinoWiki/doku.php?id=arduino:modellbau:projekte:rcreciver

Link to comment
Kleine Übung: Baut mal bitte einen Servo-Revers ein?

Tipp die doWork() Methode wäre nicht schlecht. Als Pins zum Auswerten hätten wir noch die 7 für den Servo1 und die 8 für den Servo2 übrig.

Vorschläge als PM zu mir...

So, hab nur eine Rückmeldung erhalten. Egal, aber die Lösung wollt ihr bestimmt wissen...

Ist eigentlich ganz einfach.

Zunächst brauchen wir 2 Eingabepins, damit wir per Jumper bestimmen können, welchen Servo wir reversieren wollen.

 

...
// Modus Soft oder Hard
const byte PIN_MODE = 4;
const byte PIN_REVERS_1 = 7;
const byte PIN_REVERS_2 = 8;
...

 

Die Pins müssen wir natürlich auch richtig initialisieren. Also kommt noch das in die Setup Funktion:

...
 // Eingang Modus
 pinMode(PIN_MODE, INPUT_PULLUP); 
 pinMode(PIN_REVERS_1, INPUT_PULLUP); 
 pinMode(PIN_REVERS_2, INPUT_PULLUP); 
...

 

So und nun das eigentliche revers der beiden Servos, machen wir in der Berechnungsfunktion doWork(): (Habe die Zeilen davor und dahinter auch mit ausgeschnitten, damit man das besser einordnen kann.)

...
void doWork() {
...  // Und damit das nicht aus dem Ruder läuft, etwas begrenzen
 servo1 = constrain(servo1, -128, 128);
 servo2 = constrain(servo2, -128, 128);

 if (digitalRead(PIN_REVERS_1) == 0) {
   // Servokanal 1 umkehren
   servo1 = servo1 * -1;
 }

 if (digitalRead(PIN_REVERS_2) == 0) {
   // Servokanal 1 umkehren
   servo2 = servo2 * -1;
 }

 // Nullpunkte wieder hinzu
 servo1 = servo1 + 128;
 servo2 = servo2 + 128;

...

Wie man hier sieht, greift der Servorevers sofort. d.h. man kann das direkt ausprobieren und braucht nicht jedesmal die Akkuverbindung unterbrechen.

Link to comment

Hallo,

 

recht gut gelöst.

 

Ich mit dem Ardunio noch ein bischen auf Kriegsfuss, aber mit Deinem Bericht fasse ich wieder mut, ich hoffe ich kann auch mal dazu beitragen,

bitte weitermachen, denn ich bin dabei.

 

Gruss

 

Wolfgang

Link to comment

Hab meine Seiten etwas umstrukturiert. Deswegen hat sich der Einstiegslink auf meiner INet-Seite geändert.

http://klaas.homeip.net/wb/pages/mcs/microcontroller/arduino-im-modellbau.php

 

Der Kurzlink bleibt aber erhalten:

http://klaas.homeip.net/ArduinoWiki/doku.php

 

Neuerungen diesmal:

Für die Modellbahner bzw. eigentlich für die Modellbahnautofans, oder auch für alle die eine Ampel brauchen, gibt's jetzt ein Ampel Projekt.

Lernziel: Umgang mit einer Statemachine, eigene Strukturen, bzw. Aufzählungen und ein paar Besonderheiten vom Arduino, an denen sich schon so mancher Neueinsteiger, selbst wenn er C++ Kenntnisse besitzt, ins Grübel gerät.

Link to comment

Hallo,

 

so Problem ist jetzt behoben. Es war die Com Schnittstelle 10. Das hat mit meinem Miniläppi erst nicht richtig hingehauen.

Jetzt geht es aber. Die ersten Wechselblinker funktionieren richtig gut, so dass ich jetzt meinen Leuchtturm auf Arduino umstelle.

 

Wie bekomme ich einen Servo zum laufen?

 

Gruss

 

Wolfgang

Link to comment

Das mit dem Kreuzmischer kommt mir sehr gelegen.

 

Ich bin gerade dabei, das Tauchboot "Denise" der Calypso zu bauen, das von zwei Mini-Pumpen angetrieben werden soll.

Als "Bordelektronik" ist ein Arduino Nano vorgesehen. Bislang hatte ich schon interessante Informationen zum Auswerten von RC-Signalen und die Verwendung in einer "Panzersteuerung" hier gefunden: http://rcarduino.blogspot.de/

 

Werde das mal mit Deinem Tutorial abgleichen...

 

Gruß, Kai

Link to comment
  • 2 weeks later...
Guest VollNormal

Ich hab mal bei den einschlägigen Bezugs-Quellen nach einem Arduino gesucht. Da werden ja die verschiedensten Typen angeboten. Leider hilft mir dein Tutorial bei des Auswahl nur bedingt weiter:

Auch ältere Board sind durchaus geeignet. Allerdings würde ich nichts älteres als eine Arduino Duemilanove mit einem ATMega328 kaufen. Darunter macht es einfach keinen Spass mehr.

Ich weiß nicht, was älter oder kleiner als der 2000er ist. Hier würde ich mir eine kurze[!] Übersicht wünschen mit einer Empfehlung, welches Board für welchen Zweck geeignet ist (oder auch eben nicht).

 

Z.B. habe ich gesehen, dass im Wesentlichen 4 Typen angeboten werden: Uno, Mega, Leonardo und Nano. Der Mega hat wohl mehr Pins, der Nano ist wesentlich kleiner als die anderen. Aber brauche ich die zusätzlichen Pins des Mega, was lässt sich überhaupt damit anfangen? Und ist der Nano kompatibel zu den ganzen Erweiterungen (Shields)? Was spricht für oder gegen den Leonardo im Vergleich zum Uno? Kann man bedenkenlos ein "kompatibles" Modell kaufen, oder sollte es ein "Original" sein?

 

Das sind so die Fragen, die mir als Neueinsteiger durch den Kopf gehen und mir die Auswahl schwer machen.

Link to comment
Guest VollNormal

Super Danke!

Das hilft schon mal deutlich weiter! :that:

 

Zum Leonardo steht da:

Die I2C Schnittstelle liegt an anderen Pins.
Ergeben sich dadurch Inkompatibilitäten z.B. beim Einsatz von Shields?
Beim starten dauert es deutlich länger, bis das eigenen Programm gestartet wird.
Um was für Zeiten geht es da?

 

So wie sich mir das im Moment darstellt, wird's wohl für den Anfang zum Üben ein Uno(-Clone) werden.

Link to comment
Super Danke!

Das hilft schon mal deutlich weiter! :that:

 

Zum Leonardo steht da: Ergeben sich dadurch Inkompatibilitäten z.B. beim Einsatz von Shields?

Ja, das kann passieren. Shields die I2C einsetzen sind mit dem Leonardo nicht mehr kompatibel. Will man die weiter benutzen, muss man dann die Software Variante vom I2C einsetzten.

Um was für Zeiten geht es da?

Wir reden hier von den ca. 8 Sekunden. Die braucht nämlich der Bootloader um festzustellen, daß er nach einem Reset (bzw. dem Anlegen der Spannung) nicht gemeint war und die Kontrolle wieder an das Programm zurück gibt. Es gibt aber schon eine entsprechende Anpassung, die ist aber noch nicht offiziell released.

So wie sich mir das im Moment darstellt, wird's wohl für den Anfang zum Üben ein Uno(-Clone) werden.

Zum Üben ist das eigentlich egal. Es gibt nicht so viele Shields, die I2C einsetzen. Der Olimex Leonardo-Klon ist einfach extrem günstig.

Link to comment
Guest VollNormal

Wenn der I²C auf anderen Pins liegt, sind dann nicht auch die (zwei?) Signale, die sonst auf ebendiesen Pins, die der Leonardo für I²C benutzt, anliegen, woanders?

 

ca. 8 Sekunden. Die braucht nämlich der Bootloader

Je nach Einsatzzweck kann das durchaus schon störend sein. Wie lange brauchen die anderen Versionen bis zum Start?

Der Olimex Leonardo-Klon ist einfach extrem günstig.

Mit Märchensteuer und (versichertem) Versand bin ich da aber ganz schnell über dem Preis von z.B Reichelt. Und in der Bucht gibt's das Ding aus italienischer Produktion schon für 23,- (von fleissigen Chinesen geschnitzt sogar für unter 15,-) all incl.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.