Archive for January, 2013

Mini Protos: fliegt wie neu! *freu*

Thursday, January 31st, 2013

In den letzten Tagen flog ich mit dem HK450 immer besser als mit dem mProtos – der HK450 war viel wendiger. Woran liegt das. Drehzahl ist ungefähr gleich. Die Servos ? das Gewicht ?

Heute sah ich ein Video, wo jemand mit seinem mProtos mit 2000rpm auf sehr engem Raum beeindruckend schnelle 3D Figuren fliegt. Das nahm ich zum Anlass meine Microbeast Settings zu überprüfen. Das war eine sehr gute Idee, denn es war zu zahm eingestellt. Hier die neuen Einstellungen:

Setupmenu
L Taumelscheibe zyklische Begrenzung – das war gut eingestellt, blaue LED leuchtet.

PARAMETERMENÜ
B Steuerverhalten – habe ich jetzt wieder auf Blau = Sender = kein Expo
G Zyklisches Ansprechverhalten – blau blinkend (zweit-höchste Stufe)

Diese Einstellungen sind schon viel besser. Ich hab auch den Eindruck, die Piro-Rate ist höher. Flips über Nick gehen gut, über Roll noch etwas lahm. Piroflips gehen sehr gut – wie im Simulator 🙂 Bai abrupten Stopps während Backflips wobbelt der Heli stark auf Roll. Das ist nicht gewollt, sieht aber lustig aus. Vielleicht kann man das mit dem Potis 1 & 2 weg-tunen. Tic-Toks muss ich noch testen. Bei Kreisen und Achten ist dieses sehr direkte Steuerverhalten nicht so angenehm. Vielleicht mache ich mir etwas Expo per DualRate zuschaltbar.

Wetter: +12°C Sonne , schon 5 Akkus geflogen, wenn die voll sind, gehts wieder raus aufs Feld. YAY!

Update: gerade habe ich bemerkt, das im Sender auch noch 15% Expo eingestellt waren. Expo im Beast + Expo im Sender – das kann ja nicht gut gehen!

Bluetooth-Auto (Forts.)

Wednesday, January 30th, 2013

2 Schreck-Momente und 2 Bilder möchte ich noch nachreichen:

Schreck-Moment 1:
Alles ist angeschlossen. Nach wenigen normalen Relais Klack-Geräuschen plötzlich alles tot. Sogar die LED vom BT-Modul ist aus!
Testweise habe ich statt der Relais wieder meinen LED-Strip angeschlossen: von den 3 Farben leuchtet nur noch eine! 🙁
Sch…. sind Transistoren im ULN druchgebrannt? Das wär sehr blöd, denn der ist nicht gesockelt. Noch ein bisschen probiert & gemessen: Die Spannung des NiMH Akkus bricht total ein. Weg damit und einen 2S Lipo besorgt. Damit lief es dann gut weiter bis….

Schreck-Moment 2:
Das Auto war aufgebockt, die Motoren & Räder können frei drehen.
Plötzlich stoppt der Motor sehr abrupt und die Räder lassen sich auch manuell nicht mehr drehen 🙁 was nun? Motor kaputt ? Getriebeschaden ? Um einen Motor zu erreichen musste ich beide Motoren ausbauen und ein Getrieben öffnen – unzählige Schrauben, fettige Finger. Getriebe sieht gut aus. Motor blockiert. Mit “sanfter Gewalt” konnte ich es wieder gängig machen. Ein paar Mal in Beide Richtungen ohne Getriebe laufen lassen – alles ok. Aber ich war skeptisch – wann wird das wieder passieren ? alles wieder zusammen gebaut. Seit dem ist alles ok. Auto fährt & driftet gut auf Parkett oder Terrasse. Durch den Schnee kommt es aber kaum – vermutlich ist der Akku zu schwach.
Demnächst mal auf den Sportplatz um die BT-Reichweite zu testen.

BT car

bt car

mProtos & HK450 Rotorkopfdrehzahl

Wednesday, January 30th, 2013

weil ich einen neuen Sender habe und ein wenig mit den Gaskurven experimentiert habe hier die aktuellen RPM Werte:

mProtos Gaskurven:
85 75 70 75 85%
100 90 85 90 100%

mProtos, alter Akku: 2280, 2580rpm
mProtos,GensAce 25C: 2640, 2970rpm
mProtos, 4S 1800mAh 30C Turnigy, ca.72% Gas: 3210rpm

HK450 Gaskurven:
0 30 50 65 80%
90 85 80 85 90%

HK450, alter Akku: 2200, 2490rpm

Bluetooth-Auto

Tuesday, January 29th, 2013

Bastelprojekte, bei denen man keine Teile bestellen muss, weil man alles schon zu hause herumliegen hat, mag ich besonders. Das Bluetooth-Auto in den letzten 3 Tagen war so ein Projekt. Ein Freund gab mit ein “MGA CLUTCH AXI TRESPASS Land & Sea Fluid 4WD RC” Spielzeug-Auto für das er keine Fernsteuerung und auch keine funktionierenden Akkus mehr besaß. Zunächst habe ich überlegt, ob man normale RC-Empfänger und Motorregler einbauen kann, aber ich hatte nur einen Regler für Bürstenmotoren – ohne Rückwärtsgang.
Das Auto zu öffnen war nicht einfach: Viele schwer erreichbare Schrauben, viel Fett und Dichtungsgummis, denn das Auto konnte auch auf Wasser fahren.
Auf der Platine fand ich 6 Relais: 2 x Motor links , 2 x Motor rechts, 2 x Motor Lenkung – dachte ich – aber die Lenkung hatte eine Eigene Transistor-H-Brücke. Also 3 Relais pro Motor für Umpolung und 2 Geschwindigkeitsstufen.

Hardware-Hack

Die Relais hatten SMD Treiber Transistoren mit Testpunkten am Eingang – Dort hätte ich die Ausgänge meines Atmega8 mit positiver Logik anschließen können. aber ich hatte aus dem RGB-Heli-Projekt noch die Platine mit Spannungsregler, ULN2803 und Anschlüssen für Seriell und ISP. Also bin ich mit den Ausgängen des ULN direkt an die Relais gegangen. An TX & RX habe ich ein $10 Bluetooth RF Transceiver Module angeschlossen, wie es sich schon beim Multiwii quadcopter bewährt hat.

Software-Hack, Arduino


int inByte = 0;         // incoming serial byte
const int red1 = 6;
const int green1 = 3;
const int blue1 = 5;
const  int red2 = 9;
const  int green2 = 11;
const  int blue2 = 10;

byte state = 0;
unsigned long currentMillis ;
unsigned long commandMillis;
long interval = 1000;           
const byte o_stop =   0;

void alloff() {
  digitalWrite(blue1, LOW);
  digitalWrite(blue2, LOW);
  digitalWrite(red1, LOW);
  digitalWrite(red2, LOW);
  digitalWrite(green1, LOW);
  digitalWrite(green2, LOW);
  delay(200);
}

void allon() {
  digitalWrite(blue1, HIGH);
  digitalWrite(blue2,HIGH );
  digitalWrite(red1, HIGH);
  digitalWrite(red2, HIGH);
  digitalWrite(green1, HIGH);
  digitalWrite(green2,HIGH );
  delay(200);
  
}

void setup() {
  
  pinMode(red1, OUTPUT);
  pinMode(green1, OUTPUT);
  pinMode(blue1, OUTPUT);
  pinMode(red2, OUTPUT);
  pinMode(green2, OUTPUT);
  pinMode(blue2, OUTPUT);
  currentMillis = millis();
  commandMillis = currentMillis;
  Serial.begin(115200);
  
  allon();
  alloff();
  allon();
  alloff();
}

void loop() {
  if (Serial.available() > 0) {
    inByte = Serial.read();
    Serial.write(inByte);
    state = inByte;
    Serial.write(state);
    digitalWrite(green2, (state & B00100000)   );
    digitalWrite(blue2,  (state & B00010000)   );
    digitalWrite(red2,   (state & B00001000)   );
    digitalWrite(green1, (state & B00000100)   );
    digitalWrite(blue1,  (state & B00000010)   );
    digitalWrite(red1,   (state & B00000001)   );
    commandMillis = millis();
  }
  currentMillis = millis();
  if(currentMillis - commandMillis > interval) {
     alloff();
     state = o_stop;
  }
}

Software-Hack, android

Von der Android-App, die ich mit SL4A in python geschrieben habe, gibt es 3 Varianten:
1.Variante
In einem Dialog mit den Buttons “+” “-” und “send” kann man ASCI Zeichen ab “0” durchblättern und zum Auto senden. Dabei habe ich mir notiert, bei welchen Zeichen (=Relaiskobinationen) was passiert – Für das Auto sind nur die unteren 6 Bits relevant.

XXXX X011 "3" rechter Motor rückwärts 
XXXX X101 "5" rechter Motor vorwärts
???? ???? "@" stop
0101 1000 "X" linker Motor rückwärts
???? ???? "[" beide Motoren rückwärts
???? ???? "]" beide Motoren, Auto dreht auf der Stelle linksherum
0110 1000 "h" linker Motor vorwärts
0110 1011 "k" beide Motoren, Auto dreht auf der Stelle rechtsherum
0110 1101 "m" beide Motoren vorwärts

2.Variante
hier kann man Zeichen per soft-keybord auswählen und senden um die Ergebnisse aus 1 nuch mal zu kontrollieren.

3.Variante
Je nach Neigung des Handys wird eins von 5 Zeichen zum Auto gesendet, 4 x pro Sekunde. siehe Video


#!/usr/bin/python
# -*- coding: utf-8 -*-

import android
import time

tilt_angle = 0.2

b_forw = 'm'
b_backw ='['
b_turn_right ='k'
b_turn_left = ']'
b_stop = '@'
outb = '@'

def bt_out(value):
   droid.bluetoothWrite(value)
 
if __name__ == '__main__':
    # global android Object for GUI
    droid = android.Android()
    
    # every 200ms
    ret = droid.startSensingTimed(1,200)
    droid.bluetoothConnect('00001101-0000-1000-8000-00805F9B34FB', '00:12:02:11:01:10')
    time.sleep(1)
    state = b_stop
    
    while True:
        ret = droid.sensorsReadOrientation().result
        pitch = ret[1]
        roll  = ret[2]
        #print pitch,roll,
        if pitch < -1.4:
            droid.stopSensing() 
            droid.bluetoothStop()
            exit()
        if pitch > tilt_angle:
            print 'forwards',
            state = b_forw
        if pitch < -tilt_angle:
            print 'backwards',
            state = b_backw
        if pitch > -tilt_angle and pitch < tilt_angle:
            print '-----',
            state = b_stop
        if roll > tilt_angle:
            print 'right',
            state = b_turn_right
        if roll < -tilt_angle:
            print 'left',
            state = b_turn_left
        if roll > -tilt_angle and roll < tilt_angle:
            print '-----',    
        bt_out(state)
        print state 
        old_state = state
        time.sleep(0.2)

Ausblick

  • Für Indoor könnte man einen Ultraschall Sensor auf das Auto montieren. Dann könnte es automatisch vor (manchen) Hindernissen stoppen und auch die Umgebung mappen.
  • Per Spannungsteiler am Analogeingang kann das Auto seine Akku-Spannung zurück senden.
  • Für Outdoor könnte man das Handy auf das Auto montieren, dank Kompass & GPS kann es dann autonom navigieren und Wegpunkte abfahren

Baubericht Teil 2

Quadcopter 2: first flips

Sunday, January 20th, 2013

Bei +6°C heute ein weiter Flug mit dem Quadcopter2. Fliprate ist noch nicht so hoch wie bei dem “kleinen” aber dafür mehr “hang-time” 🙂
10 Minuten Flugzeit mit einem 3S 2200mAh Akku – Allerdings danach auch 2300mAh geladen. Hmm… Das war nicht sehr Akku-freundlich. Aber ich wollte halt mal wissen, was die maximale Flugzeit ist. Wenn ich auf Kunstflug verzichte, sind 10min. für einen FPV Flug realistisch – auch ohne den Akku zu quälen.

Quadcopter 2: Maiden Flight

Friday, January 18th, 2013

Heute habe ich noch eine 10x10cm Sperrholz Bodenplatte hinzugefügt. Dadurch habe ich eine solide Akku-Halterung und noch etwas Platz für die (FPV-)Cam. Videosender kommt später wahrscheinlich oben auf die Centerplate. Inklusive Bodenplatte, 4 langen M4 Schrauben und 10″ Gaui Propeller komme ich nun auf ein Abfluggewicht von 750g. Das entspricht ungefähr einem 450er Heli. Strom kann ich momentan nicht messen, aber vielleicht kann ich morgen die Flugzeit mit einem vollen Akku ermitteln.

Erstflug mit Naze32 default-Werten und nicht balancierten Gaui Propellern verlief sehr angenehm. Der Copter schwebt stabil, schwingt nicht, driftet nicht. Baro, Angle, & Horizon habe ich noch nicht getestet.

Morgen möchte ich noch ein paar Schaumstoff-Füße bauen. Auf dem Akku zu landen ist keine dauerhafte Lösung 😉

Quadcopter 2

neuer Quadcopter im Bau

Thursday, January 17th, 2013

Rahmen: 40cm, Alu. Eigentlich wollte ich aus Holz einen etwas größeren Rahmen bauen aber das habe ich erst mal vertagt, weil ich diesen Alu-Rahmen geschenkt bekam. Bei 10″ Propellern habe ich 0cm Abstand zur Centerplate und ca. 2cm Abstand zwischen den Propellern.
Regler: HobbyKing 20A UBEC mit SimonK Firmware.
Motoren: CF2822
Flightcontrol: Afroflight Naze32
Gewicht momentan: 466g ohne Akku, 660g mit 3S 2200mAh Akku

pilot’s diary

Wednesday, January 9th, 2013

2012 ist vorbei. Nur 5 Crashes in den letzten 374 Tagen! 🙂
Heute gab es ein paar Stunden Sonne. 6 Flüge bei +6°C: 4 x HK450GT und 2 x mini Protos. Premiere heute: Piroflips rechtsdrehend. Es wird Zeit, dass ich (im Sim) mal wieder eine neue Figur lerne. Im letzten Jahr sind kaum neue Figuren hinzugekommen. Mir war es wichtiger, Piroflips und TicTocs zu verbessern; d.h. vor allem das driften nach oben, nach vorne und zur Seite zu vermeiden.