INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
digital zwischen zwei boards
10.02.2015, 09:52
Beitrag #9
RE: digital zwischen zwei boards
Hi,
meiner Meinung nach sollte ein Mega das locker schaffen. Allerdings nicht genau so:

- Das PulseIn ist nur fuer Anfaenger. Man muss ja immer mindestens einen Puls abwarten. Waehrend der Zeit macht der Controller gar nichts. Das sollte man durch was Interrupt-gesteuertes ersetzen. Die Interrupt-Routine misst dann die Zeit mittels micros(). Dann verbraten die Drehzahlmessungen und die PWM-Signale nur noch Mikrosekunden statt (viele) Millisekunden. (Sind die PWM-Signale wirklich PWM-Signale oder ist das eine Fernsteuerung?)

- Wie wird die Lichintensitaet und die Temperatur gemessen? Das sollte man auch nonblocking machen, also Temperatur z.B. ueber einen DS18B20. Der braucht zwar zum Messen ein bisschen, aber darauf muss der Controller nicht warten. Falls Du was analogIn()-basiertes machen willst: Da gibt es auch Moeglichkeiten, das nonblocking hinzubekommen.

- Bei den Berechnungen kommt's drauf an. Mein Kopter hat 5 PIDs, die mit floats arbeiten. Das ist kein Problem.

- Ein-/Ausschalten von Digitalpins sollte nicht so das Problem sein. Der Mega hat davon ja genug.

- Die Ansteuerung der Servos frisst auch kein Brot. Die Servo-Lib arbeitet mit Timer-Interrupts. Wenn Dir die 50Hz reichen, die die normalerweise macht, dann nimm die. Ansonsten gibt es noch die RCArduinoFastLib. Mit der kannst Du die drei Servos auch viel schneller ansteuern, was bei manchen ESCs wichtig werden koennte.

Ich wuerde es an Deiner Stelle mit dem Mega alleine probieren. Um das ganze Zeugs am besten eine Zeitmessung packen (mit micros()), damit Du mitbekommst, wenn's knapp wird. Dann noch einen HC-05 draufpacken, dann kannst Du die Daten auch noch ueber Bluetooth senden.

Gruss,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2015, 10:26 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2015 10:30 von luto92.)
Beitrag #10
RE: digital zwischen zwei boards
Die PWM signale sind wirklich PWM Signale, also ich benutze die Signale, die vom Empfänger kommen und normalerweise wird ja ein Servo mittels PWM gesteuert.

Ich werde mich mit den Interrupts befassen, ich hab schon mal davon gehört aber das wae mir zu kompliziert, jetzt scheint es so, als müsste ich doch zugreifen müssen.
Licht und Temperatur werden über zwei analog sensoren gemessen, die können aber auch ein bisschen zeit brauchen bis die angehen. Oder wie hast du das gemeint?

Meinst ducdas mit den 50 Hz so, dass jedes servo erst alle 1/50 sekunde eine neue position vorgeschrieben bekommt
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2015, 11:01
Beitrag #11
RE: digital zwischen zwei boards
(10.02.2015 10:26)luto92 schrieb:  Die PWM signale sind wirklich PWM Signale, also ich benutze die Signale, die vom Empfänger kommen und normalerweise wird ja ein Servo mittels PWM gesteuert.
Also rein formal ist das natuerlich auch PWM, aber mit einer relativ langen Pause. Ausserdem ist es den Servos fast egal, wie lange die Pause dauert und ich wuerde mich nicht darauf verlassen, dass der Empfaenger immer denselben Takt liefert.
Die einzelnen Pulse sind immer nur 1 bis 2 Millisekunden lang. Dabei kommt zuerst der Puls fuer Kanal 1, dann der fuer Kanal 2 etc. Das ganze wird alle 20ms wiederholt. D.h. wenn Du einen Kanal mit PulseIn abfragst musst Du bis zu 20ms warten, bis Du einen Puls bekommst. Dabei "verlierst" Du aber die anderen Kanaele.
Manche Empfaenger haben noch ein PPM-Signal, das eigentlich geschickter ist. Schau Dir mal die Details zur RCArduinoFastLib an.

Zitat:Licht und Temperatur werden über zwei analog sensoren gemessen, die können aber auch ein bisschen zeit brauchen bis die angehen. Oder wie hast du das gemeint?
analogIn() dauert wohl ungefaehr 100 Mikrosekunden. Die meiste Zeit davon wartet es. Da koennte man schon wieder was anderes machen. Wie man das am geschicktesten macht weiss ich auch gerade nicht. Da muesste man sich mal den Quellcode betrachten. Kann aber kein Hexenwerk sein.

Zitat:Meinst ducdas mit den 50 Hz so, dass jedes servo erst alle 1/50 sekunde eine neue position vorgeschrieben bekommt
Ja, so ist das bei Standard-Empfaengern und -Servos. Keine Ahnung, ob ein normales Servo mehr verarbeiten kann. Meine ESCs koennen es, ich fahre die momentan mit ungefaehr 200Hz.
Bei normalen Servos duerften die 50Hz ausreichend sein. Es braucht ja auch Zeit, sich zu bewegen. Manche ESCs haben aber einen Tiefpassfilter drin, da koennen dann 50Hz etwas langsam werden.
Gruss,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino NANO mit zwei 1.8 SPI-tfts Thandor 2 99 15.11.2016 23:18
Letzter Beitrag: Thandor
  Unterschied zwischen DVI 24+1 und einem DVI 24+5 Adapter Pit 2 136 17.10.2016 15:49
Letzter Beitrag: Pit
  Uno gehen zwei digital Pins nicht edlosijagen 15 591 07.07.2016 19:22
Letzter Beitrag: Bitklopfer
  tempo Digital Port Binatone 6 479 06.05.2016 17:37
Letzter Beitrag: Bitklopfer
  Per Keypad Shield zwischen zwei Programmen schalten Rob-LE 9 924 09.03.2016 14:27
Letzter Beitrag: iks77
  Zwei Ausgabeports am Mega verbinden um 50 mA Verbraucher anzuschließen ? holo 15 862 01.02.2016 13:07
Letzter Beitrag: Bitklopfer
  Pinabstand zwischen DP7 und DP8 stört beim Bau eines Shields TheJukeboxMan 6 607 19.01.2016 19:45
Letzter Beitrag: TheJukeboxMan
  Zwei Schrittmotoren mit Arduino steuern MarcusW 6 2.377 28.09.2015 21:05
Letzter Beitrag: Bitklopfer
  Senden /empfangen von Datenpaketen zwischen 2 Arduinos fraju 0 623 05.09.2015 15:29
Letzter Beitrag: fraju
Question Zwei RC522 RFID Reader -> Problem durch Kabel? vtx 2 813 24.06.2015 11:13
Letzter Beitrag: vtx

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste