Zum Inhalt wechseln


Tutorial info

  • Added on: 23. Jan. 2016 15:12
  • Date Updated: 23. Jan. 2016 15:12
  • Views: 4749
 


* * * * *
3 Ratings

Horizon CGO2 mit Standard Empfänger schwenken.

Die CGO2 lässt sich nicht von einem normalen Empfänger ansteuern der ein Signal im Bereich 1000us - 2000us sendet.
Hier eine kleine Selbstbaulösung.

Geschrieben von brused on 23. Jan. 2016 15:12

Um die Horizon CGO2 an einem normalen Kopter zu verbauen und sie schwenken zu können,

würde man einen Empfänger benötigen der ein Signal von 500ns nach der Initialisierung übermittelt.

 

Um dies zu ermöglichen kann man eine eigene relativ preiswerte Lösung selbst Bauen.

 

Es sollte etwas Erfahrung im Umgang mit Mikrocontrollern und deren Programmierung vorhanden sein.

 

Dazu brauchen Ihr

 

  1. Einen Lötkolben
  2. Eine ATTiny45 Chip
  3. 2x Optokoppler
  4. Ein Standardplatine
  5. und einen Lötkolben.
CGO2Schaltung.png

 

Beschriftung im Schaltplan:

IS = Eingang Signal vom Empfänger

IP = Eingang Plus vom Empfänger

IG = Eingang Minus vom Empfänger

OS= Ausgangssignal für die CGO2

OP= Ausgang Plus, ist aber an der CGO nicht benötigt.

OG= Ausgang Grund, auch nicht benötigt an der CGO.

 

 

Zum Programmieren des ATTiny45 verwende ich eine Arduino Uno mit der Arduino Entwicklungsumgebung.

 

Als Erstes müssen wir die Schaltung Löten

Hier ein Schaltplan der SMD-Basis ist. Schaltung ist aber immer gleich.

 

Schaltplan.png

 

Das Wichtigste jedoch ist die Programmierung des ATTiny45

Hier wird eine Warteschleife von 5s eingebaut.

In dieser Zeit liegt kein Signal an der CGO2 an.

Nach 5s wird für 1s ein Signal von 500us gesendet.

Im Anschluss tauscht der Chip die Lietungsschaltung für die CGO2 auf die

Normale Empfängerleitung.

 

Hier der Quellcode für die Steuerung:

 

/*

 * Programm zu Steuerung und überlagerung einer Signalleitung
 * für eine CGO2 Kamera.
 * © Dieter Bruse 2015
 */
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 1000000UL  // 1,0 MHz (für delay.h)
 
bool signal_online = false;
byte PIN_PWM = 1;
byte PIN_SWSE = 3; //Schaltersignal Empfänger
byte PIN_SWSP = 4; // Schaltersignal Prozessor
long start_at = millis();
void setup() {
  // put your setup code here, to run once:
  pinMode(PIN_PWM,OUTPUT);
  pinMode(PIN_SWSE,OUTPUT);
  pinMode(PIN_SWSP,OUTPUT);
  
  analogWrite(PIN_PWM,0);
  digitalWrite(PIN_SWSE,LOW);
  digitalWrite(PIN_SWSP,LOW);
    
}
 
void loop() {
  long now = millis();
  /*
   * Wenn das Singnal bereits vom Empfänger Online ist
   * wird der Kanal offen gehalten.
   */
  if(signal_online){
    analogWrite(PIN_PWM,0);
    digitalWrite(PIN_SWSP,LOW);
    digitalWrite(PIN_SWSE,HIGH);
    return;
  }
 
  /*
   * Nach dem Einschalten, wird nach ca. 5 Sekunden
   * ein Signal von ca. 500us für eine Sekunde aufgelegt.
   */
  if( now - start_at > 5000 && now - start_at < 6000 ){
    digitalWrite(PIN_SWSP,HIGH);
    analogWrite(PIN_PWM,7);
    digitalWrite(PIN_SWSE,LOW);
  }
 
  /*
   * Nach ca. 6 Sekunden wird das Signal vom Prozessor das oben
   * erzeigt wurde auf 0 gesetzt und der Koppler geschlossen.
   * Dafür wird die Signalleitung des Empfängers nun freigegeben.
   */
  if( now - start_at >= 6000 ){
    analogWrite(PIN_PWM,0);
    digitalWrite(PIN_SWSP,LOW);
    digitalWrite(PIN_SWSE,HIGH);
    signal_online = true;     
  }
 
}

 

Wir haben die Schaltung im Einsatz und sie Funktioniert.

Ich übernehme aber keine Garantie für euere Hardware beim Nachbau!

 

Wer Fragen hat, darf gerne fragen.

 

 

 

Angehängte Grafiken

  • Schaltplan.png
  • CGO2Schaltung.png
  • h-elsner, mz56, stubenflieger und 3 anderen gefällt das