DX8 mixing voor tank besturing

Bijna, het verschil zit hem in de 1-tmpThr. Dit keert het mechanisme juist om waardoor de bocht groter wordt als de throttle omhoog gaat.
 
Laatst bewerkt door een moderator:
Volgens mij zou er geen discriminator in moeten zitten op throttle, maar juist door het negatief worden van throttle (T) zelf gaat de term f*T*A van positief naar negatief.

En ik zie nergens iets dat op het uitschakelen van deze term lijkt afhankelijk of je links of rechts stuurt?
 
Volgens mij zou dit 'm moeten zijn:

Code:
const int PIN_THROTTLE = 22;
const int PIN_STEERING = 24;

const int PIN_MOTOR_L_OUT = 23;
const int PIN_MOTOR_R_OUT = 25;

int throttle;
int steering;
float throttleLeftTrack = 1500;
float throttleRightTrack = 1500;

float multiplier = 1;


void setup() {
  pinMode(PIN_THROTTLE, INPUT);
  pinMode(PIN_STEERING, INPUT);

  pinMode(PIN_MOTOR_L_OUT, OUTPUT);
  pinMode(PIN_MOTOR_R_OUT, OUTPUT);
  Serial.begin(57600);
}

void loop() {
  throttle = pulseIn(PIN_THROTTLE, HIGH, 25000);
  
  //LEFT MAX: 1900,  NEUTRAL:1500, RIGHT MIN: 1100
  steering = pulseIn(PIN_STEERING, HIGH, 25000);
  setThrottleEngines();
}

void setThrottleEngines(){
  float tmpThr = (throttle - 1500)/400.00;
  float tmpSteer = (steering - 1500)/400.00;
    
[COLOR="red"]// if(steering>1520 || steering<1480){
//  if(tmpThr>0){
//    throttleLeftTrack = throttle - (((multiplier * (1-tmpThr) * tmpSteer))*400);
//    throttleRightTrack = throttle + (((multiplier * (1-tmpThr) * tmpSteer))*400);
//  }else{
//    throttleLeftTrack = throttle - (((multiplier * (-1-tmpThr) * tmpSteer))*400);
//    throttleRightTrack = throttle + (((multiplier * (-1-tmpThr) * tmpSteer))*400);
//  }
//}else{
//  int newInt = throttle-1500;
//  int newTthrottleLeftTrack = throttle-newInt;
//  Serial.println(newTthrottleLeftTrack);
//  throttleRightTrack = throttle;[/COLOR]

[COLOR="Blue"]  if(steering<1500){
    throttleLeftTrack = throttle + (multiplier * tmpThr * tmpSteer * 400);
    throttleRightTrack = throttle;
  }else{
    throttleLeftTrack = throttle;
    throttleRightTrack = throttle - (multiplier * tmpThr * tmpSteer * 400);  [/COLOR]
  }
  delay(100);
  
  pulseOut(PIN_MOTOR_L_OUT, (int)throttleLeftTrack);
  pulseOut(PIN_MOTOR_R_OUT, (int)throttleRightTrack);
  
 // Serial.print("MOTOR L:");
  //Serial.println(throttleLeftTrack);
}

void pulseOut(int pin, int us)
{
    digitalWrite(pin, HIGH);
    us = max(us - 20, 1);
    delayMicroseconds(us);
    digitalWrite(pin, LOW);
}

Als je tank nu de verkeerde kant op stuurt kun je 2 dingen doen, in de zender omdraaien of alle "throttleLeftTrack" door "throttleRightTrack" vervangen en "throttleRightTrack" door "throttleLeftTrack".

Ik vermoed overigens dat je, als je de multiplier 2 maakt zoals ik voorstelde, je ook een flinke portie expo op je stuur zal moeten zetten.

Groeten,
Max.
 
Dit lijkt inderdaad ook de goede output te leveren (multiplier 2):

Neutrale stand: L:1494, R:1494

Vol vooruit: L:1877, R:1887

Vol vooruit + links: L:1887, R:1130

Vol vooruit + rechts: L:1121, R:1877

Vol achteruit: L:1095, R:1099

Vol achteruit + links: L:1095, R:1882

Vol achteruit + rechts: L:1906, R:1094

Thanks Max!

Vandaag ook de hardcase lipo's binnen gekregen om lang mee te kunnen rijden. Uiteindelijke versie gaat op een compact Arduino bordje draaien, niet op de MEGA. Volgende onderdeel wordt het maken van het platform.

2l8ksch.jpg
 
OK!
Maar hij stuurt inderdaad verkeerd om:

Vol vooruit + links: L:1887, R:1130

Vol vooruit + rechts: L:1121, R:1877

Als je nu naar links stuurt, loopt de linkertrack vol vooruit en de rechter (bijna) vol achteruit, je tank gaat dan rechtsaf en niet linksaf!

Eenvoudigste is om het in de zender om te draaien, anders de code aanpassen op de manier zoals ik al eerder omschreef.

Let op: NIET dit: "if(steering<1500)" aanpassen! Als je dat doet moeten er ook een paar + en - tekens veranderd worden.

Max.
 
Laatst bewerkt:
Met een Graupner MX16HOTT zou dit geen probleem zijn en heb ik het binnen 3 minuten gepiept.

Mijn model van R.M.S. Titanic heeft 3 motoren.
Als ik de knuppel van kanaal 3 (middenmotor) naar voren of naar achteren druk, gaan bak- en stuurboordmotor gewoon mee. (Mixer 1, master/slave +100% kanaal 3 master, 5 en 6 slave)
Kanaal 4 is de roerservo.
Druk ik die (met kanaal 3 in neutraal) naar bakboord zal het roer de stand aannemen bakboord uit" en de bakboordmotor achteruit gaan draaien.
(Mixer 2, master 4, slave 5, + 100%)
De stuurboordmotor vooruit (Master 4, slave 5, +100%)
Idem bij een stuurboord-draai, alleen reageren de bak- en stuurboordmotoren uiteraard andersom.
In deze situatie staat de middenmotor gewoon stil.
Geef ik nu gas met de middenmotor en stuur ik tegelijk, dan gaan de bak- en stuurboordmotor proportioneel mee met alle mixers.
Voorbeeld:
Kanaal 3 (middenmotor) 50% vooruit, kanaal 4 (roer) 50% stuurboord:
Stuurboordmotor zal in principe op 50% vooruit willen draaien (mixer 1) maar wordt gedempt door mixer 2.
Zal op 25% gaan draaien.
Bakboordmotor wil in principe 50% vooruit op mixer 1, maar krijgt nog een extra commando: 50% extra door mixer 2.
Zal op 75% gaan draaien.
Idem dito tijdens het achteruit varen.

Hierdoor kan ik met dit 1,8m lange schip binnen een haven van 2 x 2 meter draaien.
(En ja, ik kan de mixers middels schakelaars ook nog uitschakelen voor het geval ik een ijsberg tegenkom en "echt" Titanic wil spelen...:()
 
Voorbeeld:
Kanaal 3 (middenmotor) 50% vooruit, kanaal 4 (roer) 50% stuurboord:
Stuurboordmotor zal in principe op 50% vooruit willen draaien (mixer 1) maar wordt gedempt door mixer 2.
Zal op 25% gaan draaien.
Bakboordmotor wil in principe 50% vooruit op mixer 1, maar krijgt nog een extra commando: 50% extra door mixer 2.
Zal op 75% gaan draaien.
Roel, kennelijk werkt Graupner Hott dan anders als bijvoorbeeld mijn Multiplex zender, en kennelijk ook als Ernst's Futaba en de zender van de TS.
Bij jouw zender betekend een mixer: neem het % van de uitslag van de master, vermenigvuldig dat met het % van de slave en tel ze op. Bij een negatieve master-uitslag word er dus een deel van de slave-uitslag aftgetrokken. Bij "ons" worden de %-en van master en slave alleen opgeteld.

Groeten,
Max.
 
Net de allereerste test gedaan en het werkt. Nu de motoren zodanig uitlijnen dat ze ongeveer even snel draaien. Filmpje is aan het uploaden.
 
So far so good. Nou de motoren op een plankje spijkeren, wieltjes erop, zwenkwieltje eraan en laten zien hoe het rijdt :p
Ik ben vooral benieuwd of mijn theorie van een constante draaicirkel een beetje klopt.

Groet,
Max.
 
Ik heb hier al rupsbanden klaar liggen, want het wordt een platform met FPV, maar voor een eerste test is het inderdaad geen slecht idee om eerst gewoon twee wielen te monteren.
 
Net alles gemonteerd in een test opstelling en hij rijdt perfect!! :)

Zelfs rechtuit gaat kaarsrecht. Morgen maar eens buiten proberen om te kijken of de draaicirkel groter wordt naarmate de snelheid toeneemt, het gaat best vlot namelijk en er zit meer dan voldoende power in!

y5u4equb.jpg
 
En nu ook een video:


Het is dus echt een zwenkwiel, het sturen wordt dus geregeld met de motors aan de wielen, zoals een tank ;)
 
Laatst bewerkt door een moderator:
Heeft iemand trouwens een idee voor rupsbanden? Er zijn er heel veel te krijgen voor modelbouw tanks maar die zijn allemaal van plastic en dus niet geschikt. Het moet uiteindelijk passen op een platform lengte van ongeveer 60cm dus ze zullen denk ik wel iets van 150cm lang moeten zijn.

Het doel is een soort van rijdend multifunctioneel platform te maken.
 
:thumbsup:

Ben je ook happy met de manier waarop het sturen verloopt bij het wisselen van vooruit naar achteruit? En is de draaicirkel een beetje constant?

Groet,
Max.
 
Heeft iemand trouwens een idee voor rupsbanden? Er zijn er heel veel te krijgen voor modelbouw tanks maar die zijn allemaal van plastic en dus niet geschikt.

Deze zijn ook in metaal te vinden hoor.
Zo heb ik zelf een Stug III, een Tiger I en een Panther met metalen track's.
Kijk maar eens op het net naar track's voor 1/16 panzers.
 
:thumbsup:

Ben je ook happy met de manier waarop het sturen verloopt bij het wisselen van vooruit naar achteruit? En is de draaicirkel een beetje constant?

Groet,
Max.

Het sturen werkt perfect tussen voor en achteruit. De draaicirkel moet ik nog steeds eens testen in een omgeving met veel ruimte, het gaat namelijk best vlot op volle snelheid. Bedankt voor de hulp so far :)
 
Deze zijn ook in metaal te vinden hoor.
Zo heb ik zelf een Stug III, een Tiger I en een Panther met metalen track's.
Kijk maar eens op het net naar track's voor 1/16 panzers.

Klopt, de chinese webshops staan er vol mee, echter, ik wil graag rubber en bovendien zijn de meeste tracks van modelbouwtanks te klein.
 
Nu de zender aansturingsproblemen zijn opgelost, kan het simpele test platform omgebouwd worden naar een wat geavanceerder platform met rupsbanden. Na wat speurwerk ben ik uitgekomen op het volgende platform:

full


Ik had het frame graag zelf willen maken, maar ik heb geen middelen om metaal te bewerken dus een kant en klaar frame is voldoende voor nu. Bovendien biedt dit nog genoeg mogelijkheden om zelf te customizen (vering, electronica, kappen andere rupsvanden etc...).

Het zal wel even duren voordat het het hier aankomt vanuit China, dus ik kan alvast wat onderzoek doen naar FPV op de grond. Iemand hier ervaring mee?
 
Laatst bewerkt door een moderator:
Back
Top