Tau Labs Software unterstützt vielfältige Hardware

cGiesen

Erfahrener Benutzer
@Ernieift
Du hast doch RGB LED auf I2C erweitert.
Kannst Du mir wohl so ein Chip fertig mache und schicken?
Ich habe total vergessen wie das ging. Und bis ich das Wissen wieder drauf habe :(
Scheiß älter werden ... (nee, aber der neue Job verlangt ebenfalls viel lernen zur Zeit ....)
 

ernieift

Erfahrener Benutzer
Hallo Carsten,
Ich hatte jetzt auch 14 Inbetriebnahme im Norden. Das reicht für den Jahresbeginn. Ich weiß wovon Du schreibst. Klar kann ich Dir nen Chip programmieren. Die Dinger müsste ich noch zu liegen haben. DIL oder TSOP?
 

lysie

Erfahrener Benutzer
Hey gibt es schon irgendwo ein PicoC Script für einen 5V buzzer?
Anschalten kann ich diesen inzwischen schon - habe einen der LED Ausgänge des Sparky2s als accessory belegt und einfach ein 100% PWM Signal ausgegeben. Wenn das nun noch zusätzlich Eventgesteuert passiert, wäre das ganz cool (low bat / flight mode change/failsafe event etc.).

Oder gibt es da vielleicht auch schon etwas ähnliches für LEDs? Könnte ich ja dann dementsprechend umschreiben.
 

ernieift

Erfahrener Benutzer
Ereignisgesteuert geht nicht. Einfach eine Endlosschleife mit delay() und die entsprechenden Sensoren (flightbatterystate.h) abfragen. Mit system.h kannst Du die Accessoires lesen und schreiben. Ist simpel. Wenn der delay auf >100ms gesetzt ist, merkst Du weder die Verzögerung noch hast Du eine merkliche CPU-Last.
Als Abbruchkriterium eignet sich der armed() Status gut. Wenn das Script nur mit "WhenArmed" gestartet wird, bist Du schon fertig.
 

lysie

Erfahrener Benutzer
Ahhh - jetzt hab ich mich 30 minuten lang geärgert warum mein Script nicht geht.. dabei musste ich erst den Accessory Kanal aus den MotorMixerSettings rausnehmen -.-

#include "system.h"

int main() {
sync(0);

for (int i = 0; i < 500; i++) {
PWMOutSet(6 , 2500);
sync(100);
PWMOutSet(6 , 0);
sync(1000);
}

return 0;
}

exit(main());
Zumindest piept es jetzt schon mal fröhlich vor sich hin :)
 

lysie

Erfahrener Benutzer
So hier mal mein Script für Spannungsüberwachung und Failsafe/Findme Buzzer.

Code:
#include "system.h"
#include "flightbatterystate.h"

TestValSet(1);

FlightBatteryStateData BatteryData;

unsigned long last;
unsigned long now;
short timeStarted=0;
short wasArmed=0;

int b_LOW[6] = {100,200,100,200,100,200};
int b_LOST[2] = {400,1000};


void beepX(unsigned int t[], unsigned int x)
{
  unsigned int  k;
  PWMOutSet(6, 0);
  for(k=0; k<x; ++k) {
    PWMOutSet(6, ((k&1)?0:2500));
    sync(t[k]);
    }
  PWMOutSet(6, 0);
}

void batterystatus()
{
	FlightBatteryStateGet(&BatteryData);
	now = time();
	if ((wasArmed==1) && (BatteryData.Voltage < 13.2) && (timeStarted == 0))
	{
		last = time();
		timeStarted = 1;
	}
	else if ((wasArmed==1) && (BatteryData.Voltage < 13.2) && (timeStarted == 1) && ((now-last) > 5000))
	{
		beepX(b_LOW,6);		
		timeStarted = 0;
		printf("Value: %d \n", now-last);
	}
}

int findME()
{
	if (AccessoryValGet(0) > 0)
	{
		beepX(b_LOST,2);
		return 1;
	}
	else if ((wasArmed==1) && (TxChannelValGet(3) > 60000))
	{
		beepX(b_LOST,2);
		return 1;
	}
	return 0;
}


int main() 
{
	sync(0);

	while (TestValGet() > 0) 
	{
		if (armed())
		{
			wasArmed=1;
		}
		
		
		if (findME() != 1)
		{
			batterystatus();						
		}
		
		sync(150);
	}

	return 11;
}

exit(main());
Macht erstmal alles was ich momentan brauche.
Gibts Optimierungsbedarf? Kritik? :cool:
 

ernieift

Erfahrener Benutzer
Hallo lysie,
erstmal schönes Script, endlich mal wieder was neues. Da Du schon nach Optimierungen fragst, würde ich statt sync() besser delay() verwenden. Die Funktion sync() ist für zeitkritische Sachen wie PID gedacht und funktioniert unabhängig von delay(). Mit sync() kann man z.B. die Periode einer Regelschleife synchronisieren unbeeinflusst von Rechenverzögerungen durch Verzweigungen oder eingefügte delay(). Wenn Du das Script etwas kürzen willst, dann versuch doch mal folgendes...
Code:
(wasArmed==1)    <> (wasArmed)
(timeStarted==0) <> (not timeStarted)
...zu ersetzen, und ...
Code:
if (armed())
{
	wasArmed=1;
}
...müsste auch kürzer mit...
Code:
wasArmed |= armed();
...gehen. Habe ich nicht getestet, sollte aber funktionieren. Trotzdem schönes Script und viele Wege führen zum Ziel. Wo ich gerade den printf() sehe. Ich hatte mal vor, eine Art Terminalemulation in die GCS einzubauen. Dann könnte das Script via Telemetrie in die GCS schreiben. Der Datendurchsatz wäre nicht besonders hoch und ein Handshake wäre auch eher hinderlich, für ein paar Statusmeldungen jedoch durchaus sinnvoll.
 

lysie

Erfahrener Benutzer
Oh ja - das printf ist noch ein überbleibsel vom debuggen. Ganz übersehen ;)

Habe es inziwschen auch erweitert um auch zwischen 3s und 4s Lipos zu unterscheiden. Ich setzte die Alaramschwelle aber trotzdem immer relativ niedrig da ich sowieso nur mit OSD fliege.

Momentan schlage ich mich aber eh noch mit Autotune rum.. bei 3s Lipos funktioniert das wunderbar.. nur bei 4S produziert es oft unsinnige und meist viel zu hohe Werte :(
 
Zuletzt bearbeitet:

odwquad

Erfahrener Benutzer
Gibt es eigentlich irgendwo das taulink Modul fertig zu kaufen? Hab nur die Platine gefunden.
Oder kann man sich auch anders mit dem sparky 2.0 Telemetrie Modul verbinden? Hab zB noch ein 433Mhz Modul daheim...

Will Telemetrie Daten mit meinem Smartphone und der taulabs APP austauschen

Gesendet von meinem Lenovo K50-t5 mit Tapatalk
 

odwquad

Erfahrener Benutzer
Okay danke. Dann werde ich mir das auch mal bestellen :)

Gesendet von meinem Lenovo K50-t5 mit Tapatalk
 

odwquad

Erfahrener Benutzer
Ich noch nicht xd
Beschäftige mich aber zur Zeit wenig mit copter.
Mit meinem cinestar und der defekten Quanton läuft momentan gar nix.
Mein racing quad mit sparky 2 fliegt mittlerweile einigermaßen.
Hier fehlt gutes Wetter für pid Einstellungen
Ansonsten wenig Zeit momentan für das hobby :-(
Aber wirklich wenig los. Auch im taulabs forum hab ich so das Gefühl...

Gesendet von meinem Lenovo K50-t5 mit Tapatalk
 
Hallo Carsten und die Anderen
Ich fliege derzeit ohne FC - überwiegend Nuri´s und Doppeldecker.
Seit vor ca einem Jahr der zweite Kiss ESC sich bei einer Sicherheitslandung im halb Meter hohem Maisfeld mit Abbrand und Verbrennen eines Kopterarms verabschiedet hat, bin ich noch dreimal Kopter geflogen.
Die als Ersatz vorgesehenen hatten eine fehlerhafte Charge und dann habe ich gerade mal meinen Lieblingskopter noch mit einem Satz neuen ESC´s ausgerüstet. Jetzt sind sie alle hochkant im Regal geparkt.
Allein vier noch ohne ESC´s und ich genieße es mit Flächen ohne PID´s und sonstigem meine Nuri´s durch die Luft zu scheuchen. Und seit Sonntag sogar noch ohne Motor nach 35 Jahren wieder mal am Hang.

Aber das TauLab Projekt scheint seine wichtigsten Protagonisten verloren zu haben bzw wird sich mit Namesänderungen, Logos oder Leitungsfragen verzettelt. OP hat sich gleich ganz zerlegt. Es ist schade drum.

Und bei der derzeitigen Dronendiskussion und dem Fehlverhalten einiger fliegt es sich entspannter mit Flächen in der Öffentlichkeit. Und beim Thermik oder Hangfliegen Besuch gefiederter Kollegen zu bekommen die mit dir kreisen oder am Hang stehen ist mir beim Kopter fliegen seltenst passiert:)
 
FPV1

Banggood

Oben Unten