RC-Baustelle.de (http://www.rc-baustelle.de/index.php)
- Fragen und Antworten zu . . . . . . (http://www.rc-baustelle.de/board.php?boardid=52)
-- Elektronik (http://www.rc-baustelle.de/board.php?boardid=54)
--- Baubericht: Funke im Selbstbau (http://www.rc-baustelle.de/thread.php?threadid=3758)


Geschrieben von JensR am 29.10.2011 um 02:28:

  Baubericht: Funke im Selbstbau

Moin moin! (Bin am Editieren!)

Meine Arbeitswoche war ziemlich stressig, aber Freitag ist Basteltag und so habe ich weitergemacht an meinem Zweigprojekt.

Wie schon in meinem Graderthread angekündigt, baue ich mir eine Funke selber.
Dazu verwende ich einen Arduino Mircoprozessor. Das ist zwar nicht der kleinste, stärkste oder billigste µC, aber er ist sehr einfach zu programmieren. Die Sprache basiert auf C, aber sie nimmt einem viel von der Hexerei ab, die man sonst für ein C-Programm braucht Augenzwinkern
Irgendwo muss man ja anfangen und ich hoffe, dass ich mit den Weg Arduino zumindest genug lernen kann, dass es keine Sackgasse wird. Die Sprache ist so ähnlich zu den Programmiersprachen, die ich kenne, dass ich nur wenig Einarbeitung gebraucht habe. Natürlich ist das ganze µC-Zeug doch neu für mich.

Was ich mir davon verspreche:
1. Dass ich die µC-Welt kennenlerne
2. Dass ich volle Kontrolle über Mixer und Zusatzfunktionen habe, z.B.:
Simulation von Massenträgheit mit Standard-Fahrtreglern
Begrenzung von Servogeschwindigkeit
Begrenzung von Servobeschleunigung
Sanfte Schaltkanäle
Umschaltung von "Knüppel proportional zu Weg" auf "Knüppel proportional zu Servogeschwindigkeit (sogenannter Hydraulikmodus)"
Verwendung von Tastern zur proportionalen Ansteuerung eines Proportionalkanals.
usw.
3. Dass ich keine zusätzlichen Hydraulik-/Schaltmodule u.ä. brauche
4. Dass ich verschiedene Modelle gleichzeitig betreiben kann
5. Dass ich Modelle umschalten kann
6. Dass ich Servos standardmäßig mit erweitertem Drehbereich betreiben kann

Meine Philosophie ist, dass soviel "Intelligenz" wie möglich im Sender steckt und die Empfänger möglichst klein und günstig bleiben, da ich vorhabe, mehr Modelle als Funken zu haben und u.U. mehrere Empfänger pro Modell.

Version 1
Hier generiere ich aus den Eingangssignalen (Potentiometer und Schalter) einen PPM Puls, der dann an ein Corona 2.4 GHz Sendermodul geschickt wird - so eins, was man zum Nachrüsten von alten Funken verwendet. Das sendet dann an einen Corona Empfänger.
Das hat gut funktioniert und ließe sich auch auf Module anderer Hersteller anwenden.
Ich habe den Arduino dann so programmiert, dass ich zwei PPM Pulse parallel ausgeben kann. Damit kann ich dann zwei getrennte Empfänger ansprechen. Mit den derzeit verfügbaren Corona Modulen hieße das 2x 14 Kanäle. Sollte also reichen Augenzwinkern
Evtl. würden auch drei PPM Pulse gleichzeitig gehen.
Hierzu ein schlechtes Youtube Video:
http://www.youtube.com/watch?v=Evy_RVy0_YA

Vorteile


Nachteile


Deswegen also Version 2
Sender bleibt der Arduino Mega (habe den 1280 sehr günstig bekommen)
Aber die Funkübertragung und Empfänger mache ich auch selber, kein Corona Modul (bzw. evtl. zusätzlich).
Stattdessen ein Arduino Nano als Empfänger und zwei NRF24L01 Transceiver als Sender und Empfänger.
Theoretisch würden die auch eine Telemetrie erlauben und einen vollwertigen Rückkanal bereitstellen, aber das plane ich nicht. Der Nano ist sehr klein, bietet aber trotzdem USB. Er bietet einige Funktionen, die ich derzeit nicht brauche, zum Beispiel Analogeingänge. So klein bleibt er aber nicht, da kommen ja noch Anbauteile dran, zumindest die Stromversorgung und Servo-Steckleisten und evtl. noch ein Servo-Steuer-IC.

Heute habe ich die beiden Transceiver verkabelt und an meine Arduinos angeschlossen.
Derzeit läuft ein kleines Testprogramm, das nur ein Datenpaket von einem Arduino zum anderen sendet.
Aber es geht!
Der nächste Schritt wird sein, dass ich mir überlege, wie ich die Daten für die Kanäle übertrage.

Vorteile


Nachteile


Damit mache ich für heute Schluss, für die Woche reicht es mit Nachtschicht!

Wünsche Euch ein schönes Wochenende!
Jens

Das Bild zeigt links hinten das Corona Sendemodul, in der Mitte den Arduino Mega1280 mit Transceiver und rechts den Arduino Nano mit Transceiver.



Geschrieben von crashdown am 29.10.2011 um 11:04:

 

Sehr interessant, hab deinen Beitrag grade nur kurz überflogen, da ich mich grade selbst mit Microcontrollern beschäftige, nur als erstes bin ich grade dabei, meine C Kentnisse wieder aufzufrischen...

Was mich im moment beschäftigt, kann ich mehrere Programme gleichzeitig auf einem Microcontroller laufen lassen?

Ich bin grade erst am Anfang mich damit zu beschäftigen, es sind noch verdammt viele Fragen offen großes Grinsen

Vor allem erstmal wieder in die Denkweise reinkommen, wie man ein Programm schreibt verwirrt verwirrt verwirrt verwirrt

Meine letzten Programmiererfahrungen liegen ein paar Jahre zurück, und sind nur auf Visual Basic begrenzt, aber C ist wohl das einzig wahre wenns um Mircocontroller geht, wie ich bis jetzt herausgefunden habe verwirrt

Gruß Robert

Welche Mircroprozzersorhersteller willst du verwenden? Ich dachte an Atmel verwirrt



Geschrieben von JensR am 29.10.2011 um 16:14:

 

Hi Robert!

Ich muss vorausschicken, dass ich auch noch lange kein Profi auf dem Gebiet bin - ich hoffe, alles was ich sage ist richtig, aber garantieren kann ich es nicht Augenzwinkern

Programmiersprache
Arduino verwendet wie gesagt eine Sprache, die auf C aufbaut.
Das ist für mich ideal, sehr einfach zu lernen.
Der Vorteil bei Arduino ist, dass man auch reines C verwenden kann, wenn man mehr Möglichkeiten braucht.
Und mit etwas Umwegen kann man sogar Assembler machen, aber das ist für mich noch ein Buch mit sieben Siegeln...

Denkweise
Ja, das ist in der Tat wichtig. Aber zumindest hat man direkt ne konkrete Anwendung und lernt nicht nur aus'm Buch.

Hersteller
Die Arduinos verwenden Atmel Atmega µCs.
Es gibt aber auch PIC-basierte Anbieter und Texas Instruments bietet das LaunchPad an und dann die BASIC-Briefmarke und bestimmt noch mehr, die ich jetzt vergessen habe oder noch gar nicht kenne....
Aber das ist für den Anfang glaube ich nicht so wichtig.
Wichtig ist, dass die Entwicklungsumgebung für einen Anfänger geeignet ist und man viel und gute Unterstützung bekommt - und das ist bei Arduino der Fall. Außerdem werden Arduinos oft von Leuten wie uns benutzt - Arduino Boards sind gut geeignet für unsere Art von Prototypen. Wenn man 100 oder 1000 Produkte zum geringsten Preis herstellen will, wäre das verkehrt.
Ich würde am Anfang auf jeden Fall zu einem fertigen Board raten. Wenn Du nur den µC kaufst, musst Du die ganze Peripherie selber aufbauen. Das nervt. Später, da kann das gut sein, weil man Platz und Geld spart. Aber am Anfang, wenn man noch nicht weiß, ob man diese oder jene Funktion braucht, ist das am falschen Ende gespart.

Mehrere Programme
Das geht zumindest bei Arduino nicht. Aber ein Programm kann natürlich mehrere Zweige haben. Soweit ich weiß, lädt man auch auf andere µCs _eine_ "Firmware" drauf.

Tschöö
Jens



Geschrieben von Lus am 29.10.2011 um 22:05:

 

Arduino ist eine coole Sache, doch ich persönlich verwende lieber den Atmel "pur".

Der Chip kommt dann völlig leer und sauber, jeder Pin und jede freie Ecke Speicherplatz steht mir zur Verfügung.
Man ist einfach flexibler, wenn man ALLES selber wählen kann.
Und das für etwa 3-4 EUR.
Weiter finde ich den "Atmel only" platzsparend im Vergleich zum Arduino.


Die Handhabung ist erstaunlich unkompliziert, ich bin damit eingestiegen.
Er läuft ohne Aussenbeschaltung sofort an, out of the box.


Zum Programmieren verwende ich "Bascom". Ein einfaches Hochsprächli, ähnlich Basic, wirkt nicht so professionell auf den ersten Blick, erlaubt aber nahtlosen Übergang zu Assembler und hält damit alle Optionen offen, auch für zeitkritische Anwendungen.



Geschrieben von JensR am 29.10.2011 um 22:49:

 

Tell me more!

Die nackten µCs, die ich bisher gesehen habe, brauchen alle Quarze/Oszillatoren und eine Grundbeschaltung, damit man sie gescheit einsetzen kann. Oder zumindest habe ich den Eindruck erhalten.

Für den Sender bin ich mit dem Arduino sehr zufrieden.
Am Empfänger wird es evtl. doch etwas knapp.

Allerdings vermute ich, dass Du zum Programmieren den µC vom Board lösen musst und in einen Programmer setzt?

Die Programmierschnittstelle ist zumindest das, was hier den Bauraum dramatisch vergrößert:
http://www.hobbytronics.co.uk/breadboarduino

Und kleiner als 2.54mm brauche ich erst gar nicht zu probieren unglücklich



Geschrieben von Sandokahn am 29.10.2011 um 22:58:

 

Also ich hab ja hier auch noch so ein Projekt liegen mit Microkontroller ,aber das wär mir dann doch zu viel .



Geschrieben von Uwe P. am 29.10.2011 um 23:25:

 

Hallo Jens,

schau Dir den Schaltplan der BZ an,dort sind auch keine

Schwingkreise notwendig. Das macht der Atmega 8 ,168

mit der internen Beschaltung.



Gruß



Geschrieben von JensR am 30.10.2011 um 00:39:

 

Sandro, also irgendwas findest Du schon smile

Uwe: Ja, da hast Du wohl recht, aber da ist doch einiges an externer Schaltung an der Blauzahn.

Irgendwo habe ich gelesen, dass diese externen Quarze und Co benötigt werden, wenn man den ATmel programmiert/flasht.
Ah, wiedergefunden:
http://www.hobbytronics.co.uk/atmega328-arduino
"To get this chip working with Arduino IDE, you will need an external 16MHz crystal or resonator, a 5V supply, and a serial connection. "

Da werde ich wohl noch etwas lesen/lernen müssen.

Leiterplattenfertigung ist gar nicht so teuer!
http://www.mme-pcb.com/index.php



Geschrieben von Lus am 30.10.2011 um 07:44:

 

Zitat:
Original von JensR
Tell me more!


Ich verwende fast immer Atmega 8 in DIP-Gehäuse.

Er hat einen internen RC-Oszi, läuft also ohne Quarz. Fast alle meine Gerätchen laufen ohne Quarz weil die interne Taktfrequenz genau genug ist.

Über Fusebits (so "Einstellbits") kann man verschiedene Werte zwischen 1 und 8 MHz einstellen oder den Chip auf externen Quarz (wenns genauer oder schneller sein soll), auf externe Clock (von anderer Quelle) oder externen RC-Oszi umstellen.
Weiter kann man den internen RC-Oszi in gewissen Grenzen schneller/langsamer machen um Fertigungstoleranzen usw. auszugleichen.


Programmieren über Parallelport. Dazu braucht es eine 5-Quelle, einen Sub-D-Stecker und 3 Widerstände (zu 200 Ohm). Bauteilaufwand also minimal.

Beim programmieren clockt der Compi den Chip, 4 Pins sind dann belegt: In, Out, Clock, Reset (damit das mehrmals möglich ist, muss das externe Reset aktviert sein, dieser Pin staht dann nicht für andere Aufgaben zu Verfügung).


Programmieren kann man in einem Stecksockel, bei Geräten die ich oft umprogrammiere (Fernsteuerung) löte ich ein 4-Pin-Steckerchen neben dem Chip auf die Platine.
Weiter habe ich ein Prog-Kabel aus einem Sockel gemacht: Der Prog Sockel kommt dann anstelle des Chips in den Sockelim Gerät und der Chip dann auf den Prog-Sockel (so Huckepack) damit kann ich "ISP" ("in system programmieren"), um zum Beispiel die Servowege in laufendem Modell anzupassen. Dabei müssen einfach die Pins, welche zu Programmierung genutzt werden, frei sein, oder hochohmig beschaltet. Ich nutze sie z.B. als Servoausgang und ziehe das Servo aus beim Programmieren. (Wenn es so viele braucht.)


Bascom kann alles nötige wie z.B. Fusebits setzen usw.
(Aber auch kompliziertere Funktionen sind vorgefertig, z.B. Ansteuerung von Displays...)



Geschrieben von crashdown am 30.10.2011 um 09:25:

 

@Jens

Ich hoffe, es stört dich nicht, wenn ich hier mal mit meinen Fragen mit einsteige großes Grinsen

@alle

Der Grund, warum ich mich überhaupt mit dem Thema beschäftige ist, dass ich eine Hydraulische Proportionale Lenkung im nächsten Modell haben will. Das Grundgerüst, wie ich sie aufbauen und Programmieren kann, ist schon in meinem Kopf.

Dafür muss ich den Wert eines Potis in den Prozessor bekommen. Kann ich das Poti direkt an den Prozessor anschließen, der dann den Spannungsabfall mist?

Ich habe mal was gelesen mit einem Kondensator, der dann durch irgend eine Art von beschaltung einen Pin von Low auf High (oder war es umgekehrt???) zieht. Aus der Frequens, mit der das passiert, sollte man den Wiederstand eines Sensors (Poti, PTC, was auch immer...) Berechnen können.

Aber wenn ich das richtig im Kopf habe, hat der Atmega8 doch Analoge eingänge? Kann man die nicht dafür nutzen?


Um nochmal auf meinen ersten Beitrag einzugehen.

Ich muss mal etwas weiter ausholen... großes Grinsen

Da ich eine Prop Lenkung schalten will, muss die Pumpe ebenfalls vom Atmega gesteuert werden.

Also muss ich dem die Proportionale Pumpensteuerung beibringen.

Desweiteren soll er einen Lüfter ab einer Bestimmten Temperatur einschalten, und bei einer anderen Bestimmten Temperatur wieder auschalten...(z.b. bei 40° ein, bei 35° wieder aus....)

Also brauche ich drei parrallel laufende Schleifen...

Kann ich, wie auch immer, 3 Schlaifen parrallel laufen lassen, oder muss ich alles in eine Schleife packen? Ist der Atmega8 dann überhaupt schnell genug dafür?

So, das wars erstmal großes Grinsen großes Grinsen großes Grinsen großes Grinsen

Gruß Robert



Geschrieben von Uwe P. am 30.10.2011 um 09:31:

 

Hallo Ihr Bastler,

habe mir vor einiger Zeit dieses Buch http://www.rowalt.de/ zugelegt.Hier ist alles sehr verständlich beschrieben.
Zusätzlich sind auch alle zum Betrieb nötigen Hardwarekomponenten
ausführlich erklärt.



Gruß



Geschrieben von Uwe P. am 30.10.2011 um 09:39:

 

und zur sicheren Übertragung schaut das Buch von Benhard

Rademann "Bluetooth Experimente" ganz nett aus Augen rollen .

Beides bei Segor-electronic www.segor.de zu bekommen.



Gruß



Geschrieben von Uwe P. am 30.10.2011 um 10:31:

 

Hallo Robert,

die Atmega haben A/D Wandler,dort kannst Du natürlich eine

Abfrage durch ein Potentiometer (Spannungsteiler) realisieren.

Dein Steuerungsproblem kannst Du natürlich mit einer zusätzlichen

Hardware lösen.Die Proportionale Ventilsteuerung läßt sich auch analog

mit wenig Aufwand aufbauen.Für komplexere Steuerungen ist ein

Prozessor schon die bessere Wahl.Mit der BZ läßt sich das

lösen.


Gruß



Geschrieben von crashdown am 30.10.2011 um 11:43:

 

Hallo Uwe,

wie kann eine Proportionale Hydraulische Lenkung denn Analog funktionieren?

Nur damit alle verstehen, was ich meine, ich möchte eine Lenkung, die wie ein Servo funktioniert, aber per Hydraulikzylinder gelenkt wird.



Geschrieben von Kette1zu8 am 30.10.2011 um 12:12:

 

eine mechanische Lösung wüsste ich...



Geschrieben von Uwe P. am 30.10.2011 um 12:58:

 

neben dem hydr. Proportionalventil gibt oder gab es eine

kleine Elektronik vom Leimbach.Dort wurde am Drehpunkt zB.

Radlader ein Poti angebracht,die Elektronik wird zwischen

Empfänger und Servo eingeschliffen.Ähnliche Funktion wie beim

Servotester mit CD 4011 oder 4001 glaube ich.



Gruß



Geschrieben von wink am 30.10.2011 um 13:11:

 

Jo, genauso. Werde ich bei meinem Heckkraftheber auch so lösen: poti an die Hebewelle, und an der Brixl dann ein Schiebepoti. Di Brixl steuert dann das Ventil so, dass Schiebepoti und Welle synchron laufen: also Heber halb hoch, wenn Schiebepoti auf halb ist usw.



Geschrieben von Lus am 30.10.2011 um 14:59:

 

Zitat:
Original von crashdown
Kann ich, wie auch immer, 3 Schlaifen parrallel laufen lassen, oder muss ich alles in eine Schleife packen? Ist der Atmega8 dann überhaupt schnell genug dafür?


Schnell genug? großes Grinsen Ein Fahrtregler (Pumpe) oder (Servo) will 50 mal Pro Sekunde ein Signal. Bei 8 MHz hat der Chip in 1/50 Sekunde 160'000 Befehle durchgearbeitet (nicht ganz, weil nicht alle "single cycle sind, aber egal).

Kurz: Du kannst eine, zwei, drei oder hundert Schleifen machen, kannst Temperatur, Spannung, Strom, Druck und noch zehn andere Dinge abfragen und die Signalausgabe an 10 Servos und 5 Fahrtregler rechnen lassen und der Chip macht immer noch hauptsächlich Nachmittagsschlaf zwischen zwei Servopulsen...

Und ja: Das Poti kannst Du direkt an einen Pin hängen, der Atmega 8 hat mehrere (6 oder 8, weiss nicht mehr) Analogeingänge.
Und Du kannst frei wählen, ob Du diese Pins analog oder digital nutzen willst.
Poti zwischen Minus- und Pluspol der Spannungsversorgung hängen (0 und 5V), Schleifer auf einen Pin, den Du als Analog in definiert hast, fertig ist der Zauber.



Geschrieben von crashdown am 30.10.2011 um 19:09:

 

Das klingt doch schonmal sehr gut, dann weiß ich das das so funktionieren kann, wie ich mir das vorstelle, also kann ich mich weiter mit der Programmierung beschäftigen großes Grinsen



Geschrieben von Uwe P. am 30.10.2011 um 19:43:

 

Hallo Robert,

hast Du schon ein Gesamtkonzept für deine Regelung/Funke,

oder setzt Du am Empfängerausgang an ?


Gruß


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH