Historical project documentation. Content is maintained in GitLab.

Initialisation

Document/PreRequis/ListePieces/Construction/InitialisationChapitre Suivant

Première Initialisation du NG

Après avoir placer tous les éléments, il est temps de tester votre nouveau NG. Si ces tests sont concluants, vous pourrez commencer à flasher les différents processeurs installés.

Première mise sous tension

Pour la première mise sous tension, il est préférable de disposer d’une alimentation stabilisée avec limiteur de courant. De cette façon, vous limitez les risques de destruction de composants s’il y a court-circuit. Assurez vous d’enlever tous les éléments sensibles et non indispensables (contrôleur moteur, récepteur, capteurs) ainsi que le LPC2148. Vous limitez ainsi les dommages possibles.

Votre circuit ne doit pas consommé trop de courant. Avec les éléments ainsi retirés, il ne devrait consommé quasiment rien. Si la consommation est importante ou si le limiteur se déclenche, alors quelque chose ne va pas, vérifiez les soudures sur votre carte.

Si tout semble correct, éteignez et commencer par ajouter les différents éléments à l’exception des contrôleurs moteur. Répétez la procédure précédente. Le courant relevé doit être inférieur à 0,5A ( /!\ correct ?).

Si tout semble correct, éteignez et branchez les contrôleurs moteur. Vous êtes prêt à flasher les différents processeurs installés tel que décrit dans la section suivante.

Linux

Flasher le LPC2148

/!\ TODO

Flashet le Atmel 644p

/!\ TODO

Pour mettre les fusibles : avrdude -p m644p -c avrisp2 -V -P usb -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xfc:m

Flasher le Atmel 168

/!\ TODO

Pour mettre les fusibles : avrdude -p m168 -c avrisp2 -V -P usb -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0xf8:m

Connexion au NG à l’aide de l’UART0 ou UART1

Pour préparer la connexion, démarrer Minicom avec l’option -s en tapant minicom -s en tant que root. Allez dans Serial port setup et configurez le périphérique /dev/tttUSB0 à 115200 Bauds et 8N1. Sauvegardez la configuration avec Save setup as.. Comme nom, utilisez minirc.usb0. Vous pouvez maintenant démarrer Minicom avec l’argument usb0 pour charger votre configuration.

Répétez les opérations précédentes pour /dev/ttyUSB1 avec comme nom de fichier de configuration minirc.usb1.

Pour vous connecter à l’UART0, entrez la comande minicom usb0. Une fois valider par la touche Entrée, vous serez connecté à l’invite de commande du NG.

Connexion au NG à l’aide de l’USB

Pour préparer la connexion, démarrer Minicom avec l’option -s en tapant minicom -s en tant que root. Allez dans Serial port setup et configurez le périphérique /dev/ttyACM0 à 115200 Bauds et 8N1. Sauvegardez la configuration avec Save setup as.. Comme nom, utilisez minirc.acm0. Vous pouvez maintenant démarrer Minicom avec l’argument acm0 pour charger votre configuration.

Pour vous connecter à l’UART0, entrez la comande minicom acm0. Une fois valider par la touche Entrée, vous serez connecté à l’invite de commande du NG.

Windows

Flasher le LPC2148

/!\ TODO

Flasher le Atmel 644p

/!\ TODO

Flasher le Atmel 168

/!\ TODO

Connexion au NG à l’aide de l’UART0 ou UART1

/!\ TODO

Connexion au NG à l’aide de l’USB

/!\ TODO

Utiliser le Shell NG

En vous connectant au NG en USB ou en UARTS, vous voyez quelque chose de semblable quand vous pressez la touche Entrée la première fois :

Wolferl-NG, Version 0.42 pre-beta (non-public), Revision r2104
Copyright (C) 2007, 2008 by the UAVP Project, http://uavp.ch,
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Switzerland License
See: http://creativecommons.org/licenses/by-nc-sa/2.5/ch

Type 'show authors' for copyright owners
Type 'help' for a list of commands

#

La version et la révision visibles à la première ligne sont sans doute différentes. Il s’agit du statut de l’invite de commande de l’un des shells NG du NGOS.

Si vous entrez ps, vous verrez la liste des tâches en cours d’exécution :

# ps

  PID TTY         STATE    DESC
    0 /dev/usb    running  Terminal Task
    1 /dev/uart0  ready    Terminal Task
    2 /dev/uart1  ready    Terminal Task

Comme vous pouvez le voir, nous sommes actuellement connecté par USB, l’état indique ‘running’ au moment de l’exécution de la commande ‘ps’ demandée.

La commande help affiche les commandes shell disponibles.

Vérification du tableau des périphériques détectés

Maintenant, nous allons vérifier le tableau des périphériques. Comme un système d’exploitation standard, le programme NG vérifie tous les périphériques présents lors de son démarrage et le mentionne dans le tableau des périphériques (Device table). Ce tableau des périphériques est utilisé par NGOS pour activer ou non des modules internes (que l’on peut appeler pilote ou driver). Par essence, le tableau des périphériques vous présente la liste de tous les périphériques activés sur votre NG.

Pour vérifier le tableau des périphériques, entrez la commande show devices :

# show devices

Detected devices:

  Addr  Bus     Description

  0x52  I2C1    Holger BL-Ctrl (front)
  0x54  I2C1    Holger BL-Ctrl (back)
  0x56  I2C1    Holger BL-Ctrl (right)
  0x58  I2C1    Holger BL-Ctrl (left)
  0x00  ADC0    ADXRS MEMS Gyroscope (nick)
  0x01  ADC0    ADXRS MEMS Gyroscope (roll)
  0x02  ADC0    ADXRS MEMS Gyroscope (yaw)
  0x00  SPI0    LIS3LV02DQ 3-Axis Accelerometer
  0x00  UART1   u-blox GPS SuperSense LEA-4H
  0x00  UART0   ACT DSL Receiver

Cette liste peut être différente avec votre NG !

Comme vous pouvez le voir, j’ai actuellement 4 contrôleurs moteur connectés (pour être précis des BL-Ctrl). De plus, le système détecté 3 gyroscopes ADXR MEMS, un accéléromètre LISL 3-axis, un récepteur DSL ACT sur le port UART0 et enfin mais pas des moindre, un module GPS u-Blox sur le port UART1.

Si un périphérique n’apparait pas mais que vous être certain qu’il est connecté alors la détection encoure un problème. Vous devez éteindre votre NG et commencer à chercher la source du problème.. les contacts électrique sont-ils corrects ? est-ce que le périphérique est alimenté ? Essayez de chercher autour du processeur auquel est connecté le périphérique.

Si tous les périphériques sont correctement affichés, vous pouvez commencer à vérifier la configuration.

Basculer vers la Configuration par défaut

Au début, vous avez besoin de charger une configuration par défaut. Vous pouvez le faire en tapant set defaults :

# set defaults

All parameters reset to default values!
Switched to controller 'none'.

Cette commande réinitialise la configuration actuellement en mémoire avec les paramètres par défaut. Elle recharge également le tableau de comportements par défaut définis par les développeurs.

Choix du contrôleur de boucle fermée (closed-loop)

À présent, vous devez choisir et configurer le contrôleur de boucle fermée (closed-loop). La commande list ctrl liste les contrôleurs disponibles :

# list ctrl

Possible 'controller' settings:

    none        The do-nothing controller (proven)
    wolferl     The Wolferl PID controller (proven)
    bearing     Bearing-Hold controller (using 3 axis 1D Kalman) (flying)
    amir        Amir's current toy (3 axis 1D Kalman and more) (proven)
    rc-test     A 'Just forward the throttle' controller (proven)
    test        Amir's current test toy (only for testing purposes)

Nous vous conseillons d’utiliser le amir controller pour vos premiers essais. Pour choisir le contrôleur, entrez set controller amir :

# set controller amir

Activated controller 'amir'
Setting string 'controller' to 'amir'

Une fois cette opération terminée, vous êtes prêt à découvrir la configuration générale et celle du contrôleur.

Vérification de la Configuration Générale

Pour afficher la Configuration Générale, entrez show globals :

# show globals

Current global configuration:

  Name                 UAVP

  RC.ch.throttle       0
  RC.ch.nick           2
  RC.ch.roll           1
  RC.ch.yaw            3
  RC.ch.pot0           4
  RC.ch.pot1           5
  RC.ch.pot2           6
  RC.ch.pot3           7
  RC.ch.pot4           8
  RC.ch.pot5           9
  RC.ch.pot6           10
  RC.ch.pot7           11

  BAT.minimum          9.7

  HW.uart0.baud        115200
  HW.uart1.baud        115200

  HW.use.dtc           yes
  HW.use.acc           yes
  HW.use.compass       no

  HW.use.motor.F       yes
  HW.use.motor.B       yes
  HW.use.motor.L       yes
  HW.use.motor.R       yes

  RC.death.zone        1
  RC.show.drops        no

  RC.dev.primary       rcsum
  RC.dev.secondary     rcsum

  RC.dev.mix           primary

Vérifiez impérativement les variables RC.ch.* ! Elles définissent comment les canaux sont attribués aux fonctions. Vous pouvez vérifier les canaux RC avec la commande show rcsum avec un récepteur à accumulation de signal (rc-sum) ou avec la commande show dsl channels un récepteur DSL ACT comme c’est mon cas :

# show dsl channels

DSL Parser on uart0:

    Signal quality:     161
    Battery:            0
    Channel:            35

    -C00- -C01- -C02- -C03- -C04- -C05- -C06- -C07- -C08- -C09- -C10- -C11-
    -127  -002  +000  +000  -123  -128  -097  -108  -121  -122  +000  +000

DSL Parser on uart1:

    Signal quality:     0
    Battery:            0
    Channel:            0

    -C00- -C01- -C02- -C03- -C04- -C05- -C06- -C07- -C08- -C09- -C10- -C11-
     N/A   N/A   N/A   N/A   N/A   N/A   N/A   N/A   N/A   N/A   N/A   N/A 

Dans la cas présent, j’ai un récepteur DSL connecté.

Vous auriez pu également utiliser la commande loop rcsum, loop dsl uart0 ou loop dsl uart1 :

# loop dsl uart0

DSL on uart0

Press any key to stop...

-C00- -C01- -C02- -C03- -C04- -C05- -C06- -C07- -C08- -C09- -C10- -C11-
-127  -002  +000  +000  -123  -128  -097  -108  -121  -122  +000  +000

Quand vous avez identifié le numéro du canal droit, vous pouvez l’entrer avec la commande set <variable> <value> :

# set RC.ch.nick 2

Setting integer 'RC.ch.nick' to '2'

Repeat the above until all RC.ch.* variables are setup correctly.

Be sure to set a name for your configuration using the command set name MyNG:

# set name MyNG

Setting string 'name' to 'MyNG'

Vérification de la Configuration du Contrôleur

Ensuite, vous pouvez vérifier les variables dépendantes du contrôleur de boucle fermée. Le nombre et le nom de ces variables est variables en fonction des contrôleurs de boucle. Elles sont liées au contrôleur.

Pour afficher la liste des variables liées, entrez la commande show conf :

# show conf

Current system configuration:

  Controller           amir

  Tidle                20
  Treserve             20
  Tspinup              2

  Pnick                35
  Proll                35
  Pyaw                 200

  Dnick                200
  Droll                200
  Dyaw                 100

  Inick                70
  Iroll                70
  Iyaw                 140

  Kalman.Gyro.Q        0.00030000
  Kalman.ACC.Q         0.00010000
  Kalman.ACC.R         3.00000000
  Kalman.Cycle         1

  RCnickcorr           0
  RCrollcorr           0
  RCyawcorr            0
  RCthrottlehoover     100

  ACCnickcorr          0
  ACCrollcorr          0
  ACCyawcorr           0

  TRIMroll             0
  TRIMnick             0
  TRIMyaw              0

  RC.fact.nick         40
  RC.fact.roll         40
  RC.fact.yaw          80

Les informations ci-dessous sont différentes pour chaque contrôleur de boucle !

Comme vous pouvez le voir, vous pouvez paramétrer toutes les variables des contrôleurs de boucle. Vous pouvez les modifier avec la même commande que celle utilisée avec les variables générales.

Sauvegarder la configuration

Après avoir configurer tous les paramètres, entrez la commande conf store :

# conf store

Storing current configuration to slot 0 in flash memory sector 26... succeded!

Cette commande a pour effet de sauvegarder les configurations générale et contrôleur à l’emplacement de sauvegarde 0, emplacement par défaut. Vous pouvez lister les emplacements de sauvegarde avec la commande list conf :

# list conf

Currently occupied configuration slots:

  Default       Integral-Flight-38

  Slot 1        Integral-Flight-38
  Slot 2        HH-Flight-38
  Slot 3        Wolferl-Flight-38
  Slot 4        Integral-Flight-50

Comme vous le constatez, vous pouvez utiliser plusieurs emplacement de sauvegarde. La commande pour sauvegarde dans un emplacement spécifique est conf store <x> et conf load <x>. L’emplacement de sauvegarde par défaut est celui qui est chargé automatiquement à l’allumage du NG ou celui qui est utilisé par les commandes conf store et conf load sans nombre spécifié en argument.

Après avoir sauvegardé votre configuration dans l’emplacement de sauvegarde par défau, vous êtes prêt pour un test de démarrage reél.

Test de démarrage reél

Dans un premier temps, mantenez votre NG plaqué au sol avec votre main sur la partie central du châssis, afin d’éviter qu’il ne se retourne ou fasse un mouvement brusque lors de l’allumage des moteurs.

/!\ Faits très attention ! Votre NG est une machine puissante, ses hélices tournent très vites et peuvent occasionner des blessures graves !

Allumez votre RC, allumez votre NG. Placez le manche des gaz (Throttle/Yaw) dans la position la plus basse et le déplacer en bas à droite. Cela va initialiser la phase de démarrage avec le contrôleur sélectionné. Lorsqu’il est activé, votre NG fait tourner les moteurs pendant 2 secondes (paramètre par défaut). Déplacer le manche des gaz (Throttle/Yaw) en bas à gauche, pour éteindre les moteurs.

Vous ne devriez pas avoir de problèmes à ce niveau, le contrôleur n’ayant pas encore pris le contrôle. Dans la phase d’initialisation et jusqu’au moment où vous activez la phase de vol en déplaçant le manche des gaz vers le haut, le contrôleur n’est pas activée.

Aller activez le maintenant… Déplacez à nouveau le manche des gaz (Throttle/Yaw) en bas à droite. Attendez que l’initialisation du NG soit finie. Une fois que tout est prêt, déplacez légèrement vers le haut le manche des gaz afin d’activer le contrôleur de vol. Dés que vous commencez à augmenter les gaz, le NG quitte sa phase d’attente et le contrôleur de vol commence à contrôler les moteurs. C’est à ce moment précis que vous voyez si tout fonctionne correctement. Si votre NG essaie effectue des manœuvres bizarres, quelque chose ne va pas. S’il reste correctement sous votre main et commence à envoyer de plus en plus de poussée, tout est correct. Vous pouvez augmenter encore un peu les gaz et voir comme il est difficile de contrarier le contrôleur. À la fin de votre essai, ramenez les gaz à la position la plus basse et ensuite en bas à gauche. Cela éteind vos moteurs.ors.

{OK} Félicitations ! Votre NG est prêt pour un test en vol réel !