Bouwverslag: zelfbouw flight controler op basis van Arduino Uno

Discussie in 'Multicopters bouwverslagen' gestart door JoopB, 31 jan 2014.

  1. JoopB

    JoopB

    Lid geworden:
    10 jan 2013
    Berichten:
    2.181
    Locatie:
    Zwolle
    Er zijn weer enkele weken voorbij en het is tijd voor de volgende stap. Het frame is af en functioneert geheel naar wens en het tijd om de hardware (weer) onder handen te nemen. In het onderstaande filmpje maak ik een power distribution board waarmee ik individueel de stroom kan meten van iedere motor.

    De volgende stap zal een nieuwe flight controller zijn met een grotere processor. Ik loop langzaam een beetje vast met de ATmega328 met 32kb ruimte. En omdat de reflow hotplate goed zijn werk doet hoop ik alle kleine sensoren (gyro, accelerometer, barometer, etc.) direct op de PCB te solderen.



    Als ik deel twee van de video af heb zal ik deze ook hier plaatsen.
     
    plevrier vindt dit leuk.
  2. stefanfr

    stefanfr

    Lid geworden:
    3 mrt 2016
    Berichten:
    2
    Locatie:
    Heeze
    Weet er hier misschien iemand een goede site waar goed uitgelegd word hoe de "auto-leveling mode" werkt?
    Ik vind overal alleen meer halve stukjes uitleg en op iedere site vind ik weer wat anders.
    Ondertussen heb ik voor elkaar dat de waarden van de accelerometer in m/s2 word weergegeven.

    Ik heb nu deze berekeningen gevonden:

    accel_roll = atan2(Ax,Az) * RAD_TO_DEG
    accel_pitch = atan2(Ay,Az) * RAD_TO_DEG

    Hier krijg ik dus de "Angle" uit, correct?

    Daarna vond ik deze formule:
    [​IMG]

    Kan ik deze dan op de volgende manier invullen:
    gyro_roll_input = (gyro_roll_input * 0.8) + ((gyro_roll / 57.14286) * 0.2) * accel_roll;
    gyro_pitch_input = (gyro_pitch_input * 0.8) + ((gyro_pitch / 57.14286) * 0.2) * accel_pitch;

    Of zie ik hier iets over het hoofd?
     
  3. JoopB

    JoopB

    Lid geworden:
    10 jan 2013
    Berichten:
    2.181
    Locatie:
    Zwolle
    Ik vrees dat je inderdaad wat zaken over het hoofd ziet ;) Wel leuk om mijn eigen code hier weer terug te zien.

    De gyro_roll_input is in graden per seconden. De waarde in de variabele accel_roll is in graden. Deze kan je niet zomaar met elkaar vermengen. Je moet eerst de gyro waarde omrekenen naar graden. Dit kan je doen door de gyro data te integreren (optellen over tijd). Pas daarna kan je de gyro hoek corrigeren met de accelerometer.

    Een goede uitleg over IMU kan je hier vinden:
    http://www.starlino.com/imu_guide.html
     
  4. stefanfr

    stefanfr

    Lid geworden:
    3 mrt 2016
    Berichten:
    2
    Locatie:
    Heeze
    Bedankt voor de link deze had ik nog niet gevonden.

    Kan ik de Angle van de gyro berekenen door:
    Angle_gyro = Angle_gyro + gyro_roll_input * dt

    Waarin dt 0.004 is ofwel de 4ms loop van de arduino (gebaseerd op het filmpje waar je zei dat de quadcopter 250 correcties per seconde maakt)
    En wanneer ik deze dan toepas aan de receiver input. kan ik hier mee de juiste PID
     
    donderss2 vindt dit leuk.
  5. JoopB

    JoopB

    Lid geworden:
    10 jan 2013
    Berichten:
    2.181
    Locatie:
    Zwolle
    Sorry voor de late reactie.

    Je berekening klopt. Je moet alleen wel zorgen voor de juiste conversie van de gyro data invult voor gyro_roll_input. De gyro_roll_input * 0.004 levert je geen bruikbare hoek op. De informatie hiervoor kan je vinden in de datasheet van de gyro.
     
  6. Naqui Nehal

    Naqui Nehal

    Lid geworden:
    26 feb 2017
    Berichten:
    1
    Locatie:
    Hyderabad,India
    Hello ..
    This is Naqui Nehal.
    I am a suscriber or Joop Brokking and followed all the steps to make a multicopter, All which I had successfully made.
    I am Further patenting position to hold, real time aerial photogarphy, obstacles detection, follow me.
    But all thesis specification take a lot of time, so I need your participation in bumping a copter withmulti specification.
     
  7. Low_E

    Low_E

    Lid geworden:
    25 apr 2007
    Berichten:
    1.417
    Locatie:
    Dworp - Brabant - Belgiƫ
    knap zeg. ik volg mee
     

Deel Deze Pagina