paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Need for helo to develop a subsystem


From: Felix Ruess
Subject: Re: [Paparazzi-devel] Need for helo to develop a subsystem
Date: Mon, 7 Apr 2014 18:01:43 +0200

Hi Bruno,

I know low level docs are not great, but we are slowly trying to improve it bit by bit...
If anyone want's to help out (especially starting to organize the doxygen comments into appropriate groups, etc...), that would be great!

low level code organization is roughly:
- sw/airborne/mcu_periph contains interfaces/drivers for MCU peripherals like I2C, SPI, ADC, etc...
- sw/airborne/peripherals contains drivers for external peripherals, like sensor chips, etc..
- sw/airborne/arch/_x_ contains the parts of the implementations that differ according to the MCU architecture (probably nothing to do for you here)
- sw/airborne/boards contains board definitions, pinout, etc... (don't need to touch this unless you want to support a new board)

Regarding I2C, all the functions you should need in your driver (as module or subsystem) are i2c_transmit, i2c_receive or i2c_transceive.
They will add your transaction to the queue and you don't have to worry about the timing and checking the bus yourself...

We tried to write reusable drivers for peripherals/chips (sw/airborne/peripherals) that you can then use to e.g. combine them in one IMU driver that uses serveral perhipherals).
See for example the hmc58xx I2C mag peripheral: https://github.com/paparazzi/paparazzi/blob/master/sw/airborne/peripherals/hmc58xx.c
Then you can instantiate the peripheral in e.g. a module and read the data, http://docs.paparazziuav.org/latest/module__mag_hmc58xx.html

Hope that helps a bit...

Cheers, Felix


On Mon, Apr 7, 2014 at 5:11 PM, bruno jouvencel <address@hidden> wrote:
Hi Felix

Thanks for your answer. I looked this page of wiki. My problem, I don't understand the général organization of paparazzi for low levels of software. It's difficulte to understand the organization or directories between low level and hight level to work with bus like I2c or Spi etc..
I begin to build a module because it's more easy.  
More precisely, if I test for example i2c_idle before to write data on the bus, it seems that's necessary to stay  that ressource is free so, my processus is not in real time of this case.

In first, I want to developp automatic landing and obstacle avoidance, using us sensor and video, in second,  I want tested a new control law based on path tracking ( not trajectory tracking). For second work, I need to developp a subsystem I beleive.

Cheers Bruno



Hi Bruno,

there is a rather general page on the firmware architecture: https://wiki.paparazziuav.org/wiki/FirmwareArchitecture
Can you provide some more information on what subsystems exactly do you want to add?

Cheers, Felix


On Thu, Apr 3, 2014 at 7:03 PM, AFISH <address@hidden> wrote:

Sent from Mailbox for iPhone


On Thu, Apr 3, 2014 at 2:00 AM, bruno jouvencel <address@hidden> wrote:

Hi

I am specialized on the control and I try to integrate in paparazzi my controllers with certain sensors.
I tested my programs under lisa without paparazzi, it is OK (US -i2C, for example). Regrettably I do not how understand to integrate my programs in paparazzi. Can anybody explain to me how we make exactly to develop a substem?

thank


_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel




_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


--
Bruno Jouvencel

Professeur Université de Montpellier 2

Responsable Master Robotique Automatique

LIRMM

UMR CNRS 5506

tel 04 67 41 85 60

Port 06 89 48 69 90


_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]