Hast du dir das Demo-Video in der TriGUI angesehen? Da ist das ganz gut beschrieben. Irgendwo hab ich auch den Kommentar gelesen, die beiden Pins (nicht GND) zu vertauschen falls das Programm nicht geflasht werden kann.
Druckbare Version
Hast du dir das Demo-Video in der TriGUI angesehen? Da ist das ganz gut beschrieben. Irgendwo hab ich auch den Kommentar gelesen, die beiden Pins (nicht GND) zu vertauschen falls das Programm nicht geflasht werden kann.
Hallo vielen Dank für die Antworten.
Ich habe es heute einfach noch mal probiert, da hat es auf Anhieb funktioniert. War wohl gestern doch etwas spät :-o
Gruß Ingo
EDIT:
Für alle die evtl. mal ein ähnliches Problem haben und ein Arduino Pro mini
(m328p, 5V 16 MHz) oder ähnliches mit AVRDUDE über einen USB <-> TTL RS232 Adapter
brennen möchten. Mit diesen Einstellungen hat es bei mir funktioniert. Denn Comport müsst Ihr anpassen ;-)
avrdude -e -p m328p -c stk500v1 -P com6 -b57600 -U flash:w:dein_programm.hex
Ich kenne das.
Als ich meine DLX programmiert habe hing ich den ganzen (späten) Abend fest weil sich die DLX nicht initialisieren wollte (weil der Gashebel nicht auf Null stand. Nur konnte ich Ihn nicht weiter runter bringen). Frustriert ins Bett gegangen und am nächsten Tag klappte alles auf Anhieb :D
Hi,
habe gestern die ersten erfolgreichen GPS Position-hold Flüge gemacht. Geht schon gut, aber da muss auch noch einiges verbessert werden. Details (mit Video):
http://shrediquette.blogspot.com/201...tion-hold.html
Hallo,
ja die GPS geschichte ist schon sehr faszinierend! war aber auch ein wenig langweilig gestern *hehe*
mag sich evtl jemand über mein layout hermachen? ich komme da noch net soo klar mit eagle und mir fehlt momentan die nötige motivation dafür!
die platine soll natürlich einseitig! um die bohrungen sollte noch genügend platz für muttern sein! und die pinleisten UART, RECIEVER, BATTERY und 5VCC dürfen nicht anders platziert werden!
dann wäre es schon noch einen reset taster mit rauf zu bringen.
und dann natürlich die bereits angesprochenen einwände beachten.
Grüße, Sven
*ooooohhhhhh* *aaaaaaaahhhhhhh*
*Geld zur Seite leg*
[Ironie]Mein Stalkerbot nimmt langsam Gestalt an. Jetzt noch ein paar Ultraschallsensoren um den Abstand zur Hauswand zu halten :D[/Ironie]
Glückwunsch zu dem gelungenen Erstflug. Ich verneige mich vor Neid und Anerkennung. *verneig*
Ich habs satt auf meine Props aus dem Problemshop zu warten und hab über Google www.gwsprops.com gefunden. Auf Anfrage haben die mir gesagt das ein ordentlicher Lagerbestand vorhanden ist. Laut E-Mail liegt Versand bei 18$. Ist zwar nicht wenig aber ich dachte ich frag mal ob jemand bei der Bestellung mit einsteigen würde. Überlegt euch das bis Sonntag. Bei Interesse PM an mich (will hier nicht vom eigentlichen Thema ablenken) Montag geht meine Bestellung raus. Man muss auch mal was riskieren :D
DLX-Clone
Bild hier
Ein Danke an Willa für die tolle Anleitung, Quellcode, GUI etc. [schild=4 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]DANKE[/schild]
Daten:
Name: SKopterOne
Controller: TriGUIDE mini v2, Atmega328p @ 16 MHz, 5V
Sensoren: 3*ADXRS610, 1*ADXL322
Receiver: FlySky-Satellit + FlySky2PPM(Vorlage und QC auf qc-copter.de)
ESC:Hobbyking SS-Series 15-18A, auf I2C umgebaut
Motoren: FC28-22 1200kV
Servo: Bluebird BMS-371S
Props: GWS 3Blatt 8x4
Batterie: Rhino 3s, 2250 mAh
Rahmen: GFK/Pappe Sandwich, Alurohr 10x10mm
Serieller Anschluss: FTDI-USB Adapter von Watterrot
Achsabstand zur Mitte: 22cm
Gewicht: etwa 650g
Ich bin gestern die ersten Akkuladungen geflogen und restlos begeistert. \:D/
Mein erster Copter war mit nem Walkera Ufo4 Board (Murata Gyros) und nur schwer fliegbar.
Aber dieser ist sehr präzise zu fliegen auch für mich als Anfänger, sowohl im Acro als auch im HoverMode.
Ich habe die Default-Regelparameter von Willa drauf und nicht verändert! Lediglich die Steuerausschläge meiner Funke musste ich in der Funke korrigieren, um die Mittelstellungen korrekt hinzubekommen. Die maximalen Ausschläge in der GUI werden von meiner Funke(bereits auf maximale Ausschläge eingestellt) nur zu 80% erreicht, aber das scheint zu reichen.
MfG Sven
Hallo Sven,
interessanter Nachbau :-D Um die Flugleistungen (bzw. die Güte der Regelung) zu verbessern würde ich statt den dreiblatt props die Maxxprodd 8x4.5" Zweiblatt verwenden. Das macht nochmal einen Unterschied. Danke auch für die Spende :-D
@ssellere
Hallo Seellere das sind sehr schöne Bilder.
Kannst du zu dem Umbau der Regler ein paar Tipps geben (Bilder, Link für Umbau)?
Da Du ja so von den Flugeigenschaften so schwärmst, machst Du mir auch
Mut, das ich den Copter nicht gleich ind den Erdboden ramme. :cry:
Hast du schon Flugerfahrung oder bist Du auch Neueinsteiger?
@Willa
Hallo Willa,Zitat:
Zitat von Willa
wie genau macht sich der Unterschied zwischen den 3 Blatt und den 2 Blatt
bemerkbar?
Erzeugen die Dreiblatt Props zu viel Schub? Wenn dem so ist, könnte man dann
nicht mit einer niedrigeren Drehzahl und damit länger fliegen?
Gruß Ingo
@Ingo, Dreiblattprops sind generell immer aerodynamisch ungünstiger. Die props haben einfach zu viel Massenträgheit, d.h. der Motor kann nicht so schnell die Drehzahl ändern wie er soll.
@Wila,
danke für die Erläuterung :idea:
Gruß Ingo
hab mich jezt doch entschieden meinen DLX wieder aufzubauen ......
wie schauts den eig aus mit der quadrokopter software ??
So heute habe ich bei Martin die Platine geätzt.
Jetzt noch fertig bohren und dann kann gelötet werden.
Ich habe aber noch eine Frage. Ich habe einen Graupner C-16 Empfänger
und möchte das Summensignal vom 4017 IC abgreifen.
Auf dieser Seite http://www.flyheli.de/flugsim/simrx.htm steht,
Muss für den Tricopter das Signal auch umgedreht werden, wie auf der Seite beschrieben? :-sZitat:
Er bekommt an seinem Clock-Eingang, Pin 14, das PPM Signal. An
seinen Ausgängen Q0 bis Q9 sind dann die Servos angeschlossen. Für den
Anschluss des Simulator-Interfaces benötigen wir also das PPM Signal auf Pin
14. Leider ist das PPM Signal an diesem Anschluss invertiert, also + und - ist
verdreht.
Gruß Ingo
@ Willa: wer sich so viel Mühe gibt und Arbeit in ein Projekt steckt und es dann allen zur Verfügung stellt, hat definitiv ne Spende verdient.
Werd das mit den 2-Blatt Probs mal ausprobieren. Gibts die nur bei cnc-modelsport?
@Scotch: Danke für die Blumen. Hier nen Link zum Umbau der Regler auf I2C
von B.Konze
Meine Regler sind von Hobbyking SS-Series 15-18A. Und sehen genauso aus wie der Typ 17a unter dem obigen Link, bis auf den fehlenden Jumper.
Software ist dann die 17a410_i2c_r08.
Aber wenn ichs mir genau überlege, war der Umbau schon ein bischen Frickelei. Eventuell würd ich bei den nächsten Reglern Willas "PPM zu I2C Umsetzer" verwenden. So kann man jeden Regler verwenden und sollte mal einer abrauchen, kann man die Umsetzer Platine weiter verwenden.
Meine Flugerfahrungen bei Koptern beschränken sich auf einen kleinen Coax-Heli und meinen selbstgebauten Quadrocopter, welcher nur nen Acromode hatte und mit der Walkera-Ufo4 Platine unterwegs war. Er flog, aber nicht besonders ruhig. Hatte öfters mal starke Zuckungen.
Der Tricopter dagegen liegt wie ein Brett in der Luft, da zuckt nix. Der Acromode erfordert sicherlich etwas Übung, im HoverMode würd ich mal behaupten, kann jeder sofort abheben. Am besten bei Windstille und viel Platz probieren und wie in Willas Anleitung vorgehen.
Um die ersten Flugerfahrungen zu sammeln und nicht jedesmal die Probs zu verlieren, kann ich nur jedem empfehlen, die Ausleger mit Carbonrohren zu verlängern und den Kopter von unten zu polstern. Sieht zwar sch... aus, aber es hilft ungemein bei unsanften Landungen.
Sogar senkrecht landen geht damit ;O) Bild hier
MfG Sven
Das gelbe Dingen links im Hintergrund ist das Fahrgestell der manntragenden Version der Shrediquette? ;-)
SCNR, soll nicht wieder vorkommen...
Meine Aktivitäten in Sachen "einseitige Platine für dir TriGuide_SMD" liegen wegen privater Zeitengpässe momentan auf Eis, Entschuldigung dafür. Ich melde mich, wenn ich weiter gekommen bin oder aufgegeben habe (die Platine zu verkleinern, nicht, einen TriCopter zu bauen!).
Senkrecht landen.... Okeeee :D Aber aus der Position senkrecht zu starten wird eine Herausforderung. ^^
Hallo Willa,
ich habe mir gerade mal dein Video http://www.vimeo.com/6766174
angesehen ... super ... mein Respekt
Gruss Ralf
Hi Willa,Zitat:
Zitat von Willa
ich hab mal auf die Schnelle :-b eine Version mit Schaltregler zusammen geschustert. Mein erster Tipp (irgendwo um den 14.08. rum?), dass die benötigte Grundfläche größer als für die zwei Linearregler wäre, hat sich als falsch erwiesen. Die Spule und der Siebelko nehmen zwar heftig Platz weg, die Fläche bleibt aber sehr ähnlich.
Pekuniär liegt die HighTech-Variante natürlich deutlich ungünstiger als zwei 7805, aber das dürfte jedem klar gewesen sein, nur der Gesamtwirkungsgrad sollte besser sein.
Hast du Werte für den Strombedarf der einzelnen Schaltungsteile?
Der StepDown-Regler kann 1A liefern, der nachgeschaltete LDO Linearregler von Zetex nur 300 mA an 5V. Damit muss dann der IMU-Würfel und der Atmel auskommen... Sollte mehr Saft notwendig sein, wirds platztechnisch wahrscheinlich knapp, soll die Platine nicht größer werden als dein Original-Entwurf des TriGuide. (Immer vorausgesetzt, es werden Teile verwendet, die bei Reichelt zu bekommen sind, was ich mir als Maxime gesetzt habe).
Hallo an alle,
ich habe heute endlich meine GWS 5x3 bekommen! Nicht die von CNC sondern von gwsprops.com!
Vier komplette Sätze haben mich dort inkl. Versand 30€ gekostet (Versand 13€) Gleich geht die Conradbestellung über passende Mitnehmer und ne Propellerwaage raus und dann steht dem Erstflug nächste Woche nichts mehr im Wege!!
Ich bin ja so aufgereg :D
Ich habe heute meine neuen servos bekommen! die werde ich glaich umbauen und dann wird gefliegt :D
Hallo,
ich habe momentan keine Funke, und versuche trotzdem die Schaltung zu testen.
Ich habe die "Mini" version der Platine, mit den I2C->PWM convertern von Willi. Als ESC habe ich die Hobbyking SS Series 18-20A ESC (card programmable) http://www.hobbyking.com/hobbyking/s...idProduct=6548
Ich habe also den I2C->PWM converter an die Platine, und an den ESC angeschlossen, und den ESC an den Motor. Nun versuche ich mit I2C comandos den Motor anzusteuern, klappt aber nicht.
Die Ansteuerung mache ich mit einem kleinen Program, das ich über die Serielle schnittstelle mit den Komandos versorge z.B. ML=80 (soll den Wert 80 zum linken Motor senden. Unden habe ich den Code angführt.
Hat jemand Erfahrung mit den ESC, und/oder ein Beispielprogram wie ich die motor ansteuerung testen kann. Ich habe leider kein Oszi, und kann mir darum die signale nicht anschauen.
Danke Gerald
Code:/*
* main.cpp
*
* Created on: Oct 5, 2010
* Author: geraldf
*/
#include <WProgram.h>
#include <Wire.h>
#include "SoftI2CMaster.h"
//--I2C--
const byte M_h = 0x52; //i2c address: motor at the back
const byte M_l = 0x54; //i2c address: motor at the left
const byte M_r = 0x56; //i2c address: motor at the right
const byte sdaPin = 4;
const byte sclPin = 5;
// LED Pins
int BackLED = 7;
int RightLED = 8;
int LeftLED = 9;
int ParseCommand(char *);
void I2CSend( int, int);
int BlinkLED(int );
extern "C" void __cxa_pure_virtual() {
}
int ledPin = 13; // LED connected to digital pin 13
int i = 0;
char str[255];
int inp;
char str1[] = "Test1";
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
pinMode (BackLED, OUTPUT);
pinMode (LeftLED, OUTPUT);
pinMode (RightLED, OUTPUT);
Serial.begin(9600);
Wire.begin();
Serial.println("Hello Master, I am online and waiting for your commands!");
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop() {
if (Serial.available() > 0 && i < 255) {
// read the incoming byte:
inp = Serial.read();
//digitalWrite(ledPin, HIGH); // set the LED on
//delay(500L); // wait for a second
//digitalWrite(ledPin, LOW); // set the LED off
//delay(500L); // wait for a second
// say what you got:
//Serial.print("I received: ");
//Serial.println(inp);
if (inp != 10) {
str[i++] = inp;
} else {
str[i] = '\0';
i = 0;
Serial.print("I received: ");
Serial.println(str);
if (ParseCommand(str) > 0) {
Serial.println("Invalid Command!");
}
}
}
}
int main(void) {
/* Must call init for arduino to work properly */
init();
setup();
for (;;) {
loop();
} // end for
} // end main
int ParseCommand(char* s) {
char cmd[255];
strcpy(cmd, s);
cmd[3] = '\0'; // command only (ML=, MR= or MH=)
if (strcmp(cmd, "ML=") == 0 || strcmp(cmd, "MR=") == 0
|| strcmp(cmd, "MH=") == 0) {
Serial.print("command ");
Serial.print(cmd);
Serial.println(" found!");
//parsing value now
int value = 0;
char v[5];
strcpy(v, s + 3);
Serial.print("value = ");
value = atoi(v);
Serial.println(value);
switch (cmd[1])
{
case 'H':
BlinkLED(1);
I2CSend(M_h,value);
break;
case 'L':
BlinkLED(2);
I2CSend(M_l,value);
break;
case 'R':
BlinkLED(4);
I2CSend(M_r,value);
break;
}
return (0);
}
else if (strcmp(s,"stop")== 0)
{
Serial.println("All Motors will stop!");
I2CSend(M_h,0);
I2CSend(M_l,0);
I2CSend(M_r,0);
BlinkLED(7);
return 0;
}
else
{
return (1);
}
return (0);
}
void I2CSend( int adr, int cmd)
{
// Wire.beginTransmission (adr);
// Wire.send(cmd);
// Wire.endTransmission();
SoftI2CMaster i2c = SoftI2CMaster( sdaPin,sclPin );
i2c.beginTransmission(adr);
i2c.send(cmd);
i2c.endTransmission();
}
int BlinkLED(int LED)
{
switch(LED)
{
case 1:
digitalWrite(BackLED, HIGH); // set the LED on
delay(100L);
break;
case 2:
digitalWrite(LeftLED, HIGH); // set the LED on
delay(100L);
break;
case 4:
digitalWrite(RightLED, HIGH); // set the LED on
delay(100L);
break;
case 3:
digitalWrite(BackLED, HIGH); // set the LED on
digitalWrite(LeftLED, HIGH); // set the LED on
delay(100L);
break;
case 7:
digitalWrite(BackLED, HIGH); // set the LED on
digitalWrite(LeftLED, HIGH); // set the LED on
digitalWrite(RightLED, HIGH); // set the LED on
delay(100L);
break;
}
digitalWrite(BackLED, LOW); // set the LED on
digitalWrite(LeftLED, LOW); // set the LED on
digitalWrite(RightLED, LOW); // set the LED on
return 0;
}
Hallo,
ich habe momentan keine Funke, und versuche trotzdem die Schaltung zu testen.
Ich habe die "Mini" version der Platine, mit den I2C->PWM convertern von Willi. Als ESC habe ich die Hobbyking SS Series 18-20A ESC (card programmable) http://www.hobbyking.com/hobbyking/s...idProduct=6548
Ich habe also den I2C->PWM converter an die Platine, und an den ESC angeschlossen, und den ESC an den Motor. Nun versuche ich mit I2C comandos den Motor anzusteuern, klappt aber nicht.
Die Ansteuerung mache ich mit einem kleinen Program, das ich über die Serielle schnittstelle mit den Komandos versorge z.B. ML=80 (soll den Wert 80 zum linken Motor senden. Unden habe ich den Code angführt.
Hat jemand Erfahrung mit den ESC, und/oder ein Beispielprogram wie ich die motor ansteuerung testen kann. Ich habe leider kein Oszi, und kann mir darum die signale nicht anschauen.
Danke Gerald
Code:/*
* main.cpp
*
* Created on: Oct 5, 2010
* Author: geraldf
*/
#include <WProgram.h>
#include <Wire.h>
#include "SoftI2CMaster.h"
//--I2C--
const byte M_h = 0x52; //i2c address: motor at the back
const byte M_l = 0x54; //i2c address: motor at the left
const byte M_r = 0x56; //i2c address: motor at the right
const byte sdaPin = 4;
const byte sclPin = 5;
// LED Pins
int BackLED = 7;
int RightLED = 8;
int LeftLED = 9;
int ParseCommand(char *);
void I2CSend( int, int);
int BlinkLED(int );
extern "C" void __cxa_pure_virtual() {
}
int ledPin = 13; // LED connected to digital pin 13
int i = 0;
char str[255];
int inp;
char str1[] = "Test1";
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
pinMode (BackLED, OUTPUT);
pinMode (LeftLED, OUTPUT);
pinMode (RightLED, OUTPUT);
Serial.begin(9600);
Wire.begin();
Serial.println("Hello Master, I am online and waiting for your commands!");
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop() {
if (Serial.available() > 0 && i < 255) {
// read the incoming byte:
inp = Serial.read();
//digitalWrite(ledPin, HIGH); // set the LED on
//delay(500L); // wait for a second
//digitalWrite(ledPin, LOW); // set the LED off
//delay(500L); // wait for a second
// say what you got:
//Serial.print("I received: ");
//Serial.println(inp);
if (inp != 10) {
str[i++] = inp;
} else {
str[i] = '\0';
i = 0;
Serial.print("I received: ");
Serial.println(str);
if (ParseCommand(str) > 0) {
Serial.println("Invalid Command!");
}
}
}
}
int main(void) {
/* Must call init for arduino to work properly */
init();
setup();
for (;;) {
loop();
} // end for
} // end main
int ParseCommand(char* s) {
char cmd[255];
strcpy(cmd, s);
cmd[3] = '\0'; // command only (ML=, MR= or MH=)
if (strcmp(cmd, "ML=") == 0 || strcmp(cmd, "MR=") == 0
|| strcmp(cmd, "MH=") == 0) {
Serial.print("command ");
Serial.print(cmd);
Serial.println(" found!");
//parsing value now
int value = 0;
char v[5];
strcpy(v, s + 3);
Serial.print("value = ");
value = atoi(v);
Serial.println(value);
switch (cmd[1])
{
case 'H':
BlinkLED(1);
I2CSend(M_h,value);
break;
case 'L':
BlinkLED(2);
I2CSend(M_l,value);
break;
case 'R':
BlinkLED(4);
I2CSend(M_r,value);
break;
}
return (0);
}
else if (strcmp(s,"stop")== 0)
{
Serial.println("All Motors will stop!");
I2CSend(M_h,0);
I2CSend(M_l,0);
I2CSend(M_r,0);
BlinkLED(7);
return 0;
}
else
{
return (1);
}
return (0);
}
void I2CSend( int adr, int cmd)
{
// Wire.beginTransmission (adr);
// Wire.send(cmd);
// Wire.endTransmission();
SoftI2CMaster i2c = SoftI2CMaster( sdaPin,sclPin );
i2c.beginTransmission(adr);
i2c.send(cmd);
i2c.endTransmission();
}
int BlinkLED(int LED)
{
switch(LED)
{
case 1:
digitalWrite(BackLED, HIGH); // set the LED on
delay(100L);
break;
case 2:
digitalWrite(LeftLED, HIGH); // set the LED on
delay(100L);
break;
case 4:
digitalWrite(RightLED, HIGH); // set the LED on
delay(100L);
break;
case 3:
digitalWrite(BackLED, HIGH); // set the LED on
digitalWrite(LeftLED, HIGH); // set the LED on
delay(100L);
break;
case 7:
digitalWrite(BackLED, HIGH); // set the LED on
digitalWrite(LeftLED, HIGH); // set the LED on
digitalWrite(RightLED, HIGH); // set the LED on
delay(100L);
break;
}
digitalWrite(BackLED, LOW); // set the LED on
digitalWrite(LeftLED, LOW); // set the LED on
digitalWrite(RightLED, LOW); // set the LED on
return 0;
}
Ich hab jetzt ein kleines Programm mit Bascom geschrieben, das den Konverter testet. Ez steuert jeden Motor einzeln hoch, indem es den Motorwert von 0 bis 130 alle 100ms um 1 erhöht, und zwar erst den Linke, dann den rechten und zum Schluss den hinteren Motor. Als Anzeige wird für jeden Motor eine LED angesteuert. Da bei mir die Motoren erst bei einm Wert ab 50 reagieren muss man ein wenig Gedult haben, bis der erste Motor läuft.
Hier das Programm, und als Anhang auch das HEX file dazu.
Code:'===CHIP SETTINGS===
$regfile = "m328pdef.dat"
$framesize = 64
$swstack = 64
$hwstack = 64
$crystal = 16000000
$baud = 38400
'===SERIAL IN SETTINGS===
Config Serialout = Buffered , Size = 254
Config Serialin = Buffered , Size = 254
'===ADC SETTINGS===
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'avcc reference @ arduino =5V
'===PORT SETTINGS===
Config Scl = Portd.5 'for ESCs
Config Sda = Portd.4 'for ESCs
Config Pind.6 = Output 'servo
Portd.6 = 0 'servo
Config Pind.7 = Output 'led 1
Config Pinb.0 = Output 'led 2
Config Pinb.1 = Output 'led 3
Config Pinb.5 = Output 'Arduino LED_grn
'===DECLARATIONS===
'--Global--
'--I2C--
Const M_h = &H52 'i2c address: motor at the back
Const M_l = &H54 'i2c address: motor at the left
Const M_r = &H56 'i2c address: motor at the right
Dim Ms_h_i As Integer 'contains motor nominal value as integer
Dim Ms_r_i As Integer 'contains motor nominal value as integer
Dim Ms_l_i As Integer 'contains motor nominal value as integer
Dim Ms_h As Word 'converts motor nominal value
Dim Ms_r As Word 'converts motor nominal value
Dim Ms_l As Word 'converts motor nominal value
Dim Currentmotor As Integer
'--Subs--
Declare Sub Send_mots 'check and reshape motor signals and send them via i2c
'--Alias's
Led_1 Alias Portd.7
Led_2 Alias Portb.0
Led_3 Alias Portb.1
Led_grn Alias Portb.5 'a green led on the arduino mini pro
'===START CONDITIONS===
Set Led_1 'light up led's after reset
Set Led_2
Set Led_3
'--Variables-- 'prepare some variables
'Clear Serialin
'Clear Serialout
'--Startup 2--
Waitms 100
Start Adc
I2cinit
Currentmotor = 1
Ms_h = 0 : I2csend M_h , Ms_h 'turn off the motors
Ms_r = 0 : I2csend M_r , Ms_r
Ms_l = 0 : I2csend M_l , Ms_l
Led_grn = 0
Waitms 100
Reset Led_1 'turn off led's
Reset Led_2
Reset Led_3
'==============MAIN LOOP========================================================
'All this does is calling subs in a loop all the time
Do
Send_mots
Loop
End
'===MOTORS I2C==================================================================
Sub Send_mots
If Ms_l > 130 Then
Ms_l = 0
Currentmotor = Currentmotor + 1
If Currentmotor > 3 Then
Currentmotor = 1
End If
End If
If Ms_r > 130 Then
Ms_r = 0
Currentmotor = Currentmotor + 1
If Currentmotor > 3 Then
Currentmotor = 1
End If
End If
If Ms_h > 130 Then
Ms_h = 0
Currentmotor = Currentmotor + 1
If Currentmotor > 3 Then
Currentmotor = 1
End If
End If
If Currentmotor = 1 Then
Ms_l = Ms_l + 1
Set Led_1
Reset Led_2
Reset Led_3
End If
If Currentmotor = 2 Then
Ms_r = Ms_r + 1
Reset Led_1
Set Led_2
Reset Led_3
End If
If Currentmotor = 3 Then
Ms_h = Ms_h + 1
Reset Led_1
Reset Led_2
Set Led_3
End If
I2csend M_h , Ms_h
I2csend M_r , Ms_r
I2csend M_l , Ms_l
Waitms 100
End Sub
Hi Gerald,
wenn deine Motoren erst ab 50 reagieren verschenkst du ziemlich viel auflösung. Du solltest deine Regler vorher manuell per Fernbedienung programmieren, so dass sie bei einer Puslänge von 990 µs fast anfangen zu laufen. Dadurch wird die ganze Regelung bessre.
Hallo Willa,
ich hab die HobbyKing ESC (http://www.hobbyking.com/hobbyking/s...idProduct=6548) und es scheint, das man die "start Pulslänge" nicht einstellen kann. :-(
Trotzdem Danke für den Tip :-)
So.
Ich habe meinen ersten UNFREIWILLIGEN Testflug hinter mir. Habe meine DLXm in der Hand gehalten, den Schalter auf Hover umgelegt, kurz zufrieden gegrinst und dann gings los: Die Mini reißt zwei Motoren voll auf und ich bin kurz erstaunt darüber wieviel Dampf die entwickeln. Im nächsten Augenblick liegt die Kleine mit den Props nach unten auf dem Boden und tänzelt wie verrückt.
Hab dann schnell den Akku abgezogen und den Schaden bilanziert:
Zwei defekte Rotoren und eine gebrochene Motorhalterung (an den Klebestellen auseinander gegangen sind aber noch im Rahmen ;)
Hab dann nochmal die TriGUI angeklemmt und festgestellt, dass ich Nick-und Rollsensor vertauscht hab. Warum mir das vorher noch nicht aufgefallen ist? Keine Ahnung. Die Vorfreude war wohl zu groß. Auch die ACC-Sensoren scheinen nicht richtig zu laufen. Also werd ich morgen den IMU demontieren müssen um der Sache mal auf den Grund zu gehen. Drückt die Daumen, dass nix teures kaputt ist ^^
Hmmm....
Weil mir dei Verkabelung am IMU eh nicht gefallen hat, hab ich hin komplett demontiert. Bei der Montage hab ich Heißkleber verwendet um die Platinen zu fixieren (mein Sekundenkleber war eingetrocknet und ich wollte den Cube unbedingt fertig machen). Das hat sich jetzt gerächt:
An einem Gyro ist mir ein Transistor abgerissen und unauffindbar verschwunden. Im Anhang hab ich den mal makiert. Ist das ein 22nF oder der 2,2nF? Und welche Bauform ist das? Dann kann ich mir vll nen Ersatz bei Reichelt holen.
Dann hab ich den ACC-Sensor mal allein angeschlossen weil der im montierten Zustand schon keine großen Ausschläge in der TriGUI gemeldet hat. Und das hat sich auch nicht geändert. Ist das normal, dass der ACC-Sensor die Gyros braucht um in der TriGUI sichtbare Ausschläge zu verursachen? Oder müsste der allein auch funktionieren?
Hi,
also der ACC müsste auch alleine funktionieren. Du könntest auch einfach mal mit nem Multimeter die Spannung am Ausgang messen um festzustellen ob der noch funktioniert. Was für ein Kondensator das ist weiß ich im Moment nicht, du müsstest feststellen an welchen Pins der angeschlossen ist. Dann kannst du im Datenblatt des Breakouboards nachschauen.
bauform sollte die 0805 sein.
zur not könntest du mal ein bild von oben amchen wo man das layout erkennen kenn dnan könnte man das nachfolzeihen wo der kondensator hingehört.
ich hab meinen tricopter gestern gegen ne wand geschreddert. man sollte auch keine neuen sachen ausprobieren wenn man nur 5x5 meter platz hat. naja zum glück ist nichts passiert.
Im Anhang ein Bild frontal von oben. Der verlorene Kondensator ist der oben rechts, über dem großen und unter dem Kreis. Das Bild kommt direkt von Sparkfun.
BTW: Ist euch aufgefallen wie günstig die Dinger dort sind? 25$/Stück sind bei 3 Stk. + 30$ Versand noch günstiger als bei Watterott. Falls noch jemand welche für nen IMU braucht: Ich wäre an einer Sammelbestellung interessiert ^^
Im Anhang ein Bild frontal von oben. Der verlorene Kondensator ist der oben rechts, über dem großen und unter dem Kreis. Das Bild kommt direkt von Sparkfun.
BTW: Ist euch aufgefallen wie günstig die Dinger dort sind? 25$/Stück sind bei 3 Stk. + 30$ Versand noch günstiger als bei Watterott. Falls noch jemand welche für nen IMU braucht: Ich wäre an einer Sammelbestellung interessiert ^^
Bild hier
Hey, das müsste dann der 22nF Kondensator sein. bauform 0805
bei der bestellung musst du aber beachten wnen das teil vom zoll abgefangen wird das bei einem warenwert zwischen 22 und 150euro nochmal 19% steuern erhoben werden. über 150euro kommen nochmal zollgebühren mit hinzu.
Hab mich bei Sparkfun gemeldet und mein Problem geschildert. Es ist wirklich ein 22nF-Kondensator. Nicht dass ich dir nicht vertrauen würde, aber sicher ist sicher. Und die Mail ging raus bevor du geantwortet hast :)
Was würde denn an Zollgebühr dazukommen. Ich hab mal was gelesen das es bei einem Warenwert <350€ mit 13,5% pauschal verzollt wird. Ist aber schon ein paar Tage her.
Wie sollte sich ein "gesunder" ACC-Sensor am Multimeter verhalten? Bin in der Hinsicht noch blutiger Anfänger :( Könnte zur Not morgen in der FH noch schnell ein Oszi anklemmen wenn ich damit bessere Ergebnisse erhalte.
Morgen...
also die zollgebühren belaufen sich glaube ich nochmal auf 19% kanns aber net mit sicherheit sagen aber das internet hilft da mit sicherheit weiter.
der ACC sollte an den ausgängen bei keiner gemessenen beschleunigung einen spannung von ca 2,5V haben.
wenn du den sensor dann so dreht das er die erdanziehung von 1G misst sollte dich das ganze verschieben je nachdem in welche richtung du den sensor kippst. geschätzter wert dann so bei 3,75V bzw 1,25V
Alles klar. Werde den Sensor heut nachmittag mal durchmessen. Und wegen dem Zoll mach ich mich mal schlau....
Danke für die schnelle Hilfe!
Hallo, ich habe ein kleines Problem mit dem Servo. Shrediquette ist jetzt bestückt, und beim ersten Test ergab sich das Problem das der Servo sich in der neutral stellung bewegt.
Hier ein kleines Video vom Problem
http://vimeo.com/16341183
Es wäre klasse, wenn mir jemand einen Tip geben kann, was ich tun kann.
Danke
Gerald
Hallo Willa,
ich habe hier (http://forum.mikrokopter.de/topic-11206-1.html) eine Alternative zu deinen 3 einzelnen i2c->pwm-Konvertern gefunden und der Gedanke, die Umrechnerei in einem Atmel zu erledigen ist mir viel sympathischer, als dafür 3 gleiche Bausteine zu verbraten.
Hast du mit dieser Schaltung schon Erfahrungen gemacht?
Danke!
Hallo Zusammen!
Ich habe meine SMD-Version der TriGUIDE (siehe https://www.roboternetz.de/phpBB2/vi...=521920#521920) nochmal überarbeitet.
Der Switchmode Converter ist jetzt auf maximal 2,6A ausgelegt, der nachgeschaltete Low Dropout Linearregler kann 1,5A ab.
Damit sollte die TriGUIDE und der Rest der Shrediquette problemlos auskommen.
Bei meinem ersten Wurf habe ich die Spule des Schaltreglers zu klein gewählt, die trug nur 1,6A, was definitiv zu wenig gewesen wäre (der zu erwartende Strom mal 1,irgendwas ist hier anzusetzen). Die damit notwendige Spule ist ein ziemliches Ding und ich kann nur hoffen, das sich der Aufwand für die (im Vergleich zu zwei 7805-Reglern) recht komplizierte Schaltung wirklich lohnt.
Bild hier
Nachteile:
Es sind immer noch 4 Luftlinien (die gelben Striche) übrig geblieben, die im richtigen Leben durch einen Draht ersetzt werden.
Die Platine ist noch immer so groß wie die erste Version von Willas TriGUIDE :oops: mithin also ca. 56 x 69 mm.
Vorteile (zumindest in der Theorie) gibts aber auch :cheesy:
Die Platine ist einseitig, in der Herstellung also nur halb so teuer (z.B. bei MME-Leiterplatten Service).
Löcher gibts nur 4 Stück, der geneigte Selbstätzer hat´s damit einfacher.
Der Wirkungsgrad der Spannungsversorgung sollte höher sein als mit zwei preiswerten 7805 Linearreglern. Der TriCopter bleibt also länger in der Luft (was zu beweisen wäre 8) )
Die bestückte Leiterplatte baut flacher (was immer das nutzt)
Alle Bauteile sind über Reichelt zu beziehen (nur einmal Porto + Verpackung)
Ich werde in den nächsten Tagen die Leiterplatte und die noch fehlenden Teile ordern und testen, ob der Stromversorgungsteil so tut wie er soll.
ich les hier auch immer mal mit des meiste versteh ich zwar(noch net) ist abber immer sehr interressant
aber jetzt kann ich auch mal was sagen*freu*
@gerald kann es sein das die federn die die steuerknüppel deiner ferbedienung auf null zurückziehn sollten ein wenig ausgleihert sind?
drum geht der servo nachdem du ihn angesteuert hast so langsam zurück und wackelt halt weng
des problem hatte ich auch mal hab neue federn rein und alles war perfekt
nabend,
@geraldf:
lasse es einfach so wie es ist und fange an zu fliegen :D
ich kann dir auhc net genau erklären warum das so ist. jedenfalls ist es bei mir auch so aber im flug merkt man davon übrhaupt nichts!