Lichtgewicht PWM Servo-bereikaanpassing

Ik heb niet gewerkt met servo's op Arduino. Ik weet niet zeker hoe ik dit moet aanpakken of dat een Arduino de beste oplossing is. Ik heb gekeken naar servo-activeringshandleidingen en kan een servo krijgen om te verplaatsen, maar in plaats van uren te verspillen aan de verkeerde aanpak, heeft iemand mogelijk een suggestie over hoe dit het beste kan worden bereikt? :

Ik heb een tilt rotor quad en heb een mix op het veld van het vaartuig en de servo, die vrij goed werkt en een zeer snelle voorwaartse vlucht toestaat. Het probleem is dat, hoewel ik het servo-bereik met trims kan beperken, ik de servo niet volledig in een halve stok beweging kan laten gooien. Soms wil ik gewoon tilt besturen en soms gewoon pitchen. Met expos kun je dit bijna bereiken, maar je krijgt slechts ongeveer 50% van de servobeweging voordat de toonhoogte begint en dit maakt het gebruik van acro met tilt onmogelijk.

Mijn idee is om een ​​arduino pro mini (of iets kleins?) Te gebruiken om het binnenkomende PWM-signaal te nemen en te verdubbelen, output naar de servo, zodat ik het volledige bereik van lineaire beweging op de helft van mijn pitch stick-input heb, maar de servo PWM is niet te veel aangedreven (of verdubbeld) als hij volledig op zijn plaats blijft.

Ik zou ook willen dat de Arduino reageert op een andere PWM-waarde die de laatst ingestelde pwm zou behouden, zodat ik een 'cruise control' kan initiëren vanuit een andere switch op mijn TX.

Samenvatting:

  • Arduino vertaalt bereik van invoer-PWM naar uitvoer pwm
  • Arduino onderhoudt ook de laatst ingestelde PWM-uitgang, wanneer de tweede binnenkomende PWM is hoog.
  • Leuk om te hebben: programmeerbare invoer naar uitvoerbereiken
  • Leuk om te hebben: Arduino regelt twee input en output pwms met derde en vierde input pwm (of een combinatie van beide)

Tenslotte...

Weet iemand of de Arduino snel genoeg is om een ​​s-bussignaal te onderscheppen en door te sturen? zo nodig aanpassen ... en de servokanalen uitbreken (s-bus naar pwm) ... Dit is duidelijk meer betrokken, maar oneindig meer toegankelijk als ik de communicatie kan onderscheppen voordat ze bij de vluchtcontroller terechtkomen.

Bewerk: Het dichtstbijzijnde voorbeeld van code die ik kan vinden is als volgt, en dit zal een kant van sbus voor mij doen (dwz ik zal sbus in en pwm out krijgen, wat voor mij zou werken. Maar ik kan in de code geen variabelen zien die ik kan gebruiken gebruiken om waarden van kanalen handmatig te manipuleren voordat ze als PWM worden verzonden?

// Arduino pro mini 16 mhz decode sbus or CPPM 
// detects automatically CCCPM  or a SBUS signal.

CODE HERE as I dont have enough space to post: http://openrcforums.com/forum/viewtopic.php?t=6361

Bedankt

0
Dit klinkt allemaal mogelijk, waarom probeer je het niet eens? Probeer het zelf en als je vastzit aan een probleem, kun je hier komen met specifieke vragen. In zijn huidige vorm klinkt deze vraag alsof je wilt dat we al het werk doen. Goed nieuws: het Futaba SBUS-protocol is reverse-engineered , en het lijkt eenvoudig te implementeren op een Arduino.
toegevoegd de auteur Sprogz, de bron
Ik kan het ook niet zien. Dat zou de tijd vergen om de code zorgvuldig te bestuderen.
toegevoegd de auteur Sprogz, de bron
Sorry dat ik niet specifiek genoeg was. Het ging meer om het evalueren van de aanpak die ik nam ... zeker dat ik dit kan proberen, maar als het niet gaat werken vanwege de beperkingen van de Arduino of zo, waarom zou je dan tijd verspillen met doen? Bedankt voor het voorstellen dat het mogelijk is, want dat is handig :) (zoals de link). Wil je niet opnieuw het wiel uitvinden, is er dan een eenvoudige manier om de gekoppelde code aan te passen, zodat er wat wiskunde kan worden uitgevoerd op de PWM-waarden voordat ze worden uitgespuwd? Ik kan echt niet zien waar de waarden zijn voordat ze worden doorgegeven aan PWM. Nogmaals bedankt
toegevoegd de auteur Saurabh Kumar, de bron
Ok, er wordt er maar één aangenomen, dat mensen mij kunnen helpen als ik anderen probeer te helpen in gebieden waar ik sterk ben, voornamelijk EE, maar dat is vaak verwant. Ik kan Arduinos dingen laten doen, maar ik heb geen idee hoe te bereiken of naar welke delen moet worden gekeken om de code te veranderen en toe te staan ​​dat ik mijn eigen code toevoeg. Ik vroeg alleen maar of het triviaal zou zijn of dat iemand me in de juiste richting zou kunnen wijzen om de code te wijzigen ... Bijstand, niet aan iemand vragen om het voor mij te doen.
toegevoegd de auteur Saurabh Kumar, de bron

Geen antwoorden

0