_______________________________________________________________
____ ____ ____ ____
[mailto:contact@flightzone.fr]
[./flightzonepag.html]
[./humeurpag.html]
La carte Arduino Le concept Arduino est basé sur une carte à microcontrôleur de la famille AVR, s'appuyant sur un code ouvert (open-source). Ce principe permet de limiter le coût de réalisation en supprimant l'achat des logiciels de programmation. Un logiciel/matériel " open source "évolue rapidement, puisqu'il est communautaire : chacun peut rentrer dans le détail de la structure, sans payer de droits, et amener sa pierre à l'édifice en proposant de nouvelles fonctionnalités tant matériel que logiciel. Pour cette réalisation, nous allons utiliser une carte Arduino Duemilanove USB. Cette carte très compacte intègre 14 broches d'entrées/sorties numériques, 6 entrées analogiques. Les entrées/sorties numériques, lorsqu'elles sont configurées en entrée vont pouvoir recevoir l'information venant d'un bouton poussoir ou d'un détecteur. Configurées en sorties, les broches vont permettre de piloter une LED, un moteur, un buzzer... La carte intègre une mémoire de 32Kb (ATmega328) dont 30 KB sont disponibles pour le programme utilisateur. L'alimentation se fait grâce à une tension continue comprise de préférence entre 8 et 12 Vdc. Vous pouvez soit la confier à une alimentation secteur type " calculatrice ", dans ce cas vous devrez disposer d'une prise secteur prêt de votre " Time Machine " ; soit, au vue de la faible consommation, utiliser un accu (nimh, lipo...) dans la plage de tension 8-12 Vdc... Bien évidement, ne souder pas les composants supplémentaires directement sur la carte Arduino, utiliser une carte fille, dite d' "essai ", ou au pire, utilisez des connecteurs débrochables que vous disposerez directement sur la carte. Pour toutes informations complémentaires concernant la base Arduino, je vous invite à visiter le site de référence en français d'Arduino : http://arduino.cc/fr/ Si quelques informations vous font encore défaut, le site original en anglais les complétera : http://arduino.cc/ Compléments électroniques Dans notre application, nous allons utiliser 6 LED's de couleurs connectées entre la masse et une sortie de l'Arduino au travers d'une résistance de 330 Ohms . La valeur de cette résistance permet de limiter le courant dans les LED à environ 15 mA, les sorties de l'Arduino permettant de délivrer jusqu'à 40mA, nous pouvons donc connecter directement les LED / résistances aux sorties, sans risque de destruction. Le Buzzer sera connecté directement entre sortie et masse. Pour simplifier la réalisation, j'ai décidé de concentrer toutes les sorties utilisées sur un seul connecteur : le port PD de la carte Duemilanove. J'utilise les broches 0 à 6 (soit 7 broches...) pour connecter respectivement les 2 LED vertes, les 2 Rouges, les 2 jaunes et le Buzzer... L'avantage étant, comme je l'ai dit de n'utiliser qu'un seul connecteur, l'inconvénient est que les broches 0 et 1 sont utilisées pour la communication du port USB (Rx et Tx). Il faudra donc débrancher les LED vertes lors du transfert du programme. Si vous préférer éviter cette contrainte, il est très facile de déplacer les LED vertes sur d'autres sorties disponibles (vous pouvez utiliser les broches 8 et 9 par exemple). L'alimentation se fera, pendant la phase de développement, avec un petit bloc secteur de type " calculatrice ". Pour l'utilisation en salle, l'alimentation sera confiée à une Lipo 7,4 Volts 1000 mAh, largement suffisante pour de longues heures de vols ! La programmation L'environnement Arduino est composé d'une fenêtre principale dans lequel on va écrire son code. Après écriture, la compilation va générer un code exécutable par le processeur. La phase de compilation permet également de vérifier qu'il n'y a pas d'erreurs syntaxiques dans votre programme (en rouge dans la partie base de l'éditeur). Une fois le code compilé, il suffit de le transférer dans la carte cible pour pouvoir le tester... A noter, que la version 018 du logiciel Arduino est disponible avec des menus en français (voir site http://arduino.cc/fr/) en libre téléchargement. Ce logiciel intègre plusieures applications d'exemples, qui vous présenteront les principales fonctions de programmation. Le programme Pour simplifier la compréhension du programme, j'ai utilisé une structure linéaire. Ce type de structure de programmation n'est pas optimal en terme de " consommation " mémoire, mais dans une application simple comme la " Time Machine ", elle est tout à fait adaptée. La partie entre /* et */ est un commentaire, elle rappelle la position des LED à connecter. En règle générale, toutes les lignes commençant par " // " sont des commentaires servant uniquement à faciliter la relecture du programme. La partie précédé du commentaire : " // déclaration variables ", permet d'affecter une valeur à un nom. Si vous souhaiter modifier l'implantation des diodes verte, c'est à ce niveau qu'il faudra agir en remplacer, par exemple " int verte1 = 0 " par " int verte1 = 8 " et ainsi affecté la diode verte1 à la sortie 8... Dans la partie suivante : " //affectation I/O et sens ", va être affecté le nom (et surtout sa valeur) à une sortie ou une entrée physique. Cette partie qui débute par " void setup() " est obligatoire sur un processeur Arduino. On rentre ensuite dans le programme principal. Là encore, la partie " void loop () " est obligatoire. C'est la boucle de programme principale. J'ai fait appel à quelques sous programmes pour alléger l'écriture globale. Prenons par exemple le sous programme " buzzer_bip " : il est appelé dans le programme principal (void loop() ) par l'instruction : " buzzer_beep() ; " lorsque le processeur rencontre cette instruction, il se déroute vers le sous programme commençant par l'instruction " void buzzer_beep(){" et finissant par la " } " suivante. Il exécute le contenu de cette partie, puis reviens au programme principal. Le programme utilise : - des fonctions d'affectations : " digitalWrite (buzzer, LOW) ; " permet de mettre à l'état bas (0 Volt) la broche " buzzer " - Des fonctions de boucle, commençant par " for ", elles permettent de répéter un nombre de fois définit une action. Dans le programme vous avez 3 boucles intégrant le paramètre " tempo_cycle<720 ". c'est ce paramètre qui va déterminer la durée initiale du cycle. 720 correspond à 6 minutes, auquel il faudra rajouter le temps de pré-alarme et le temps d'alarme pour obtenir le cycle complet. En changeant cette valeur par " tempo_cycle<1080 ", vous obtiendrez un temps de 9 minutes, soit un temps de cycle total de 10 minutes (avec pré-alarme et alarme). Cette valeur est donnée par la formule suivante : 2 x 60 x nb_minutes = valeur Attention, ce n'est pas une fonction chronométrique, vous n'aurez donc pas une durée très précise. - Le troisième type de fonction utilisé est la fonction de condition " if "... Si " l'élément testé à tel valeur " alors, je fais " ceci ", sinon je fais " cela "... En résumé un programme très simple, que vous pourrez enrichir en ajoutant de nouvelles fonctions. Il ne vous reste plus maintenant qu'à vous lancer...Peu être un grand pas pour certain, mais sans doute un petit pas en avant pour votre association !
Le concept " Time Machine " En hiver, l'aéromodélisme indoor attire de plus en plus d'adeptes, hélas la taille des gymnases et les créneaux pendant lesquels on peut en disposer, ne sont pas extensibles... On se retrouve vite à devoir gérer des tours de vols, ce qui peut devenir des sources de conflits entres membres de l'équipe... La " time machine " est une horloge qui cadence les tours de vols. Le principe : 3 couleurs : vert, rouge, jaune L'équipe avec les pinces verte vole... Pendant ce temps, les pilotes prêts à voler prennent sur la " time machine " une pince à linge rouge... 7 minutes ce sont écoulés...la " time machine " passe au rouge. Les pilotes vert se posent, rangent leurs pince et laisse la place aux pilotes rouge pour 7 minutes de vols, pendant ce temps les pilotes suivant s'emparent des pinces jaune...et cætera... Pourquoi la time machine plutôt qu'une horloge ? En plus de cadencer des tours de 7 minutes, la time machine lancera une pré-alarme (buzzer) 60 secondes avant la fin, puis une alarme de fin 20 secondes avant la fin. Ainsi, impossible de rater son tour ! Il y aura toujours un pilote pour rappeler que c'est fini, et aucune discussion possible, c'est la " time machine " qui a décidé ! Combiens de pilotes ? Dans mon club, comme nous avons beaucoup de pratiquants en hélicoptères birotors et en avions de petites envergures, nous avons autorisé 5 pilotes en vols simultanés. Par contre, nous avons quelques pratiquants en vol indoor de grande taille ou en CP de classe 250 ou 450. Pour eux, possibilité de faire du vol solo. En pratique, chaque couleur est constitué d'une pince " solo " et de 5 pinces " normales ". Une seule série de pince peut être prise (" solo " OU " normales "), si le pilote veut voler seul, il prend la pince " solo " et bloque ainsi les autres pinces. Il peut éventuellement autoriser une seconde personne à voler avec lui. Si la pince solo n'est pas prise, le pilote prend une des pinces " normales " restantes, à concurrence de 5 pilotes maximum par créneau de vol. En limitant le temps de chaque vol à 7 minutes, on aura plus d'une 15 éne de cycles de vol en l'espace de 2 heures ! De quoi permettre à tous d'être 100% satisfait de sa séance de vol. Bien évidement, comme c'est du programme, il est très simple de modifier la durée pour passer, par exemple, à 10 minutes de vol par cycle. La seule gymnastique à acquérir est de replacer sa pince sur la " time machine " à la fin de son créneau de vol. Actuellement, le vol indoor est pratiqué à 90% avec des radios 2,4GHz, donc la gestion des fréquences n'est plus (trop) un soucis. On peut, bien évidement compléter la " time machine " par un classique " tableau des fréquences "... La mécanique Rien d'extraordinaire dans cette partie... la façade de la " time machine est imprimée sur une imprimante couleur au format A4, avec des emplacements pour les 3 jeux de pinces sur le dessus et les deux cotés. Cette feuille est plastifiée pour prévenir tout vieillissement prématuré, puis collée sur un support PVC rigide ou contreplaqué fin de même format. La plaque est ensuite collée sur une boite de taille inférieure pour permettre l'accrochage des pinces sur le pourtour. La boite va permettre de protéger l'électronique et la batterie, elle servira de charnière pour positionner facilement la " time machine " et accueillera également le rangement des pinces en fin de séance. Quelques trous pour passer les LEDS et pour les vis de fixations de l'électronique, nous obtenons ainsi un ensemble compact, pratique et résistant.
Cette petite réalisation a pour but, en plus d'être un outil utile lors des séances de vol indoor, d'être le tabouret qui va faciliter le positionnement de votre pied dans l'étrier de l'électronique micro-programmée. Vous allez découvrir de nouveaux horizons et reculer les limites de vos compétences...Après la lecture de cet article, vous pourrez envisager la réalisation d'un système d'arrosage automatique ou bien, en ajoutant un gyroscope à votre carte Arduino, réaliser l'électronique de contrôle d'un quadri-rotor...mais cela est une autre histoire, que j'espère vous raconter bientôt !
Time Machine Gestion de temps de vol
[./cz_clubflightzonepag.html]
[./fz_premier_bipag.html]
[./fz_premier_avionpag.html]
[./hz_walkera_lama2pag.html]
[./hz_esky_lamapag.html]
[./hz_esky_big_lamapag.html]
[./hz_walkera_lama_400dpag.html]
[./hz_walkera_hm38pag.html]
[./hz_cb180pag.html]
[./hz_bel_cp_v2pag.html]
[./wz_vaporpag.html]
[./wz_bee_onepag.html]
[./wz_minium_kyoshopag.html]
[./wz_freshpag.html]
[./wz_innovatorpag.html]
[./wz_pitts_eppag.html]
[./wz_hydrofoampag.html]
[./tz_lexiquepag.html]
[./tz_lipo_et_copag.html]
[./tz_techno_radiospag.html]
[./tz_passage_mode1_2pag.html]
[./tz_spektrum_dx6ipag.html]
[./tz_time_machinepag.html]
[./tz_comm_4v_helipag.html]
[./hz_meca_birotorpag.html]
[./hz_reglage_birotorpag.html]
[./hz_tuning_lamapag.html]
[./hz_look_xtremepag.html]
[./tz_parcours_agilitypag.html]
[./tz_obstacles_agilitypag.html]
C a c h e r / M o n t r e r M e n u
[Web Creator] [LMSOFT]