GithubHelp home page GithubHelp logo

linuxdronelab / mpu6050_driver Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 382 KB

un driver rpmsg di esempio che riceve i campioni gyro e accel di mpu6050 e li manda in output su un buffer iio

Makefile 5.37% C 75.48% Shell 19.14%

mpu6050_driver's People

Contributors

o8o avatar

Watchers

 avatar  avatar

mpu6050_driver's Issues

Implementazione PID: spostare su PRU0

Il kernel non supporta calcoli in virgola mobile.
Togliere la bozza di PID dal mpu6050_driver e spostarlo su PRU
Implementazione come da specifica:
PID K Module del 15/01/2019

Frequenza di accesso dati RC: 10Hz

il segnale PPM da RC deve essere gestito a 10Hz:

  • usare contatore cicli di clock per gestire la frequenza corretta.
  • sincronizzare con interrupt DMA completion per il canale RC (1)
    Inizio Ricezione:
  1. contatore cicli di clock >= 20000000
  2. start ecap
  3. stop contatore cicli di clock

Fine Ricezione

  1. ricevo interrupt EDMA completion.
  2. stop ecap
  3. trasferimento dati e clean del canale
  4. avvio contatore cicli di clock

Realizzazione buffer iio per info e configurazione

Progettare i buffer iio necessari per la configurazione dei sensori e per le informazioni da essi fornite.
Inoltre considerare informazioni che devono essere fornite da ARM verso PRU (come YPR, altitudine, etc) laddove sia necessario

Stabilizzare estrazione dati RC

Correggere su pru-components-bridge l'estrazione dei dati RC da quanto raccolto in ecap.
In questa prima implementazione prendo la prima occorrenza del segnale PPM. Probabilmente serve l'ultima completa (tutti gli otto canali) disponibile.
Eseguendo il trace dei dati estratti si notano 'scatti' di valori improvvisi. Verificare da cosa derivano.
Scartare sequenze non complete

MPU6050. Data Ready come Interrupt

Oggi si verifica la presenza dei dati via I2C.
Configurare interrupt su MPU6050 (per emetterla) e su PRU (per intercettarla).
Rende più rapido il ciclo di aggiornamento.

Client ARM per configurazione sensori e controllo di secondo livello

Realizzare un client ARM che gestisca la configurazione via iio e realizzi il sistema di controllo di secondo livello.
Il sistema di controllo di primo livello è gestito dalle PRU stesse ed è basato sulla regolazione delle velocità angolari.
Il sistema di controllo di secondo livello è gestito via ARM ed è basato sul controllo dell'assetto (YPR), della altitudine e della posizione

Riconoscimento comandi RC

  1. RC spento => spengo motori
  2. Thrust minimo e PID minimo => attiva 'disarm motors'
  3. Thrust minimo e PID centro con attivato 'disarm motors' => disarma i motori
  4. Thrust minimo e PID massimo => attiva 'arm motors'
  5. Thrust minimo e PID centro con attivato 'arm motors' => arma i motori
  • eventuali altri comandi (esempio: attivazione calibrazione, etc)

Sensibilità stick RC configurabile

Gli stick del RC hanno un range di valori cablato:
YAW [-60LSB,+60LSB]
PITCH [-250LSB,+250LSB]
ROLL [-250LSB,+250LSB]
THROTTLE [-500LSB,+500LSB]

Rendere configurabile le costanti numeriche.
Verificare cosa configurare in modo da evitare calcoli per i fattori in virgola fissa.

Calibrazione Gyro offset

Realizzare su pru-rpmsg-bridge la calibrazione dinamica del Gyro sui primi 10.000 campioni.
identificare offset gli offset come media dei campioni letti.

Modulo Device Tree per MyLinuxDrone

Definire un DTS che definisca la configurazione per il drone.
Attualmente si utilizza:
uboot_overlay_addr0=/lib/firmware/PRU-ECAP-00A0.dtbo
uboot_overlay_addr1=/lib/firmware/BB-PWM0-00A0.dtbo

Togliere configurazioni inutili, riportare su un unico file ed adeguare uEnv.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.