alte Technik simulieren

Die alte ServoAutomatic hatte einen Einfachmotor. Die ServoAutomatic II (im grauen Gehäuse) hatte dann den Glockenanker-Motor T03. Die Bellamatic II hatte den T05/15, wenn ich mich nicht irre. Ziemlich wilde Apparate waren noch die Kinematics. Ein gefährliches Teil war die Trim-o-Matic mit dem T03/485 als "Schubstangen-Verlängerung" Wenn man die zu lange betätigte, fiel sie auseinander und das Flugzeug stürzte ab.
 
Unterschiede bei SERVOautoMATICken

Unterschiede bei SERVOautoMATICken

Darauf hatte ich noch nie mein Augenmerk gerichtet. Weil's hier aufkam, hatte ich bei der Suche nach anderer Hardware gleich mit darauf geachtet.

Servo-auto-Matic-Vergleich_1k.jpg

Die müssen mal in die Spülmaschine ...

Ich fand dabei eine weitere SERVOautoMATIC (ohne "II") mit einem mit Araldit eingeklebtem Mikromax. Vom Araldit reichlich, dafür keine Abdeckung über dem Motor. Ich habe auch keine Abdeckung für den Marx-Lüder Milliperm in dieser Verwendung. Denn es ist nicht nur die gesamte Rudermaschine, sondern besonders noch der Motor höher als beim Nachfolger:

Servo-auto-Matic-Vergleich_2k.jpg

Auch die Bestellnummern unterschieden sich um eine Stelle. Alt, mit besonders herausgearbeiteter Nummer (Das mit der Spülmaschine sagte ich schon ;-? )

Servo-auto-Matic-I_k.jpg

Da sie auf dem Aufkleber meiner "neuen" abgeschubbert und im Gehäuse nicht mehr eingespritzt ist, stattdessen ein Auszug aus dem Katalog 22 von '69:

Servo-auto-Matic-II_k.jpg

Es wird deutlich auf den Motor hingewiesen, in den alten Heften wurde auf die Rutschkupplung des Motors zur Schonung des Getriebes und des Stromverbrauchs eingegangen, wenn der Motor auf Anschlag läuft. Schläge von der Ruderseite her waren früher nicht soo das Thema. Verständlich, wenn man sich die originalen Rudergrößen auch bei großen Modellen im Graupnerversum dieser Jahre anschaut. Das Taxi hat 25% des SRs als Ruderfläche, beim HR nur 20%. Der HS 91 Clou hat ein Pendel-HR, was weniger Betätigungskraft braucht und durch den Anteil vor der Drehachse nicht solche Trägheitskräfte auf das Gestänge gibt. Sein SR hat immerhin 45% Rudertiefe. Dafür war sogar dessen KUFlu-Version mit den kupierten Flächen im vollen Varioton-Ornat mit Superhet-Grundbaustein, drei Fischbüchsen dran, zwei Bellas und einer Trimm-O-Matic mit nur 1000g angegeben, also durchaus nicht schwer = ernsthaft schnell. Diese Ruschkupplung machte aus der Bella die Bella II, aber es hatte auch die erste 1959 bereits den Micromax:

Bellamatik-Vorankuendigung_1959.png

Die tatsächlich erschienene sah doch ein wenig anders aus, aber an dem Faulhaber wurde nicht mehr gerüttelt.

servus,
Patrick
 
Mossi(u.ä.)-Antriebe zeitgemäß(er)

Mossi(u.ä.)-Antriebe zeitgemäß(er)

So, weiter im Text ;-)

Es taucht mit schöner Regelmäßigkeit der Wunsch auf, die ollen Luftschaufeln erhalten wollen - die Optik spricht dafür - aber nur bedingt die alten Antriebe. Drum zeig' ich den aktuellen Zustand meines XXL-59 von Aeronaut, der dem XL-59 von Radoslav Cicek recht genau nachempfunden ist. (Mit dem war er auf der ersten Modell-WM 1960 auf dem Flugplatz Leutkirch in der Wakefieldklasse recht erfolgreich, genaueres müsste ich nachschauen. Der Flugplatz ist rund 10 Fahrradkilometer von mir entfernt ;-)

Graupner-Fernwellenlager_1k.jpg

Dieser Motor dreht den Mossiprop ziemlich gelangweilt mit zwei LiPos, etwa auf dem Drehzahlniveau eines Varta- oder Saft-NiCd-7Zellers von 1976, der schon dreihundert Ladezyklen hinter und den ersten Flug nach der Winterpause vor sich hat, an einem 1:6-untersetzten Jumbo 540. Bei drei LiPo-Tüten steht er in der Drehzahl bei einem Mabuchi 550 mit 1:3-Getriebe (zweiter Mossiantrieb) und acht Sanyo SCR 1200 in frischer Blüte und ladewarm. Für diesen großen Außenläufi ist das immer noch Labberkram. Es ist nicht sinnvoll, daß ich meinen Motor angebe, der Nachfolger bei Hobbyking ist schon längst ausgelaufen. Man findet sie bei den Motoren für große Multikopter mit 4-6 Zellen, sind sind mit 400 chinesischen Wättern bei gut hundert Gramm angegeben. Mit der Räumlichkeit sollte man aufpassen und eventuell ein wenig kleinere Motoren suchen, so einen fand ich damals[TM] nicht. Im deutschen, "klassischen" Modellflughandel findet man sie ebenfalls eher nicht, man "Tellerrand" ...

Nun mein spezieller Anlass: die Fernwelle ist vorn kugelgelagert, das Dingens gab es mal bei einer Pleitefirma = gibt es schon lange nicht mehr, es wurde wohl kaum mal gekauft, denn es ist auch gebraucht selten.

Graupner-Fernwellenlager_2k.jpg

Das sind zwei gleiche Halbschalen aus PA, die das ganz normale Rillenkugellager mit einer gewissen Lose führen. Wer es sehen will, sieht auf diesem Bild den Spalt zwischen Schale und dem Lager-Außenring:

Graupner-Fernwellenlager_3kk.jpg

Hier die Darstellung der erlaubten Winkelabweichung ohne Seitenkraft:

Graupner-Fernwellenlager_4k.jpg

Die lila Linie war durchgängig und ist nur teilweise transparent übermalt.

Der Querschnitt durch das halbe Nylonlager:

Graupner-Fernwellenlager_5k.jpg

Es ist sowohl der innere Zylinder eben keiner, sondern ballig, als auch die Tiefe deutlich mehr als die Lagerbreite, 7mm gesamt gegenüber 5. Das erlaubt die Winkelabweichung. Die heute mangelnde Verfügbarkeit des Graupnerartikels #225 ist mit einer Drehbank zu verschmerzen, die Einspannerei wird e weng blöde werden. Ich vermute auch sehr stark, daß heute der billigste 3D-Drucker das ebenfalls hinbekommen kann. Dadurch wird die Größe variierbar, in das Originalding passen auch Lager mit d=5mm rein. Bei einem Motor mit 2kW in einem Sechsmetersegler sollte man wohl die Ausführung grundsätzlich etwa solider planen.

Graupner_Schwenkkugellager_k.jpg

servus,
Patrick
 
Schaltstufensimulation - Vom Arduino zum ATtiny

Ich habe schon in anderen Threads in diesem Forum über Simulationen alter Technik Beiträge geschrieben, zum Beispiel hier:

https://www.rc-network.de/threads/w...nlagen-in-retro-modellen.427436/post-12033518

Aber das Thema passt eigentlich viel besser in diesen Thread, den ich erst kürzlich entdeckt habe.

Der nachfolgende Beitrag ist eigentlich nur eine Variante des oben verlinkten aber mit einem ATtiny85 realisiert. Der Vorteil des ATtiny liegt in seiner Größe. Passt der ProMini gerade noch in ein hier Varioton-Schaltstufengehäuse.

Bild1.png


Bild2.png


Oben zum Größenvergleich der ATtiny draufgesetzt.


Ein Forumsteilnehmer schrieb im anderen Thread zu einem meiner früheren Posts mit dem Arduino, ob ich schon mal einen ATtiny probiert hätte. Ich kannte damals den ATtiny noch nicht und suchte bei Ebay entsprechende Angebote und fand diese auch. Glücklicherweise läßt sich derr ATtiny mittels Plugins auch mit der Arduino IDE programmieren. Ein paar Hürden bis zum Funktionieren des Ganzen galt es aber schon zu überwinden. Der ATtiny arbeitet mit 8 MHz im Vergleich zu den 16 MHz meiner bisher verwendeten Arduinos. Das muss an mehreren Stellen wie in der Konfiguration des Prozessors und bei der Programmierung berücksichtigt werden. Beginnen wir mit der Konfiguration des Prozessors. Hier müssen diverse Einstellungen (Fuses) so gesetzt werden, dass der Prozessor nicht mit den Werkseinstellungen 1 MHz taktet sondern eben mit 8 MHz. Dies geschieht mit der Arduino IDE mittels pseudobrennen des Bootloaders. Vorher muss man aber noch die entsprechenden Libraries einbinden. Es würde zu weit führen dies hier ausführlich darzustellen. Dazu gibt es ausreichend Webseiten.

https://nurazur.wordpress.com/2017/...-oder-1-mhz-taktfrequenz-mit-der-arduino-ide/

https://leap.tardate.com/playground/attiny/at8mhz/

https://wolles-elektronikkiste.de/attiny85-84-45-44-25-24-programmieren


Bild3.png


Ich habe mit dem Arduino versucht zwei Varioprop 2,4V Servos anzusteuern. Das war aber eine langsame Angelegenheit. Man würde die Servos am liebsten anschieben. Vielleicht ließe sich mit ARDUINO Assembler ein Performancegewinn erzielen, so dass man zwei Servos mit einem Arduino ansteuern könnte. Mit dem früher von mir veröffentlichten C-Programm für die Varioprop Micro 05 2,4V Servos läuft nur ein Servo mit vernünftiger Geschwindigkeit. In einer Varioprop- Schaltstufe für 2 Servos kann man locker zwei ATiny unterbringen.

Am besten verwendet man wie im Bild oben Prozessorsockel um den ATtiny von seinem Arbeitsplatz ins Programmierboard umstecken zu können.



Unten wird der Empfänger „simuliert“.
Bild4.png

Die ursprüngliche Platine wurde von allem bis auf die Steckkontakte befreit damit ein FrSky-kompatibler cPPM-Empfänger Platz finden konnte. Vorher war ein Orange-Empfänger installiert, der aber immer unterschiedliche PPM-Werte lieferte. Das PPM-Summen-Signal wird über die Steckkontakte der Schaltstufen durchgeleitet. Jede Schaltstufe holt sich das Signal heraus, für das sie programmiert wurde.

Hier der Code, der hier schon einmal für den Arduino veröffentlicht wurde und von mir auf den ATtiny angepasst wurde. Der Code exisitiert in mehreren Varianten, für Arduino, ATtiny, PPM-Empfänger, PWM-Empfänger, Empfänger mit SBUS und für Bellamatic und Varioprop-Micro 05-Servos 2,4V ohne Elektronik:

C:
#undef F_CPU
#define F_CPU 8000000UL    // ATtiny mit 8 MHz

#include "avr/interrupt.h"

// Für Bellamatic Servos
volatile unsigned long int a, b, c = 0;
volatile int x[15], ch1[15], ch[7], i;
//specifing arrays and variables to store values
    
// For ATTINY

//

//  Prozessorpin     Bezeichnung    hier
//  1                 PB5
//  2                 PB3           in_1
//  3                 PB4           in_2
//  4                 GND
//  5                 PB0
//  6                 PB1
//  7                 PB2           external Interrupt (Empfängersignal)
//  8                 Vcc


const int in_1 = PB4 ;      // H-Bridge zu- bzw. wegschalten PB4
const int in_2 = PB3 ;      // bestimmt die Motorlaufrichtung PB3
const int intrpt = PB2;     // setze interrupt auf PB2
const int schaltstufe = 3;  //TAER
const int MotorSpeed = 160; // max. 255

const int Toleranz = 40;
const int KnueppelMitte = 500;
const int KnueppelMitte_plus_Tol = KnueppelMitte + Toleranz;
const int KnueppelMitte_minus_Tol = KnueppelMitte - Toleranz;


// Werte abgestimmt auf Bellamatic II

int KnueppelPos = 500 ;  // 500

void setup() {

  ch[schaltstufe] = 500;  // Servo neutral  // 500

  DDRB  |= (1 << PB3);    // pinMode(in_2, OUTPUT);
  DDRB  |= (1 << PB5);    // pinMode(in_1, OUTPUT);

  PORTB |= (1 << PORTB2); // ... und als Pullup setzen  //pinMode(intrpt, INPUT_PULLUP);
  GIMSK |= (1 << INT0);   // enabling the INT0 (external interrupt)
  MCUCR |= (1 << ISC01);  // Configuring as falling edge
  sei();                  // enabling global interrupt
}

void loop() {
  read_rc();

  if (ch[schaltstufe] >= 0 && ch[schaltstufe] <= 1000) {
    KnueppelPos = ch[schaltstufe];
  }
  if (KnueppelPos > KnueppelMitte_plus_Tol) { //Servo dreht links/hoch
    analogWrite(in_1, MotorSpeed) ;
  }
  if (KnueppelPos < KnueppelMitte_minus_Tol ) { //Servo dreht rechts/tief
    analogWrite(in_2, MotorSpeed) ;
  }
  if (KnueppelPos < KnueppelMitte_plus_Tol && KnueppelPos > KnueppelMitte_minus_Tol) { // Knüppel in Neutralposition
    // Wenn Neutralstellung erreicht, Servobewegung stoppen
    analogWrite(in_1,0) ;
    analogWrite(in_2,0) ;
  }
} // loop


ISR (INT0_vect) {       // Interrupt service routine {
  //this code reads value from RC receiver from PPM pin (PB2)
  //this code gives channel values from 0-1000 values
  //    -: ABHILASH :-   
  //  https://www.instructables.com/Reading-RC-Receiver-PPM-Signal-Using-Arduino/



a=micros(); //store time value a when pin value falling
c=a-b;      //calculating time inbetween two peaks
b=a;        //
x[i]=c;     //storing 15 value in array
i=i+1;       if(i==15){for(int j=0;j<15;j++) {ch1[j]=x[j];}
             i=0;}}//copy store all values from temporary array another array after 15 reading 
void read_rc(){
int i,j,k=0;
  for(k=14;k>-1;k--){if(ch1[k]>10000){j=k;}}      //detecting separation space 10000us in that another array                     
  for(i=1;i<=6;i++){ch[i]=(ch1[i+j]-1000);}}      //assign 6 channel values after separation space

Interessant wäre die Hauptschleife und die Interrupt-Routine in ATtiny Assembler zu schreiben. Man würde dadurch den Overhead den Compiler so erzeugen einsparen und könnte effizienteren Code gewinnen.

Gibt es eine ordentliche Beschreibung des ATtiny Assembers? Vielleicht kann ja jemand den ATtiny-Assembler und fühlt sich herausgefordert?

Bild5.jpg

Das ist meine Versuchsanordnung. Es funktioniert!

Nochmal eine Bitte: Wer kaputte Varioton-Schaltstufen hat, denke an mich, ich würde gerne weitere Schaltstufen simulieren und auch in einem passenden Modellflugzeug wie z.B. Amigo oder ähnliches ausprobieren. Kontaktaufnahme bitte per PN.
 
Wenn Rechenleistung Dein Problem ist, könnte der stm32 auch eine Idee sein. Kannst Du auch mit der Arduino IDE programmieren. Und dank SMD sind die ICs eher noch kleiner
 
@daybyter: Ah, ich habe nochmal nachgeschaut. Du warst es, der mich auf den ATtiny gebracht hat.

Ich würde sagen, für den Zweck reicht die Rechenleistung! Zwei Servos von einem Programm aus konnte ich schon mit dem Arduino nicht ansteuern. Da bieten sich halt dann zwei ATtiny an.
 
Schau mal unten in dem Thread:


Du hast halt nur 2 Hardware Timer für pwm.

Statt Deiner for Schleife zum Kopieren könntest Du auch memcpy nehmen?

Dein if zur Knüppelposition sollte ein if... else sein. Wenn der Knüppel über der Mittelposition ist, musst Du ja danach nicht prüfen ob er unter der Mittelposition ist. Oder hab ich da nen Denkfehler?
 
Ja, am C-Code kann man schon noch ein bischen nachschärfen. Einen Teil des Codes, nämlich der die PPM-Signale liefert habe ich unverändert aus dem Internet übernommen. Mir ging es in erster Linie um die generelle Machbarkeit, auch mit dem ATtiny. Und das tut es!
 
Ich bin mir nicht ganz sicher, ob ich richtig verstehe was Du meinst, aber PPM ist ja ein Summensignal. Jeder ATtiny stellt eine Schaltstufe dar ,der die gleiche Software benutzt mit dem Unterschied der Belegung der Variable "schaltstufe" mit dem entsprechenen Wert TAER --> T=Gas=1, A=Quer=2, E=Höhe=3 und R=Seite=4. Auf gut deutsch, das Summensignal wird durch die Steckkontakte von der ersten bis zur letzten Schaltstufe (ATtiny/Arduino) durchgereicht und jede Schaltstufe nimmt sich gesteuert durch die Variable "schaltstufe" das entsprechende Signal für sich heraus. Hast Du das gemeint?
 
Ich meinte halt, dass Du mit einem Attiny das gesamte Signal auswerten könntest und Dir die Servo Signale nacheinander rausholen könntest.

Da bin ich gerade dran. Den Code hab ich schon geschrieben, mir fehlt aber noch der Empfangsteil dafür.

Wenn Du Hilfe beim Code brauchst, hab ich evtl noch ein oder zwei Ideen. Ich hab schon mehrere Programme geschrieben.
 
Ich habe das mal mit dem Arduino und dem Code für für 2 Varioprop Micro 05 2,4V Servos probiert. Der Code hier sieht etwas anders aus, da diese ja proportional arbeiten. Im Gegensatz zum Bellamatic-Code wo bei einer Knüppelbewegung einfach Gas gegeben wird bis der Knüppel wieder neutral ist und die Feder die Neutralisierung übernimmt erfolgt die Bewegung hier stückchenweise bis die Knüppelposition erreicht ist. Man wil ja hier nicht immer Vollausschläge haben. Im Prinzip funktioniert das schon, die Servos bewegen sich aber durch die lange Schleife viel zu langsam. Hier meine ich könnte man mal mit Assembler ansetzen und könnte was bringen. Wenn Du da bessere Ideen hast, gerne!
 
Zuletzt bearbeitet:
Korrektur zum Nachtrag: Der Beitrag bzw. Progammcode findet sich hier:
 
Ich meinte halt, dass Du mit einem Attiny das gesamte Signal auswerten könntest und Dir die Servo Signale nacheinander rausholen könntest.

Da bin ich gerade dran. Den Code hab ich schon geschrieben, mir fehlt aber noch der Empfangsteil dafür.

Wenn Du Hilfe beim Code brauchst, hab ich evtl noch ein oder zwei Ideen. Ich hab schon mehrere Programme geschrieben.

Du könntest auch einen zweiten ATtiny oder Arduino mit entsprechender SW und Drehpotis als Sender programmieren und damit ein PPM-Signal erzeugen und dieses dem ATtiny zuführen. Falls Du SW brauchst, ich könnte damit dienen!
 
Ansicht hell / dunkel umschalten
Oben Unten