Jump to content

longen

Forumdeltagare
  • Posts

    312
  • Joined

  • Last visited

  • Days Won

    14

Posts posted by longen

  1. 5 minuter sedan, martin_ts sade:

    Om vi nu pratar om flygplansvingar. Det fanns väl något som kallades lättroder. Ett litet roder som gick åt motsatt håll som det vanliga rodret. Luftströmmen påverkade lättrodret som sedan påverka det riktiga rodret. Som ett aerodynamiskt servo. Hade minskat belastningen på din torkarmotor och länkage och hade sett fräckt ut 😄

    /Martin

    Provade google lite på det beskrev men hittade inget vettigt 😋

    Har du nå bilder och gärna nån länk på hur det fingerar skulle uppskattas 🙂

  2. On 2020-04-29 at 14:11, Klubbsson sade:

    Motsvarande infästning på flygplan kallas pendelroder.  Var en populär konstruktion på 70 talet men kunde ge instabila egenskaper.  Men kan säkert fungera bättre på en bil än ett flygplan. 

    Tryckcentrum,  Där du vill ha ditt nya fäste för att minimera servokraften, kommer att  flyttas med olika hastigheter och anfallsvinklar.  Det kan vara en ide att sätta en plåt med många hål så att du kan prova fram vart tryckcentrum hamnar. 

    Ska försöka göra som du säger, låter klokt att man kan välja lite olika alternativ på infästningspunkter.

  3. 19 timmar sedan, Göran Nilsson sade:

    Vingbalken på flygplansvingar ligger ungefär där du har främre orginalinfäsning, mao lyftkraftscentrum. Sedan skulle jag sätta den andra infästningen längst bak,  enligt din bild, ger en rimlig belastning på servot, ju större avstånd du har mellan infästningspunkter desto mindre beslastning på servot men man får kompromissa och va lite praktiskt också.

    M10-M12 länkled är overkill, inte större än M8 är min bedömning. Min vinge sitter med totalt 4st M6 skruvar men så har jag fartbegränsning på 250km/h 😉😎

    Har du några foton på din vinge och infästningar?

  4. Har funderat lite kring infästningen av vingen, försökte göra en snabb skiss nedan för att förklara hur jag resonerar.
    Ifall man sätter en länkled mellan original fästena, på så vis kanske det största delen av kraften kommer där.
    Sen flyttar man bak det bakre fästet och monterar servo på den delen.

    Anledningen varför jag tänker på infästningarna är enbart för att få en mindre belastning på servot.
    Sen hur det fungerar i verkligheten har jag inte så stor koll på. När det gäller att räkna krafter och 
    aerodynamic så är jag mer av den typen att prova mig fram 😛 

    Någon som har några åsikter kring detta får gärna skriva en rad eller två 😀

     

    1722915226_Namnls.png.6e74f18dbdbaa8d7290cafada1f56089.png

  5. 15 timmar sedan, daromer sade:

    Och vill du lära dig mer om funktioner, math och andra skoj saker för styrning kolla in James Bruton på Youtube, Han bygger alla typers robottar och använder alla möjliga sensorer och än bättre han använder funktioner som finns och förklarar dem.  🙂

    Mycket bra information, tackar 🙂

  6. 1 timme sedan, bexander sade:

    Eftersom den postade koden inte är komplett blir det kanske en dum fråga men varför sätter du ett värde på "value" för att sedan använda map()? Är det inte enklare att sätta värdet du vill ha på "val" direkt eller till och med myservo.write(värdet du vill ha) ex (myservo.write(40) för sista "else if". (250/1023 * 165 = 40)

    Tänk också på att delay() låser processorn så att du inte kan göra något annat samtidigt. Kika gärna på exemplet "blink without delay" Arduinos IDE för att istället använda millis(). 

    När jag tittar på koden igen dyker frågan upp, varför har du diskreta lägen på servot? Är det inte enklare att skippa alla "else if" och istället köra en ekvation som löser det du vill.
    Typ myservo.write(abs(X_out) * 82); Detta bör lösa allt du gör med alla "if:s". abs() gör att du bara får det positiva talet (absolutbeloppet) , alltså (abs(-2) => 2).

    Du har många bra idéer kring det där @bexander helt klart går det göra som du beskriver. Anledningen varför koden ser ut så där var för att jag har provat lite olika lösningar.

                else if(X_out >= 0.5 or X_out <= -0.5) {          // Aktivering vid +/- 0.50g sidokraft
                value =pot +  250;                                             // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0);                  // potentiometer har ett värde mellan 0-1023 och servo har ett värde mellan 0-165
                myservo.write(val);
                delay(50);

    har provat köra med en potentiometer som du ser i koden ovan. Tanken med den lösningen var att under körningen så kunde jag öka eller sänka effekten på vingen

    men ändå kunna bibehålla den kör kurva som jag ville ha.

    Koden som jag postade tidigare var inte potentiometern med.

    Jag var tvungen att ha med val=map(valde, 1023, 0 165, 0); för att få potentiometern att fungera och att den skulle gå åt rätt håll.

    delay har jag provat med och utan, if satsen körs ju bara ifall värdet är mellan -0.5 till +0.5g som i exemplet ovan . Det jag märkte med delay var att servot blev avsevärt mycket lungnare och mer harmonisk. 

    Men helt klart, ska man inte ha med potentiometern alls så kan man göra om koden rätt mycket.

    Det härprojektet är första gången jag provat programmering, oj vad man har grubblat innan man förstod logiken med container, if else och hela den biten 🙂

    Ska prova att göra som du föreslog och se hur känsla blir då.
     

     

  7. 18 timmar sedan, bexander sade:

    Nja, det beror förstås på... 
    Om du vill kunna löpande ändra justeringhastigheten så låter det vettigt med PWM. 
    Om du istället bara vill kunna ändra åt ena eller andra hållet så kan du göra det med enbart på eller av men du behöver några relän för att få till omväxlingen mellan upp/ner. Allt beror på vilken justeringshastighet du behöver samt motorn/servots hastighet. 
    Jag tror det var detta som @LUPUS menade.

    Dock är det i princip lika enkelt att skaffa ett motordrivkort med H-brygga för fram/back av motorn och då har du möjlig att PWM:a i framtiden om du vill utveckla lite mer. 

    Arudino standard PWM frekvensen är rätt låg 500/1000Hz beroende på pin om vi snackar 328P processorn (UNO, mini etc.). Kan vara ide att kolla på hur du ändrar upp den genom att sätta rätt register för att komma upp i 16kHz eller mer så slipper du höra frekvensljud från motorn/styrning när den körs. 

    Läste på lite mer om motordrivaren som jag beställde från Tyskland, den ger ut 32kHz till motorn,oavsett vad man skickar in för pwm frekvens om jag förstod det rätt, för att undvika frekvensljud.

  8. 1 timme sedan, LUPUS sade:

    ##Tycker det är skoj med lite utmaning, fördelen med pwm är att man får ner värmeutveckling på transistorkortet som driver torkarmotorn.##

    Det där räcker ju som orsak 🙂  men  för den rena funktionen "ställ vingen vid X  grader "   är det kanske lite over kill. 

    har du funderat på hur lankningen blir till vingen rent fysiskt  ? 

    När jag såg Victor Racing presentions film så tyckte jag att det såg lite fattigt ut 😋 med 3 fasta lägen och Brake Assist.
    Har man tex 15 lägen på 15cm så upplevs vingen vara steglös typ. Visst är det overkill 😄 men när funktionen är så enkel att 
    lägga till i Arduinon så tänkte jag varför inte.

    Antingen blir det att köra med Puch-Pull vajer eller så blir det ett rundstång i ALU direkt från servot upp till vingen.

    Så här ser koden ut:

                if(Y_out >= 0.5) {                                // Aktiveras vid inbromsning, vingen ställer på                                
                value = 1023;                                     // max och hjälper till att bromsa bilen.
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(2000);
    }
              else {          
                if(X_out >= 2.0 or X_out <= -2.0) {               // Aktivering vid +/- 2.0g sidokraft
                value = 1023;                                     // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.9 or X_out <= -1.9) {          // Aktivering vid +/- 1.9g sidokraft
                value = 1000;                                     // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.8 or X_out <= -1.8) {          // Aktivering vid +/- 1.8g sidokraft
                value = 950;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.7 or X_out <= -1.7) {          // Aktivering vid +/- 1.7g sidokraft
                value = 900;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.6 or X_out <= -1.6) {          // Aktivering vid +/- 1.6g sidokraft
                value = 850;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.5 or X_out <= -1.5) {          // Aktivering vid +/- 1.5g sidokraft
                value = 800;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.4 or X_out <= -1.4) {          // Aktivering vid +/- 1.4g sidokraft
                value = 750;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.3 or X_out <= -1.3) {          // Aktivering vid +/- 1.3g sidokraft
                value = 700;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.2 or X_out <= -1.2) {          // Aktivering vid +/- 1.2g sidokraft
                value = 650;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.1 or X_out <= -1.1) {          // Aktivering vid +/- 1.1g sidokraft
                value = 550;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 1.0 or X_out <= -1.0) {          // Aktivering vid +/- 1.0g sidokraft
                value = 500;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 0.9 or X_out <= -0.9) {          // Aktivering vid +/- 0.9g sidokraft
                value = 450;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);          
    }
                else if(X_out >= 0.8 or X_out <= -0.8) {          // Aktivering vid +/- 0.8g sidokraft
                value = 400;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 0.7 or X_out <= -0.7) {          // Aktivering vid +/- 0.7g sidokraft
                value = 350;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 0.6 or X_out <= -0.6) {          // Aktivering vid +/- 0.6g sidokraft
                value = 300;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);
    }
                else if(X_out >= 0.5 or X_out <= -0.5) {          // Aktivering vid +/- 0.50g sidokraft
                value = 250;                                      // Läge/vinkel på servot
                val = map(value, 1023, 0, 165, 0); 
                myservo.write(val);
                delay(50);

  9. 1 timme sedan, bexander sade:

    Nja, det beror förstås på... 
    Om du vill kunna löpande ändra justeringhastigheten så låter det vettigt med PWM. 
    Om du istället bara vill kunna ändra åt ena eller andra hållet så kan du göra det med enbart på eller av men du behöver några relän för att få till omväxlingen mellan upp/ner. Allt beror på vilken justeringshastighet du behöver samt motorn/servots hastighet. 
    Jag tror det var detta som @LUPUS menade.

    Dock är det i princip lika enkelt att skaffa ett motordrivkort med H-brygga för fram/back av motorn och då har du möjlig att PWM:a i framtiden om du vill utveckla lite mer. 

    Arudino standard PWM frekvensen är rätt låg 500/1000Hz beroende på pin om vi snackar 328P processorn (UNO, mini etc.). Kan vara ide att kolla på hur du ändrar upp den genom att sätta rätt register för att komma upp i 16kHz eller mer så slipper du höra frekvensljud från motorn/styrning när den körs. 

    Mycket bra och informativ information på det här forumet, tack alla som läser och följer mina projekt 🙂

    Har beställt en motor drivkort från Tyskland idag, var 2x32amp på det kortet, så kan den ju klara av 2st torkarmotorer i värsta fall 😄 . Kör med Arduino Uno med 328P processorn, och då ska det vara lugnt att få ut 16khz dock bara på vissa pinnar på kortet. Har hittat en bra guide hur man ändrar frekvensen, finns en hel del färdig kod som man kan använda sig av såg jag.

    Längtar tills det börjar komma hem lite komponenter så man kan börja göra lite tester, ska bli intressant att se hur många Nm en torkar motor klarar av, skulle det skita sig så är det ju tur att jag beställde två stycken 😊

    Är ju inget matte snille, men jag kommer nog att ha en arm som är 8cm på torkarmotorn för att få en slaglängd på 16cm typ. Men när jag gör moment testet med torkar motorn så tänkte jag se hur mycket vikt den orkar lyfta på 80cm arm.

    Tex om den orkar lyfta 20kg på 80cm blir det 200kg på 8cm? Moment och hävarm är inte min starka sida 😄

    • Thanks 1
  10. 16 minuter sedan, LUPUS sade:

    Måste du ha så komplicerad styrning som pwm och hög ströms styrning av en torkar motor ? 

    Vet du var du är i vinkel funkar det i princip  med av / på ?   Fram/ back   ? 

    Mao ett relä billigt och framför allt enkelt ? Kanske lite mera tanke möda på kod istället om man råkar köra förbi målet

     

    Tycker det är skoj med lite utmaning, fördelen med pwm är att man får ner värmeutveckling på transistorkortet som driver torkarmotorn.

    All kod har jag lyckas få klar i Arduinon så nu är det bara hårdvaran kvar att fixa.

    Fördelen med lite mer avancerat system gör att möjligheten att ändra olika förhållanden mellan olika krafter och förutsättningar kan enkelt göras med en knapptryckning medans man kör. Eller vinkeln kan enkelt ställas i manuellt läge medans man kör. Andra förhållanden om olika vinklar vid olika sidokrafter och inbromsning m.m bör man nog stå still med bilen och vara uppkopplad med datorn 😋

    Har jag väl hittat på någon så brukar jag vara rätt tjurig 😁

  11. 1 timme sedan, Fredrik Svedjefält sade:

    Bara en tanke om du övervägt att styra vingen med pneumatisk?

    Pneumatik, hmmm, blir bara min eller max då, ej steglöst. 
    Om man provar räkna på det, 100-400kg downforch. 
    8kg lufttryck, då måste man typ ha en air ride bälg plus en tank kompressor m.m

    Fördel med servo är att den håller kraften åt båda hållen 🙂

  12. 13 minuter sedan, daromer sade:

    Osäker på hur många nm dom klarar per default. Men går ju alltid koppla på en kulskruv med 5mm stigning eller liknande och då får rejält kapacitet visserligen avskalad hastighet. 

     

    Vilken hastighet behöver du? Stepper motorer eller linjärdon kopplade till tryck/dragfjäder. (Kommer inte ihåg namnet)

    Vore ju trevligt ifall utgående axel på torkar motorn kund gå från 0-180 grader på 1-3sek.

    är ju bara vid brake assist man behöver hastigheten. 
    I auto mode så reglerar vinge hela tiden efter antal g-force och då anser jag att hastigheten inte har lika stor betydelse.

    Använder man en kulskruv så bör man använda en vrid potentiometer som typ klara av 20-30 varv ifall det är 5mm stigning, du får man en rörelse på 10-15cm. Ska invänta tills torkar motorerna kommer så ska jag göra lite belastningstester 🙂

     

  13. Verkar svårt att få tag en PWM motor drivare här i Sverige som tål lite ström.
    Har hittat många alternativ i utlandet dock.

    Den här som ni ser nedan är klarar av 9-24v och 50Amp kostar runt 1000:- 
    Finns även 25Amp 15Amp och 10Amp . Oavsett om jag ska köra 
    med en eller två motorer så kan det ju aldrig vara fel att ha mycket Amp 😄

    Gjorde en beställning på 2st torkar motorer med 8mm axlar så får vi se ifall 
    det är något man kan använda.

    syren-motor-driver-4_1.jpg.f8d129d8eaf28335ae6b577bbdb3e2db.jpg

    torkarmotor.jpg.605257423ee3548ee1960c833f526e1a.jpg

  14. 7 timmar sedan, daromer sade:

    Linjärdon funkar också men dom är.slöa

    Torkarmotor är bra. Bara sätta en linjär Pot så kan man lätt med arduinon läsa av positionen.

     

    Helt klart, blir nog att köra med torkarmotor lösningen, har inte bestämt mig om det blir en eller två torkar motorer, vore intressant att göra någon belastning test och se hur många kilo 
    en standard torkarmotor klarar av.

  15. 19 timmar sedan, martin_ts sade:

    Aha smart! Styra direkt med arduino såklart! Måste lära mig dom där.. Fördelen med en torkarmotor är ju att dom flesta använder en snäckväxel. En sån växellåda är ju låst om inte motorn snurrar. Medans ett vanligt servo. Även den du visar på bilden tror jag använder vanliga drev och då krävs det ju att motorn låser den elektriskt i position. Kan bli ett jäkla ryckande i den i lite farter? Den kommer behöva styra ut spänning för att behålla korrekt position. Orkar den att vara under konstant belastning tex 20min på kullen? Anges det ngn intermittens på dom?

    Tror det kan vara skönt att ha en mekanisk låsning i växellådan! Då behöver inte motorn belastas mer än under flyttning av position på vingen? Torkarmotorer finns ju i alla storlekar ochså! 

     

    Du har en riktigt bra poäng där med snäckväxeln, har inte tänkt på att den har en mekanisk låsning i torkar motorn, blir ju hur bra som helst att köra på den lösningen.

  16. 53 minuter sedan, martin_ts sade:

    Grymt jobbat! Ska bli riktigt kul att se när allt är ihopsatt! Arduino skapar nya möjligheter som inte fanns innan. Hur har du lärt dig kodspråket??

    Vingen skall alltså vara ledad på något sätt och sedan ska ett servo justera vinkeln? Kommer servot orka flytta vingen i hög hastighet? Borde inte det kräva stora krafter? Jag såg en kille på Youtube som använde ett kretskort ur ett vanligt hxt900 servo. Detta styrde ett fartreglage som i sin tur styrde en torkarmotor. = Locost jättestarkt servo!

    Eller har du någon annan smart plan?

    /Martin 

    Tackar, har aldrig programmerat förut, har 3 böcker hemma för dummies som jag har sträckt läst, finns mycket exempel kod på nätet som man kopierar modifierar tills man får den funktion man vill ha. Jag hade stora problem med att få gyrot att matcha mot servot, ringde en vän som håller på med programming, han förklarade hur man skulle tänka och hjälpte mig med den biten, tur var det 😄 annars hade jag nog avbrutit det här projektet 😅.

    Finns ett färdigt servo som jag skulle vilja ha men beställer jag det idag så är det några månader bort då det finns i China 😬 Lägger upp en bild på den, den drar 380kg, har man två borde det räcka.

    Men vingen kommer kanske om 1-2 veckor och då vill man ju ha en färdig lösning till dess.

    Att köra med en vindrutetorkar motor är ingen dum idee, har kolla på den lösningen en del och det lutar nog mot att den blir en sån lösning, billig enkel och stark. Lägger upp en länk på en som visar hur man skall bygga en sådan med en Arduino. 

    Lägger upp en bild på vingen som blev beställd också 🙂

    vinge.jpg.8fb3753cd2ff0685cbc831dec9ed3771.jpg

    servo.JPG.471c6ae710cc166a6e32038f6766674e.JPG

     

    • Thanks 1
  17. 13 minuter sedan, LUPUS sade:

    Coolt ,

    Nu ser jag ju mer bra att ha grejer du behöver

    +Blinkande bromljus vid broms pedal + X nivå retardation 

    En grej man skulle kunna göra är att använda sig av g-sensorn som i sin tur styr en RGB led list, beroende hur mycket man bromsar tänds olika många lampor eller ändrar ljus styrkan. 
    Sen integrerar man även parkering och blinker i den listen 😛

     

×
×
  • Create New...