Monocopter experimenteel ontwerp

Als U een gezamenlijk project wil starten of aan projecten van anderen mee wilt werken.
Berichten: 28
Geregistreerd: 30 Nov 2013, 23:49

Monocopter experimenteel ontwerp

Berichtdoor Luppie » 01 Dec 2013, 01:23

Hallo allen,

Ik ben een modelbouwer die zich vooral bezig houd met experimentele vliegtuigjes die ik zelf ontwerp bouw en vlieg (wanneer ze het doen). Mijn ervaring met arduino is dus alleen van de afgelopen weken waarin ik al heel druk geweest ben met dit project. Ik weet nog te weinig om dit project te laten werken vandaar dat ik hier terecht ben gekomen.


Nu heb ik een monocopter gemaakt en ik wil hem bestuurbaar maken dmv arduino.

Een monocopter is een roterende vleugel met als voorbeeld het esdoornzaadje.
Afbeelding

De monocopter is het meest eenvoudige vliegtuig dat er bestaat door maar twee bewegende delen namelijk de motor en 1 roer. Afhankelijk van gewicht en afmetingen gaat hij ongeveer 5 tot 10 rondjes per seconde draaien.

De besturing van een "kale" monocopter bestaat uit gas en controle over het roer waardoor hij stijgt of daalt maar hij kan niet in een richting gestuurd worden. Voor het sturen in een gewenste richting is het noodzakelijk de vleugel tijdens 1 revolutie te laten kantelen. Hij moet in de gewenste vliegrichting laag zijn en de tegenover gestelde richting hoog. Eigenlijk het zelfde principe als de helikopter met als verschil dat er geen swashplate is die de rotor kan sturen.

Afbeelding

in het kort mijn idee:
Je kunt een magnetometer gebruiken om de monocopter een referentie te geven waar het noorden is. Wanneer arduino weet waar het noorden is kan je hem opdracht geven om tijdens de ronde bijvoorbeeld de vleugel bij noord laag te houden en dus bij zuiden hoog waardoor hij naar het noorden vliegt.

Afbeelding

Er zijn verschillende teams geweest die succesvol een besturing hebben gemaakt voor een monocopter maar dat zijn er maar een handje vol geweest. Ook de informatie hier over is schaars. De informatie die ik heb gevonden zal ik hieronder even neer zetten

lockheet martin samarai (A Multi-Scale Simulation Methodology for the
Samarai Monocopter UAV)


hoburg en Houghton studieproject

en hunfinal report met veel info (wel even inloggen op chrome google+)

setup:
arduino pro mini (een uno en nano voor werkbanktesten)
10DOF L3G4200D ADXL345 HMC5883L BMP085
of een losse HMC5883L (magnetometer) en ADXL345 (Accelerometer)
brushless motor en regelaar
snelle micro servo ( 5V 0.07sec.60º/ 6V 0.06sec.60º)
2.4 Ghz zender/ontvanger

De mooiste situatie voor de besturing is als volgt:
motor rechtstreeks van de ontvanger (vaste toerental bij ideale draaisnelheid)
pitch (vlieghoogte)
yaw (virtuele voorkant laten draaien)
nick (naar voren en achteren kantelen)
roll (links en rechts kantelen)


Ik heb heeeel veel vragen maar ik zal de belangrijkste nu even stellen omdat die van belang zijn voor het slagen van het project

Vraag 1:
Gaat vooral over de snelheid van het hele proces. minst ideale situatie draait de monocopter met 10 RPS. Dus 1 rondje is 0,05 seconden. In dit rondje moet de servo van laag naar hoog en terug naar laag. als ik er van uit ga dat de servo een slag van 60º maakt moet hij dus 2x 60º doen in 0,05 seconden. de snelste servo die ik heb gevonden is bij 6V 60º graden in 0.06sec. die zou dus al veel te langzaam zijn. Enige oplossing is dus om de slag te verkleinen naar maximaal 30º??

vraag 2:
Het hele proces zal achter lopen op de werkelijkheid. dus voordat alle meetsignalen en ingangen zijn verwerkt in de formule tot een uitgangssignaal zal de monocopter al veel verder zijn in zijn rondje dus is het signaal te laat. Ik verwacht dat hij de gemeten waarden en het daarbijhorende uitgangssignaal toe moet passen op de zelfde plek in het volgende rondje??

vraag 3:
De HMC5883L heeft een standaard 15Hz measurementrate in "continuous-measurement mode" maar hij kan maximum rate of 160 Hz can be achieved by monitoring DRDY interrupt pin in single measurement mode. Ik heb een code gevonden van iemand die tot 200Hz uitlezen is gelukt maar bij mij werkt hij niet. na zoeken vond ik dat soms de DRDY interrupt pin niet altijd is aangesloten in de 10DOF module's?? (de losse HMC5883L heb ik nog niet binnen om te testen)

Vraag 4:
een stukje uit de HMC5883L datasheet

Below is an example of a (power-on) initialization process for “single-measurement mode”:

1. Write CRA (00) – send 0x3C 0x00 0x70 (8-average, 15 Hz default or any other rate, normal measurement)
2. Write CRB (01) – send 0x3C 0x01 0xA0 (Gain=5, or any other desired gain)
3. For each measurement query:
Write Mode (02) – send 0x3C 0x02 0x01 (Single-measurement mode)
Wait 6 ms or monitor status register or DRDY hardware interrupt pin
Send 0x3D 0x06 (Read all 6 bytes. If gain is changed then this data set is using previous gain)
Convert three 16-bit 2’s compliment hex values to decimal values and assign to X, Z, Y, respectively.

Ik moet dus 1. Write CRA (00) – send 0x3C 0x00 0x70 vervangen voor iets anders. ik vond al 75 Hz ODR (0x18) maar ik zie hier geen logica in. is de 0x00 adres een hex of ASCII of iets anders? dus wat moet ik invoeren om 160Hz te krijgen? (send 0x3C 0x00 0x??)

ik laat het hier maar even bij voor nu. Wanneer specifieke vragen beter in een ander draadje gesteld kunnen worden graag even zeggen.

Advertisement

Gebruikers-avatar
Berichten: 136
Geregistreerd: 06 Jun 2012, 15:45

Re: Monocopter experimenteel ontwerp

Berichtdoor hmjswt » 01 Dec 2013, 17:32

Hallo,

Interessant probleem.
Zelf ben ik bezig met het maken van computers voor raketten.
Zie : http://swtrocketry.com
De luchtvaart is mij ook niet vreemd.
Maar bij dit verhaal duizelt het me toch wel een beetje.
Poe!
Ik denk dat als je hulp wilt je er toch rekening mee moet houden dat de hoeveelheid vaktaal die in dit stuk wordt gebruikt, voor een introductie, een beetje te veel van het goede is.

Uh, kun je me uitleggen waarom 10 RPS 1 rondje in de 0.05 seconden is?
Als RPS voor Revolutions Per Second staat is volgens mij 1 rondje, 1 seconde / 10 = 0,1 seconde.
Of zie ik iets over het hoofd?

Ik heb de bovenstaande documenten gedownload en even doorgebladerd.
Heel interessant.
Als ik de hardware bekijk die in het Hoburg en Houghton studieproject is gebruikt zou het, afgezien van het geheugen, best met een Arduino moeten kunnen.
Het geheugen zou je uit kunnen breiden door een aantal 24LC... EEPROMS te gebruiken.
Maar om hier serieus mee aan de slag te kunnen gaan is bestudering van de literatuur nodig.
En dat zal even tijd vragen.

Nogmaals ik vind dit heel interessant.
Maar het zal wel wat tijd vragen voor ik serieus op je vragen kan antwoorden.

Groet,
Henk Siewert

Berichten: 28
Geregistreerd: 30 Nov 2013, 23:49

Re: Monocopter experimenteel ontwerp

Berichtdoor Luppie » 01 Dec 2013, 21:46

Uh, kun je me uitleggen waarom 10 RPS 1 rondje in de 0.05 seconden is?
Als RPS voor Revolutions Per Second staat is volgens mij 1 rondje, 1 seconde / 10 = 0,1 seconde.
Of zie ik iets over het hoofd?


ah ik was iets te snel. inderdaad is het 0,1 seconde voor een rondje. De servo heeft dus 0,05 seconden de tijd om zijn slag te maken in een half rondje.

Het geheugen zou je uit kunnen breiden door een aantal 24LC... EEPROMS te gebruiken.

Ik denk dat ze het geheugen hebben gebruikt om vluchtgegevens op te slaan en later uit te lezen. Ik wil een bluetooth verbinding gebruiken om rechtstreeks te kunnen loggen.

Ik kan me nu goed vergissen maar ik denk dat het programma niet zo moeilijk hoeft te zijn want ik heb 5 inputs die samen 1 uitgang beinvloeden. Het kan wel lastig worden wanneer ik bijvoorbeeld kantelcompensatie toe moet passen op de magnetometer want hij kanteld nogal.

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Monocopter experimenteel ontwerp

Berichtdoor shooter » 01 Dec 2013, 23:23

dat lukt je nooit met servos want die doen het ook al met een tijdsignaal. je kunt wel gewoon een motor de goede kant opsturen en dat terugmeten met een potmeter of zo, dan heb je voldoende snelheid in je arduino hoor.
50 millis is heel veel.
paul deelen
shooter@home.nl

Berichten: 5
Geregistreerd: 25 Okt 2013, 10:00

Re: Monocopter experimenteel ontwerp

Berichtdoor Marc » 02 Dec 2013, 23:03

Zeer interessant project, maar vèr buiten mijn comfort-zone. Op het gevaar af mezelf belachelijk te maken: kun je niet werken met een regelbare onbalans? Ik bedoel twee gewichtjes op één as door het middelpunt, waarbij je één gewichtje verder of minder ver dan het tweede gewichtje van het middelpunt kunt brengen en waarbij de hoek van deze as ten opzichte van de rotor kan worden ingesteld. Voor- en naijlend, en waarbij deze as hetzelfde toerental heeft als (meedraait met) de rotor zelf. Deze verstelling is veel trager en altijd synchroon met de rotor.

Berichten: 28
Geregistreerd: 30 Nov 2013, 23:49

Re: Monocopter experimenteel ontwerp

Berichtdoor Luppie » 03 Dec 2013, 00:12

je kunt wel gewoon een motor de goede kant opsturen en dat terugmeten met een potmeter of zo

Je hebt dan een motor nodig die veel koppel heeft en dat maakt de motor dan veel te groot en te zwaar. dat probleem is opgelost met een servo door een kleine motor veel koppel te geven helaas natuurlijk te koste van de snelheid door tandwielen.

Een servo zou moeten kunnen qua snelheid denk ik wanneer ik de draaisnelheid niet te hoog heb. nadeel is dan de levensduur want hij is niet gemaakt om zijn hele leven op en neer te denderen.

kun je niet werken met een regelbare onbalans?

Ik heb hier aan gedacht door een beweegbaar gewichtje aan een staaf onder het zwaartepunt. het nadeel van het hele onbalans is dat er dan veel energie verloren gaat aan die trilling waardoor je motor heel hard moet werken om toch te kunnen vliegen. Het idee van meer en minder lift tijdens de rotatie is veel energie efficiënter.

Het eventuele probleem met de servo snelheid en levensduur zou ik kunnen oplossen door twee spoeltjes die het roertje omstebeurt aantrekken. Je ziet dit veel in kleine speelgoed vliegtuigjes etc. nadeel van dit is dat ik niet weet hoe ik dit proportioneel aan kan sturen dus veel of weinig stuurinput.

voorlopig hou ik het even bij een snelle servo en concentreer ik me even op de software.

Berichten: 108
Geregistreerd: 07 Aug 2013, 21:34

Re: Monocopter experimenteel ontwerp

Berichtdoor KrisG » 03 Dec 2013, 13:41

Uiteindelijk is een servo niet meer dan 'een motor die je de goeie kant op stuurt en terugmeet met een potmeter', toch ?

Er is natuurlijk een reden geweest waarom men in heli's voor de swashplate gekozen heeft :) maar het zal ook wel zonder kunnen.

Vermits je met een vaste rotatiesnelheid wil werken, ken je de frequentie van een rondje, maar ik zou daar toch mee oppassen. Het is niet omdat jij het constant aanstuurt dat het in werkelijkheid ook constant draait.

Het toerental zal wijzigen als je de hoek van je blad gaat wijzigen omdat de weerstand gaat wijzigen.
Daarom zou ik in de eerste plaats een meetsysteem bouwen dat me vertelt hoe snel het blad draait. En nog liefst in meer dan 1 puls per toer.

Ik zit te denken aan een IR-poortje met een pulsteller.

zoiets:
Afbeelding

dan kan je pulsen tellen en dat gebruiken als clocksignaal voor de rest van je bewegingen.

Kris
Als je het probleem gedetailleerd genoeg omschrijft, heb je meestal al de oplossing.

Berichten: 28
Geregistreerd: 30 Nov 2013, 23:49

Re: Monocopter experimenteel ontwerp

Berichtdoor Luppie » 03 Dec 2013, 20:32

Ik zit te denken aan een IR-poortje met een pulsteller.


Ik heb ook veel zitten neuzen in de experimenten van Jack Crossfire op diydrones.com. Hij heeft een systeem gemaakt dat ook ongeveer op die manier werkt. Hij had in het donker 1 lichtbron en liet zijn monocopter daar naar kijken. Of andersom... het lampje op de monocopter werd door een camera bekeken...

Ik ga inderdaad uit van een (zeer) wisselend toerental. Het nadeel van jou optie (als ik het goed begrepen heb) is dat de lichtbron extern moet zijn want de monocopter draait immers in zijn geheel dus zou het ledje ook gewoon mee draaien. Om nu zelf met een lampje achter het ding aan te lopen was ook niet helemaal de bedoeling.

Ik klink misschien wel heel eigenwijs als ik weer terug kom op de magnetometer maar naar mijn idee moet alles hiermee kunnen werken. Vanuit gaande van de ideale situatie geeft hij (na omrekenen) een waarde van 0 tot 359 graden. Je hoeft nu alleen nog te tellen hoe snel 0 graden weer voorbij komt en je hebt zijn draaisnelheid.

Probleem van dit idee is direct de snelheid waarmee ik waarden krijg van de magnetometer. Maximaal 160Hz dus maar 16 meetpunten per omwenteling (vanuit gaande van 10 rps) dus dan moet ik al nul zeggen bij een waarde van tussen -384 en +12 graden omdat die altijd binnen 1 uitlezing vallen (360 graden / 16 meetpunten = 22,5 graden). Ik denk dat met 16 meetpunten/verstellingen van het roer per omwenteling te leven is.

Ik heb ook een zeer interessant documentje gevonden van hoburg en Houghton over hun "avionics". Hierin staat ook wel in grote lijnen hoe het zou moeten werken
http://www.jamesphoughton.com/2012/08/m ... onics.html
Hier de flowchart van hoburg en Houghton van hun software en een filmpje van hun project.
Afbeelding

als toevoeging deze flowchard staat "Our final control strategy looked mostly like this diagram, if you ignore the accelerometer pathways". Ze gebruikten blijkbaar 1 accelerometer om hun draaisnelheid te bepalen "Through some experimentation, we learned that we could actually do without one of the accelerometers altogether". The oscillatory signal from one accelerometer provides enough information over a full period to predict once a period what the orientation is."

Ik zal eens proberen om in mijn eigen woorden een programma te schrijven. Kunnen jullie alvast munitie verzamelen om het af te schieten :P

Berichten: 108
Geregistreerd: 07 Aug 2013, 21:34

Re: Monocopter experimenteel ontwerp

Berichtdoor KrisG » 03 Dec 2013, 21:26

Ik heb het filmpje nog eens bekeken en je hebt inderdaad gelijk, dat lichtsluis idee is niet haalbaar.
Maar het idee dat je op één of andere manier je rotatiesnelheid moet kennen blijft staan hoor.
In hoeveel stukken je 1 omwenteling verdeelt, is volgens mij iets om experimenteel vast te stellen. (Tenzij iemand het warme water al heeft uitgevonden natuurlijk :) )
In acht lijkt me een goed begin.
Kris
Als je het probleem gedetailleerd genoeg omschrijft, heb je meestal al de oplossing.

Berichten: 28
Geregistreerd: 30 Nov 2013, 23:49

Re: Monocopter experimenteel ontwerp

Berichtdoor Luppie » 03 Dec 2013, 22:42

Ik heb dat document nog eens doorgespit en daar kwam ik wel nuttige info tegen.

ze gebruikten een HS-55 Feather micro servo en die heeft " Speed:0.17 sec at 60°"
ik heb een Corona CS-918MP 0.07sec at 60° servo. veel sneller dus.

over het aansturen van de servo:
The microcontroller directly outputs a PWM signal to the servo at 50 hz, on
even numbered cycles.
blijkbaar dus 50Hz (5x per 0,1 seconde) en dat eens per 2 rotaties. ze sloegen elke keer 1 rondje over.

Mijn snelheid zal dus ook afhankelijk zijn van de duur van mijn loop.

over de magnetometer:
The earth’s magnetic field is sensed by a Phillips Semiconductor KMZ51 single
axis magnetometer.........signal is subsequently read by the microcon-troller’s on board 10-bit ADC at 100hz.


Dus voorlopig heb ik hoop dat mijn setup snel genoeg zou moeten zijn...

Volgende

Terug naar Gezamenlijke projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten