Initialisation
| Document | /PreRequis | /ListePieces | /Construction | /Initialisation | Chapitre 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 TaskComme 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 ReceiverCette 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 primaryVé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 +000Quand 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 80Les 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-50Comme 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 !