Hulp bij Multicopter controller board selectie

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • JR_
  • Registratie: Februari 2015
  • Laatst online: 01-09-2020
Hallo,

Ik ben bezig met het bouwen van een Quadcopter. Momenteel gebruik ik een Raspberry PI B+ als Main controller.

Voor het aansturen van de brusless motoren ben ik van plan om de volgende ESC's te gebruiken: http://hobbyking.com/hobb...ler_SimonK_Firmware_.html

Het nadeel is dat de raspberry PI maar twee hardware matige PWM outputs heeft. De andre (twee) PWM outputs zouden dmv soft PWM kunnen worden gerealiseerd. Na wat zoekwerk op het internet krijg ik de indruk dat de soft pwm niet geschikt is om met zo een hoge frequentie te gebruiken (https://projects.drogon.n...gpi/software-pwm-library/).

Een optie zou een aparte servo driver interface kunnen zijn (http://www.adafruit.com/products/815). Deze wordt via I2C aangestuurd. Ikk weet alleen niet wat voor invloed dit heeft op mijn MPU9150 die ook ok I2C werkt?

Een mogelijke oppvolger kan de beaglebone black zijn. Deze lijkt voldoende PWM pinnen te hebben die met een acceptable PWM frequentie zijn aan te sturen. hebben jullie hier ervaring mee? Zijn er nog overige alternatieven?

Ik heb ook voor overige bordjes gekeken (PRi 2, Banana PI en Udroid C1). Deze hebben hebben het voordeel sneller te zijn dan een RPi B+ en beaglebone black. Maar helaas ook weer een tekort aan PWM.

Is het niet zo dat naar mate de CPU snelheid omhoog gaat de soft PWM frequentie ook verder omhoog kan? Wat zijn hier de beperkingen?

Alvast bedankt voor jullie input :)

[ Voor 12% gewijzigd door JR_ op 02-02-2015 13:30 ]


Acties:
  • 0 Henk 'm!

  • Infant
  • Registratie: Januari 2008
  • Laatst online: 21:10

Infant

It's a floating Dino!

Die software PWM dinges draait volledig in userspace?

De linux kernel heeft m.i. voldoende snelheid en nauwkeurigheid om een redelijk bruikbaar pwm signaal te produceren. Je zou kunnen kijken of er kernel modules bestaan die op de RPI gaan werken. Ideaal gaat het niet zijn.

Zolang je de i2c chipjes ieder een ander adres geeft, lijkt me dat een beter idee.
Is het niet zo dat naar mate de CPU snelheid omhoog gaat de soft PWM frequentie ook verder omhoog kan?
Dat zou je denken. Op 700MHz kun je een 8 bit pwm maken die op ~2.7 MHz draait. Je moet dan elke 256 kloktikken een vergelijking doen, en een pin wiebelen... en misschien nog wat andere dingen.

Dan blijft er weinig tijd over om nog allemaal lompe dingen te daan doen, zoals... een kernel draaien.

De reden om zo'n SOC bordje in een quadcopter te proppen, is om het video en networking te laten doen. That's it.

Als je in eerste instantie alleen motor control en controle met een afstandsbediening wilt doen, gaat een Arduino achtig ding veel praktischer zijn. Die beschikken over meer hardware PWM uitgangen, en je kunt daar veel eenvoudiger nauwkeurige timing mee halen.

Acties:
  • 0 Henk 'm!

  • TNW
  • Registratie: Januari 2007
  • Laatst online: 04-10 23:01

TNW

Infant schreef op maandag 02 februari 2015 @ 14:38:

Als je in eerste instantie alleen motor control en controle met een afstandsbediening wilt doen, gaat een Arduino achtig ding veel praktischer zijn. Die beschikken over meer hardware PWM uitgangen, en je kunt daar veel eenvoudiger nauwkeurige timing mee halen.
QFT, voor tijdskritische dingen als motoren zo snel mogelijk aansturen op basis van een accelerometer heb je een realtime OS nodig, niet zoiets als Linux waarbij allerlei zaken cycles willen hebben.
Flight controllers zijn dan ook vrijwel altijd dedicated microprocessoren.

Weblog | Straling!


Acties:
  • 0 Henk 'm!

  • JR_
  • Registratie: Februari 2015
  • Laatst online: 01-09-2020
Bedankt voor de reacties!!

Ik heb besloten om een PWM driver te kopen die m.b.v. I2C kan worden aangestuurd (http://www.adafruit.com/products/815). Ook zal ik een RPi 2 aanschaffen (gewoon omdat het kan :))

Ik denk dat m.b.v. een linux gebaseerde bordje je een prima quadcopter kan bouwen (https://erlerobotics.com/blog/product/erle-brain/)! Wel moet je selectief zijn met je acties en goed opletten wat voor services/deamons je op de achtergrond wil laten meedraaien.

Voor mijn RPi gebruik ik een gestripte Raspbian image (http://blog.qruizelabs.co...ard-raspbian-installation). Arch zou waarschijnelijk een betere optie zijn maar heb dit nog niet geprobeerd.

De RPi firmware en Ground Station schrijf ik in C#. Ik haal bijv. momenteel een frequentie van 250 Hz voor mijn IMU MPU9150 (met de standaard I2C bus snelheid). Ook monitor ik de RPi CPU continue (max 30%).

Ik zal het systeem nog verder moeten opbouwen en duur en stress testen moeten uitvoeren om te kijken wat de invloed hiervan is.

[ Voor 3% gewijzigd door JR_ op 03-02-2015 14:24 ]