Brushless ESC als RC (Licht)schalter

#82
Der Meister wieder......sehr nice. Wie schwer wäre denn eine Portierung auf andere ESCs, wie zb die HK-HW20A oder die HK F-20A? Davon hätt ich noch viele rumzuliegen, will mir nicht extra son 6A ESC kaufen.

Also anders gefragt, was müsste ein ESC haben, damit es mit "eurem" Code rennt?
 

meister

Erfahrener Benutzer
#83
Ich bräuchte dazu die Pin-Belegung von den Reglern:

Code:
#define AUSGANG_A_DDR		DDRD
#define AUSGANG_A_PORT		PORTD
#define AUSGANG_A_PIN		PD3

#define AUSGANG_B_DDR		DDRD
#define AUSGANG_B_PORT		PORTD
#define AUSGANG_B_PIN		PD4

#define AUSGANG_C_DDR		DDRD
#define AUSGANG_C_PORT		PORTD
#define AUSGANG_C_PIN		PD5
plus den Input-Pin (Servo-Pulse)

Das würde reichen.

Im Moment muss ich noch die Licht-Pattern vom Editor per hand in den Code kopieren,
will es aber so bauen das der Editor solbstständig den Code schreibt, kompiliert (per avr-gcc) und übertragen (mit avrdude) kann.
In wie weit das alles unter Windows dann funktioniert kann ich aber nicht sagen, da ich 'nur' Linux nutze, aber eine Portierung sollte recht einfach möglich sein, aktueller stand sollte sogar funktionieren wenn TCL/TK installiert ist.

Gruß,
Olli
 
#84
Die Pinbelegungen finden sich alle in den Sourcen der SimonK Firmware, evtl könnte man auch direkt deren defines reinnehmen.

@Meister: Sehr schön und dann noch unter Linux ;-)
Da lässt sich das ganze ja sehr schön Scripten. avr-gcc Aufruf und AVRDude gehen da ja recht gut. Das ganze unter den diversen Windosen und so wird dann echt Brrrrr.
 

lazyzero

... zu viel geflashdingst
#85
Im Moment muss ich noch die Licht-Pattern vom Editor per hand in den Code kopieren,
will es aber so bauen das der Editor solbstständig den Code schreibt, kompiliert (per avr-gcc) und übertragen (mit avrdude) kann.
In wie weit das alles unter Windows dann funktioniert kann ich aber nicht sagen, da ich 'nur' Linux nutze, aber eine Portierung sollte recht einfach möglich sein, aktueller stand sollte sogar funktionieren wenn TCL/TK installiert ist.
Wie wär es damit wenn ich den pattern-editor mit ins flashtool nehme, und das ganze im eeprom gespeichert wird.
 

meister

Erfahrener Benutzer
#86
Wie wär es damit wenn ich den pattern-editor mit ins flashtool nehme, und das ganze im eeprom gespeichert wird.
Der Code ist GPL3, also ihr könnt machen was ihr wollt damit, allerdings ist dein Flashtool in Java geschrieben und der Pattern-Editor in TCL/TK,
das würde irgendwie nicht ganz passen, bzw würde man mehr abhängigkeiten benötigen.
 

meister

Erfahrener Benutzer
#90
Klar kann ich umbauen, im moment sind nur 4 Bytes im eeprom für das Runtime-Setup belegt.

Kann mir vielleicht jemand weiterhelfen mit den SimonK sources, welches TARGET nimmt man denn für einen HK F-20A Regler, dann kann ich mir dort die Belegung raus suchen:

ALL_TARGETS = afro.hex afro2.hex birdie70a.hex bs_nfet.hex bs.hex bs40a.hex dlu40a.hex hk200a.hex kda.hex rb50a.hex rb70a.hex rct50a.hex tp.hex tp_8khz.hex tp_i2c.hex tp_nfet.hex tp70a.hex tgy6a.hex tgy.hex

EDIT: habs gefunden: bs_nfet.hex
Allerdings komm ich mit dem ASM Code nicht ganz klar :eek:

EDITT2: ok, habs glaube ich gerafft :)

Danke,
Olli
 
Zuletzt bearbeitet:

meister

Erfahrener Benutzer
#91
Hab mal ein kleines Shell-Script gebastelt: http://www.multixmedia.org/test/BL-Lights/get_ports.sh

so ist es einfacher die Pins raus zu suchen :)
Code:
/usr/src/Copter/SimonK# sh get_ports.sh bs_nfet.inc 

/* For HK Blue Series with only n-Channel FETs */

#define F_CPU	16000000
#define AUSGANG_A_DDR	DDRD
#define AUSGANG_A_PORT	PORTD
#define AUSGANG_A_PIN	PD5

#define AUSGANG_B_DDR	DDRC
#define AUSGANG_B_PORT	PORTC
#define AUSGANG_B_PIN	PC4

#define AUSGANG_C_DDR	DDRB
#define AUSGANG_C_PORT	PORTB
#define AUSGANG_C_PIN	PB0
 

meister

Erfahrener Benutzer
#93
puhh, Runtime-Setup erweitert:


Bedien-Konzept #1: 3 Schalter-Stellungen == 3 Licht-Muster
Bedien-Konzept #2: 2 Taster, einer als An/Aus, der andere zur auswahl des Musters

Enter Setup:

Schalter schnell hin und her wackeln: Alle LED's gehen zur Bestätigung 2s lang an


Setup:

Nun kann man mit dem Schalter in die eine Richtung die 3 Modes durchschalten (Pulse < 1.25ms): Mode wird per LED angezeigt (MODE1 == LED1 an, ...), nach 1s fängt das aktuell eingestellte Licht-Muster an zu laufen

Mit dem Schalter in die andere Richtung kann man für den gewählten Mode das Licht-Muster bestimmen (Pulse > 1.75ms): LED's blinken im gewählten Licht-Muster

Will man das Setup verlassen, hält man den Schalter 2s lang in die eine Richtung (Pulse < 1.25ms): alle LED's läuchten zur Bestätigung für 1s auf (Bedien-Konzept #1 ist aktiviert)

Hält man den Schalter 2s lang in die andere Richtung (Pulse > 1.75ms): schaltet die Software in Bedien-Konzept #2 um



Hoffe es ist relativ verständlich, Doku's liegen mir nicht so :)

Gruß,
Olli


PS: Port-Definitionen liegen nun in einem extra Header-File, die Pattern muss ich aber noch in das eeprom umbauen, bin mir noch nicht sicher wie viele Pattern man insgesamt möchte und vor allem wie lang diese maximal sein sollen ????
 

meister

Erfahrener Benutzer
#95
@ meister

Dein Programm läuft nur auf Linux?

Brauch man da ein spezielles?
Der Pattern-Editor ist ein TCL-Programm, den Interpreter dafür gibt es für fast alle Betriebs-Systeme: http://www.tcl.tk/software/tcltk/platforms.html

Die Firmware ist mit avr-gcc gebaut, das sollte also auch fast überall übersetzbar sein, maximal ein paar Pfade im Makefile könnten angepasst werden müssen.


Gruß,
Olli

PS: bin am überlegen ob ich den Pattern-Editor als Java-Script Version im Browser nochmal baue !?!?!
 

meister

Erfahrener Benutzer
#99
Nun reicht es erstmal, die Javascript seite funktioniert nun richtig, hatte anfangs probleme mit dem nachladen der Preview-Bilder.

EDIT: wer Bilder von seinem eigenen Copter drin haben möchte muss 8 Fotos machen (am besten mit Stativ),
eins für jeden Zustand (LED's aus, LED1 an, LED2 an, LED1&2 an, LED3 an, LED3&1 an, LED3&2 an, LED1&2&3 an), würde mich freuen wenn ich noch ein paar Bilder einbauen dürfte.

 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten