Brushless ESC als RC (Licht)schalter

aber ein interessehalber, wie kommst du dazu das diese escs
http://0x.ca/sim/esc/HK_RB30-ESC/
tp sind und nicht tgy?
meien sehen vorne hinten exakt so aus, sind aus Mai 2012 vom flyduino und können definitiv keine 4S ab,auf dem label stand nur das flyduino logo und 25A SimonK, mehr nicht.
ich versuche nämlich die ganze zeit mit tgy.
oops, stimmt.
tgy sieht so aus:
Code:
//Define the Pins at which channel 1,2 and 3 are placed
#define OUT1_VCC 5             //Ap         
#define OUT2_VCC 4             //Bp
#define OUT3_VCC 3             //Cp

#define OUT1_GND 10            //An        
#define OUT2_GND 9             //Bn
#define OUT3_GND 8             //Cn
 

skyfreak

a freak on a leash
hallo overturner

ich habe jetzt versucht diese flyduino teile zu flashen mit beiden on/channel mapping also für tgy und tp.
nüscht nada niente keine Lampe keine Reaktion kein gar nichts.

was ich also bisher berichten kann:

- petes arduino lösung
- bs code geht für HK BlueSeries 20A
- auf den 25A flyduino simonK geht weder tgy noch tp

6A UBEC ist eben mit der post gekommen, der wird genauso getestet wie das was VikiN nachher an ESCs mitbringt.

morgen wissen wir mehr was schon an ESCs geht und was nicht mit dem weg den pete eingeschlagen hat.

grüsse un danke an alle noch mal
wir testen gerne weiter ;D

skyfreak
 

skyfreak

a freak on a leash
leider ist VikiN mit dem auto liegen geblieben :(
... und er hat die ganzen ESCs zum testen.

ich habe den 6A UBEC HK in der Zwischenzeit auch mit petes arduino version getestet, funktioniert auch wie zu erwarten war!

gruss,
der skyfreak
 

pete1990

Erfahrener Benutzer
Ach so ein Pech. Aber danke für den Test mit dem UBEC. Wir werden schon noch einen großteil der Regler zum laufen kriegen!

grüße,
Peter
 

skyfreak

a freak on a leash
ich bin grade am easystar verkabeln, dann richte ich die blinkmuster ein und werde es gleich mal mit einem drehpoti und 5 schaltstufen probieren :D

happy landings,
skyfreak
 

VikiN

Flying Wing Freak
joa, leider war mein seit 150.000km zuverlässiges Auto heute gar nicht mehr so zuverlässig siehe: ( suche 6 gang Getriebe für Seat Leon 1M 1,9tdi 150ps )
http://fpv-community.de/showthread.php?37388-6-gang-Getriebe-f%FCr-Seat-Leon-1M-1-9tdi-150ps&p=485761#post485761

=(

@ overtuner/skyfreak
ESC-Light HK RedBrick 20A Robbe Roxxy BLControl 720
nen
Robbe Roxxy BLControl 720
hab ich daheim - allerdings mag da das BEC nicht mehr
motor lässt sich schon daran betreiben
- wär doch auch einen versuch wert, oder?
 
- wär doch auch einen versuch wert, oder?
hab ich schon getestet - fuppt.

ich hab auch mal ein paar Schrott-ESC rausgekramt, und "getuned" :cool:
also Platine gekürzt, unnötige FET runtergeworfen, 5V- Regler des Atmega abgelötet und mit den BEC-Reglern verbunden...
Ergebnis: ein ESC-Light bis 8S, an dem ich immer noch 10A treiben kann - ok, mein Netzteil schaltet auch bei 10A ab, aber sechs 3W-LED mit Volldampf als Flasher ist schon krank ...

btw - das Problem mit dem komischen ESC von skyfreak wird wohl der fehlende externe Reso sein.
 

skyfreak

a freak on a leash
sagt mal was mir so gerade beim verkabeln der LEDs einfällt.

bei mir werkelt ESC-light ja in einem easystar und der platz wird langsam knapp FPV-gedöns, kein sumsi also viele Kabel ...
der esc schaltet also lichter, dadran hängt ein kleiner Stecker für den 12V betrieb meines FVP krams und er fungiert eben auch als BEC für alles was 5V braucht, sprich RX und servos.

wenn ich jetzt mal das lichtmuster ändern möchte, dnn kann ich den ganzen krempel ja wieder ausbauen um die FW neu einzuspielen. :( jaja ist meine erste flache, bei der nächsten findet der umbau anders statt ;)

aber beim KK flashtool gibt es ja die option mit/ohne bootloader, um beim nächsten FW update über das servokabel flashen zu können, ohne den Esc wieder ausbauen, entschrumpfen, und wieder auf das nadelbrett zu legen.

wäre das nicht eine wichtige option pete für deinen arduino code?
IMHO steht das auf einer prio stufe mit lipowarner.

denn beim lipowerner stelle ich mir vor, dass man eine feste Spannung in der FW konfiguriert, will man die mal ändern muss man ja auch wieder das ganze teil ausbauen zum flashen.

nur so ein Gedanke ... und wech und weiter verkabeln ;)

happy landings,
sky
 

skyfreak

a freak on a leash
es ist vollbracht !!! und ich kann mich gar nicht oft genug bedanken bei euch allen und beim frickler und pete im speziellen.
es ist am ende nicht nur so wie ich es mir gewünscht habe, sonder sogar noch besser!

5 schaltbare zustände:
- off
- doppelblitz am schwanz in alle 2 sekunden
- 2-facher doppelblitz mit verzögerung Flügel und Rumpf dauerlicht
- alles auf dauerlicht
- wildes blinken :D

das wilde blinken soll auf den Flieger aufmerksam machen, z.b. wenn ich zum landen rein komme.

alle 5 zustände liegen auf einem drehpoti und sind bei 1000-2000 in 200-er abständen, da ginge locker noch mehr VikiN ;)

der letzte zustand ist mit dem flugphasenschalter gekoppelt, wenn ich in die landephase gehe, dann schaltet der phasenumschalter auch gleichzeitig das blinken mit :D

super Jungs ihr seid die besten.

und vor allem, jetzt wo man weiss wie, kann man in jede Kiste blinke blinke schnell und für kleines geld einbauen :D

happy landings,
der skyfreak
 

pete1990

Erfahrener Benutzer
moin,

für einen Upoad via Bootloader müssten meines wissens die beiden Pins PD0+PD1 (RxD+TxD) rausgeführt werden, und da kommt man nicht hin. Lieber würde ich einen kleinen Stecker mit den ISP-Pins+Adapterkabel bauen, sodass man seinen Programmer auch nur anstecken muss. Zumindest gilt das für die Ardunino Bootloader, glaub ich. Für Servostecker müsste man erst noch nen Bootloader schreiben...

Ein Video vom Ergebnis wäre schön.

Viele Grüße,
Pete
 

skyfreak

a freak on a leash
was basteln um den programmer direkt dran zu stecken klingt auch nicht schlecht :D
mal gucken ob ich da noch was wurschtle bevor ich den einbaue.

video habe ich schon eines gemacht, aber mit den Lichtverhältnissen und dem reflektierenden Boden kommt das überhaupt gar nicht schön.

werde aber eines nachreichen, ganz bestimmt!

nebenbei mal eine frage an die Herren coder :D

ich habe jetzt 5 zustände und das ganz blöd mit if schachteln :(
ich habe es mit case versucht, aber dann weiss ich nicht wie ich statt auf einen fixen wert auf < abfrage.

Code:
    if(STICKPOS < STICK_LOW){      
              
    }else { if(STICKPOS < STICK_CENTER_LOW){      
    
    }else { if(STICKPOS < STICK_CENTER){                 
    
    }else { if(STICKPOS < STICK_CENTER_HIGH){                                               
    
    }else {

    }}}};
dieses construct meine ich, dass geht doch bestimmt auch schöner mit case oder?

happy landings,
skyfreak
 
Zuletzt bearbeitet:

skyfreak

a freak on a leash
hier mal auf die schnelle das testvideo mit den fürchterlichen Farben ... dabei sieht der in natura in rot weiss grün so scheeee aus, und auch die lamperl san natürlich r/w/g ;)

[video=youtube_share;GiJA8StNIDY]http://youtu.be/GiJA8StNIDY[/video]

mittlerweile habe ich auch die Pattern noch mal komplett abgeändert ...

happy landings und immer wieder DANKE
skyfreak
 
Einfach 1x simonk mit bootloader flashen und danach die Licht hex über den USB Linker übers servokabel.
Dem Bootloader is ja schnuppe ob simonk oder Licht kommt und dem licht/simonk isses auch egal obs über dem Bootloader läuft.
 
Zuletzt bearbeitet:
Moin

Mit Spannung habe ich verfolgt, was ihr hier rausgefunden / getestet habt.

Meine Intention war nämlich schon immer, das auf nem handelsüblichen ESC zu benutzen. Leider war es mir, aufgrund fehlender Programmierkenntnisse, bisher nicht möglich.

Kann mal jemand zusammenfassen, wie man nun vorgehen muss, um rauszufinden, ob das ESC, was man hat, benutzbar ist - und welche Files man dann braucht?

Soweit ich verstanden habe, bedient ihr euch der SimonK "Liste", um rauszufinden, welche FETs drauf sind und wie diese verschaltet sind (am uC), oder hab ich das missverstanden?

Ich habe hier nämlich noch einige Schrott-ESCs, welche ich dafür gerne verwenden würde, aber ich blicke nicht durch, wie genau das nun funktioniert. Ich meine, das waren 30A Mystery ESCs (weiss das nimmer genau, da ich den Schrumpfschlauch mal abgemacht habe und nicht mehr habe).

Was müsste man denn vom ESC wissen und wie würde man vorgehen, wenn mans nicht weiss, bzw wie sucht man die files aus, die man braucht?

ISP und Progadapter habe ich.
 
@sky
du machst das gelamperl mit delay, wie in petes muster?
 

skyfreak

a freak on a leash
yep korrekt mache ich

sieht dann so aus

Code:
/*
  ESC-Light
 */
 
#include "esc_pin.h"


// Definitions of Switching Stick Positions
#define STICK_LOW 1100         
#define STICK_CENTER_LOW 1400        
#define STICK_CENTER 1600      
#define STICK_CENTER_HIGH 1800     
#define STICK_HIGH 2000     
#define STICK_OVERFLOW 4000


#define DELAY_1 170
#define DELAY_2 100
#define DELAY_3 130


int STICKPOS;


void setup() {
   // define Pins as in/out - DO NOT CHANGE
   pinMode(IN, INPUT);
   pinMode(OUT1_VCC, OUTPUT);
   pinMode(OUT2_VCC, OUTPUT);
   pinMode(OUT3_VCC, OUTPUT);
   pinMode(OUT1_GND, OUTPUT);
   pinMode(OUT2_GND, OUTPUT);
   pinMode(OUT3_GND, OUTPUT);
   
   // init outpins all off  - DO NOT CHANGE
   digitalWrite(OUT1_VCC , LOW);
   digitalWrite(OUT2_VCC , LOW);        
   digitalWrite(OUT3_VCC , LOW);
   digitalWrite(OUT1_GND , LOW);
   digitalWrite(OUT2_GND , LOW);        
   digitalWrite(OUT3_GND , LOW);
}




void loop() {
	// READ RC PULSE 
	STICKPOS = pulseIn(IN,HIGH);
	
	// SWITCH OUT1_VCC/OUT2_VCC/OUT3_VCC as you want your blinking sequences.
	// For LEDS with common Anode connected to VCC switch OUT1_GND/OUT2_GND/OUT3_GND
	// NEVER!!!! set OUT1_VCC and OUT1_GND to HIGH at the same time, it will shortcut 
	// your Battery and your ESC will light up in flames!
	
	if(STICKPOS < STICK_LOW){                
	
	digitalWrite(OUT1_VCC , HIGH);
	digitalWrite(OUT2_VCC , HIGH);        
	digitalWrite(OUT3_VCC , HIGH);
	
	} else { if(STICKPOS < STICK_CENTER_LOW){  	
	
	digitalWrite(OUT1_VCC , HIGH);
	digitalWrite(OUT2_VCC , HIGH); 
	
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT3_VCC , HIGH);
	delay(80);
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT3_VCC , HIGH);
	delay(1840);   
	
	} else { if(STICKPOS < STICK_CENTER){                 
	
	digitalWrite(OUT1_VCC , LOW);
	digitalWrite(OUT2_VCC , LOW); 
	
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT3_VCC , HIGH);
	delay(80);
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT3_VCC , HIGH);
	delay(300);
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT3_VCC , HIGH);
	delay(80);
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT3_VCC , HIGH);
	delay(2380); 
	
	} else { if(STICKPOS < STICK_CENTER_HIGH){                               				
        
	digitalWrite(OUT1_VCC , HIGH);
	digitalWrite(OUT2_VCC , HIGH); 
	
	digitalWrite(OUT3_VCC , LOW);
	delay(DELAY_2);
	digitalWrite(OUT3_VCC , HIGH);
	delay(DELAY_3);
	digitalWrite(OUT3_VCC , LOW);
	delay(DELAY_2);
	digitalWrite(OUT3_VCC , HIGH);
	delay(DELAY_1); 
	
	digitalWrite(OUT1_VCC , LOW);
	delay(DELAY_2);
	digitalWrite(OUT1_VCC , HIGH);
	delay(DELAY_3);
	digitalWrite(OUT1_VCC , LOW);
	delay(DELAY_2);
	digitalWrite(OUT1_VCC , HIGH);
	delay(DELAY_1);


	digitalWrite(OUT3_VCC , LOW);
	delay(DELAY_2);
	digitalWrite(OUT3_VCC , HIGH);
	delay(DELAY_3);
	digitalWrite(OUT3_VCC , LOW);
	delay(DELAY_2);
	digitalWrite(OUT3_VCC , HIGH);
	delay(DELAY_1);
	
	digitalWrite(OUT2_VCC , LOW);
	delay(500);


        	        	
	} else {
	
	digitalWrite(OUT1_VCC , LOW);
	digitalWrite(OUT2_VCC , LOW);        
	digitalWrite(OUT3_VCC , HIGH);
	delay(340);


	digitalWrite(OUT1_VCC , HIGH);
	digitalWrite(OUT2_VCC , HIGH);        
        digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT2_VCC , LOW);        
	digitalWrite(OUT3_VCC , HIGH);
	delay(140);
	digitalWrite(OUT2_VCC , HIGH);        
	digitalWrite(OUT3_VCC , LOW);
	delay(40);
	digitalWrite(OUT2_VCC , LOW);        
	digitalWrite(OUT3_VCC , HIGH);
	delay(340);


	}}}};




}
und des ganze if Gedöns geht sicher auch schöner mit case, wie bereits gefragt
aber da habe ich keinen plan von :(

grüsse,
skyfreak
 

skyfreak

a freak on a leash
Einfach 1x simonk mit bootloader flashen und danach die Licht hex über den USB Linker übers servokabel.
Dem Bootloader is ja schnuppe ob simonk oder Licht kommt und dem licht/simonk isses auch egal obs über dem Bootloader läuft.
grandios, danke frickler ... aber so ist es eben wenn man keine Ahnung hat,da macht sich gedenken und fragt mal nach ;)

das ist natürlich die eleganteste Lösung.
 
In der neuen CT Hardware Hacks ist ein Artikel wie man "quasi" multitasking auf dem Arduino implementieren kann.
Sie nutzen es dort um verschiedene Lichtsteuerungen für ne Modellbahn zu bauen.

Evtl wär das was fürs esclight, da jedes Blinkmuster in sehr einfacher Syntax in ner eigenen Datei konfiguriert werden kann und die dann quasi parallel laufen können.
Ist ganz schon gelöst so find ich. http://www.heise.de/hardware-hacks/links/1304152
Artikel dazu gibts leider nur in der Zeitung...

Wie gesagt, finds klasse das ihr hier so viel dran bastelt am ESCLight, so war das gedacht!
Ist ja auch alles garnicht soo schwer wenn man sich mal damit auseinander setzt.

Ein Blitzer schaut dann z.B. so aus:
Code:
#define LED_BLITZ 13
#define LED_BLITZ_AUS digitalWrite(LED_BLITZ, LOW)
#define LED_BLITZ_EIN digitalWrite(LED_BLITZ, HIGH)


void init_blitz(void)
{
  LED_BLITZ_AUS;
}



void blitz(void)
{
  SM_ENTRY(0);
  
  SM_DURATION(100);
     LED_BLITZ_EIN;
  SM_END;
  
  SM_DURATION(900);
     LED_BLITZ_AUS;
  SM_END;

  SM_EXIT;
}
 
Zuletzt bearbeitet:

OlliW

Erfahrener Benutzer
Hallo Zusammen

also, ich glaube das ist alles zu kompliziert :)

und um nicht nur zu schwallen, will ich auch - evtl - etwas beitragen:
Ich hatte vor nen paar Jahren mal ein Lichtsteuerprogram für nen Tiny für 5 Leds geschrieben, damit meine Kinder (ja, KINDER, damals 10/12 Jahre) sich Lichtampeln etc bauen konnten. Und das war so einfach, dass meine Kinder problemlos damit umgehen konnten (und dann auch viel Spass mit veschieden Lichtleins zu löten hatten LOL). Jedenfalls im Anhang mal das zip File des Projekts.
Das Prinzip ist so: in dem h.File Kinder.h wird ein String geschrieben mit einfachsten Befehlen: an, aus, wait. Dann wird die Bat.Datei Kinder.bat aufgerufen, und schon wird alles compiliert, und in den Tiny geflasht, und das Program läuft. In der Kinder.h könnt Ihr seher dass damit sehr viel, auch teils wirklich lustiges, möglich war. Im Code selber wird der String in einfachen Pseudocode "compiliert", welcher dann schön brav immer durchlaufen wird. Mit diesem Ansatz waren die Möglichkeiten der Blinksequenzen verblüffend vielfältig.

Und wenn meine Kinder das programmieren konnten...

Schaut's Euch gerne mal an, und wenn's taugt ist's gut, und wenn nicht, dann auch :)

Cheers, Olli

Anhang anzeigen olliw-kinder.zip

EDIT: durch anpassen der .bat Datei lässt sich das Falshen natüprlich auch per USBLinker realisieren...
 

Zuse

Erfahrener Benutzer
Code:
    if(STICKPOS < STICK_LOW){      
              
    }else { if(STICKPOS < STICK_CENTER_LOW){      
    
    }else { if(STICKPOS < STICK_CENTER){                 
    
    }else { if(STICKPOS < STICK_CENTER_HIGH){                                               
    
    }else {

    }}}};
dieses construct meine ich, dass geht doch bestimmt auch schöner mit case oder?

happy landings,
skyfreak
so etwa?

Code:
 switch (STICKPOS) {
    case STICK_CENTER_LOW:
      //hier steht, was in diesem Fall (case) geschehen soll
      break;
    case STICK_CENTER:
      //und hier, was in diesem Fall geschehen soll
      break;
    case STICK_CENTER_HIGH
      // und hier, was nun passieren soll
  }
Manfred
 
FPV1

Banggood

Oben Unten