Pour une expériencenet et une sécurité optimale, mettez à jour votre navigateur. Mettre à jour maintenant
J'essaie ici d'aller plus en avant dans le concept du foil rotatif, déjà présenté sur ce blog, mais juste en mode texte.
Pour commencer j'ai essayé de faire un schéma cinématique. Pour cela, j'ai de nouveau cherché les outils existant et j'ai trouvé le logiciel openmeca qui permet assez rapidement de réaliser un schéma cinématique, de l'habiller de géométrie très basique, de faire une animation cinématique ou même une simulation dynamique. Malheureusement un petit bug dans l'enregistrement du fichier de sauvegarde ne me permet pas de présenter une animation pour l'instant, mais voici une première image du concept.
Le plan marron au dessus représente une planche à voile ou un bateau.
La partie en rose représente un mât de foil vertical ("shaft" en anglais)
La partie en violet représente le foil rotatif, relié au shaft par une liaison pivot.
Le foil est excentré par rapport à l'axe de rotation grâce à un petit mât, afin de s'orienter sous l'effet de sa portance.
On considère dans un premier temps que la densité du foil est égale ou proche de celle de l'eau, ce qui revient à dire que les forces volumiques (de gravité et d'Archimède) sont négligés devant les forces hydrodynamiques.
Si l'axe de rotation est parallèle à l'écoulement, il y a une invariance par rotation et le foil étant symétrique droite/gauche, il peut être à l'équilibre dans n'importe quelle position.
Si l'on considère également que le profil du foil est symétrique et l'angle d'attaque par rapport à l'axe de rotation nul, la portance sur le foil est alors nulle. On peut s'attendre à ce que l'angle de rotation du foil soit marginalement stable (la vitesse de rotation tend vers zéro sous l'effet de la traînée et de la portance créée sur le mât, mais la position peut dériver sous l'effet de la moindre perturbation).
On considère maintenant une position initiale du foil vers le haut (le foil fait un T à l'endroit). Et l'on vient considérer l'effet d'un changement d'assiette de l'ensemble.
Si le "nez" de l'axe de rotation va vers le haut ("pitch up"), une portance sera créée sur le foil orientée vers le haut. La configuration reste symétrique, ce qui permet de dire que l'on reste à l'équilibre. Cette position d'équilibre est stable. Pour s'en convaincre, imaginons une perturbation de la position du foil à 90° vers la droite. Le mâtereau est alors à l'horizontale et le foil à la verticale. l'angle d'attaque du foil est devenu nul, mais le mâtereau a maintenant un angle d'attaque ce qui crée une portance vers le haut et un retour vers la position d'équilibre.
Si le "nez" de l'axe de rotation va vers le bas ("pitch down"), une portance vers le bas sera crée sur le foil. Mais cette fois, cet équilibre est instable. Il existe une nouvelle position d'équilibre foil tête en bas.
On voit ici que c'est le mâtereau qui donne la stabilité grâce à une double action :
D'autres configurations stables sont envisageables en reprenant ces deux principes.
On peut également vouloir au contraire compenser l'effet du mâtereau en rajoutant une pièce similaire du côté opposé au foil.
On considère maintenant l'effet d'un angle de calage du foil.
Si l'on reprend le scénario ou l'axe de rotation est parallèle au flux, si on rapproche le bord de fuite de l'axe de rotation on va créer une portance vers l'extérieur. Cette portance étant tangentielle, elle ne modifie pas la symétrie et n'a pas d'effet direct sur l'équilibre ou la stabilité.
On pourrait donc de même obtenir une force tangentielle vers l'intérieur en éloignant le bord de fuite de l'axe de rotation.
To be continued.
Après quelques années de pause, je reprends ce blog commencé il y a plus de 10 ans.
Depuis 10 ans, il y a eu des progrès considérables sur le sujet du pilotage automatique des cerfs-volants que ce soit pour la production d'électricité, ou la traction principale (kiteboat) ou auxiliaires des bateaux.
A quelqu'un qui s'intéresserait aux actualités sur le sujet, je recommanderais les deux sites suivant :
Les premiers systèmes industriels commencent (enfin) à faire leur preuve en AWE avec les premières connexions aux réseaux et la validation des courbes de performances, mais de nombreuses entreprises ont coulé entre-temps (Makani, KPS, Ampyx power) ou ont connu des phases difficiles de réduction de personnel (SkySails, Airseas, ...).
La phase de développement commercial aura-t-elle lieu ?
Du côté des kiteboats, WingIt propose un pilote automatique sur étagère. Le système a pu être utilisé par Francisco Lufihna sur une traversée de l'Atlantique, non sans quelques difficultés (le pilotage était finalement principalement au joystick). Le système devait être commercialisé avec le yacht Silent 60, mais la compagnie autrichienne a fait faillite.
Maloric propose également un système pour les petits bateaux (encore en développement).
Le projet RaceForWater s'est arrêté avec le Covid. Pas de kite SkySails sur le nouveau projet Modx70 (notamment développé par d'anciens naviguants).
Beyond The Sea a récemment réalisé une première navigation hauturière d'Arcachon à Lorient sous pilote automatique de l'aile birdkite à bord du Seakite, déjà testée auparavant sur le Deo Juvante.
De mon côté, j'ai pu travailler sur le pilotage du kite chez Airseas (pour la traction auxiliaire des navires de commerce).
Chez Syroco, j'ai pu travailler sur le pilotage automatique du cerf-plongeant et sur le contrôle par joystick comme je le faisais sur la plage il y a 10ans, mais de manière beaucoup plus robuste pour contrôler ce qui est probablement la première maquette de kiteboat pilotable. Le projet de record de vitesse est malheureusement arrêté faute de sponsor.
Auparavant j'avais pu travailler avec Groupama Team France sur le contrôle automatique des foils qui est devenu standard sur les voiliers avec le TF35 et maintenant l'AC40. Ces systèmes électroniques étaient coûteux et réservés aux grands bateaux, mais de ce côté une miniaturisation est en marche (voir rctestflight, zyx...).
Aujourd'hui j'aimerais cependant relancer le concept d'un kiteboat à foil avec régulation automatique du kite et du foil. Le projet allemand cargokite propose ce concept pour du transport de container, mais je pense que c'est à trop grande échelle pour ce concept.
Le projet de Julien Hatin de mini à foil est aussi assez proche, mais n'aura pas de pilote automatique du kite (en tout cas pour les courses). Le concept n'a pas encore été dévoilé mais a pu être testé en navigation tractée (maquette et mini 6.50).
En plus de ces projets, je souhaiterais que le foil soit orientable pour s'opposer à la traction du kite, comme sur l'aile d'eau, sur Vestas Sail Rocket ou sur SP80.
J'avais déjà présenté l'idée de foil rotatif sur ce blog, mais seulement en texte.
Voici quelques unes des étapes de développement que j'envisage :
Mes ressources sont cependant assez limitées (ressources personnelles + 1 jour par semaine libéré après passage à 4/5).
Je recherche donc aussi des applications potentielles susceptibles de me fournir une contrainte sous la forme d'un engagement à sortir quelque chose.
J'ai le droit de facturer, mais malheureusement, j'ai un blocage de Syroco sur tout ce qui est lié à l'efficacité énergétique et la performance dans le domaine du maritime, contrainte qui pourrait cependant être levée en fonction des projets.
Voici cependant les applications que j'envisage :
Je réfléchis depuis quelques temps à une nouvelle version de l'aile d'eau qui serait utilisable par un simple kiter, un peu comme une évolution du C-Glider.
Dans un premier temps, il s'agirait de concevoir un système s'adaptant sur un foil de kite/planche ou wing pour faciliter la diffusion.
Le foil serait attaché par une ligne dyneema (simple épissure autour du fuselage avec pièce en plastique visser pour caler la position longitudinale).
Le foil serait utilisé à l'envers par rapport à son usage normal en poussée.
Un système supplémentaire électronique serait également visé sur le fuselage.
A l'intérieur, il y aurait une carte électronique avec un microcontrôleur, un capteur permettant de mesurer l'attitude du foil, un capteur permettant de mesurer la profondeur du foil et une liaison radio.
Des cartes électroniques combinent déjà une partie de ces fonctionnalités dans un petit format :
https://www.seeedstudio.com/Seeed-XIAO-BLE-Sense-nRF52840-p-5253.html
https://docs.arduino.cc/hardware/nano-33-ble-sense-rev2/
Pour le contrôle du foil, on a a minima besoin du roulis, ce qui de nos jours se mesure facilement avec une IMU (accéléromètre + gyroscope). Il serait bien d'avoir un capteur de profondeur, par exemple via la pression statique.
La communication radio évite d'avoir un câble de communication ou d'alimentation dans l'ombilical et de se contenter d'une simple câble dyneema structurel. Elle présente néanmoins un challenge sous l'eau. Les standards grand public actuels (bluetooth, wifi) sont en 2.4 ou 5 GHz et passent très mal sous l'eau. Le 433MHz standard en modélisme ne fonctionnerait pas non plus. Une piste serait d'utiliser une communication en 27MHz; C'est ce qui est déjà utilisé sur les sous-marins télécommandés, et devrait permettre d'assurer une communication jusqu'à quelques mètres sous l'eau.
Pour alimenter l'électronique, une batterie sera nécessaire. Une dynamo peut à terme être envisagée pour recharger la batterie (avec un mini booster). Dans les premières versions, une prise de recharge étanche ou démontable semble plus simple, ou mieux un chargeur à induction.
Une flottabilité totale négative pour l'aile d'eau est souhaitable afin de faciliter le plongeon de l'aile à faible vitesse, mais une flottabilité positive dans la ligne à 1 ou 2m (et en dehors de l'eau en vol) doit permettre de ne pas perdre le foil. Le point d'accroche se fait au dessus de ce point.
Stéphane Blanco
https://catiav5freelancer.blogspot.com/ 2/3 de page
http://stephaneblanco.com/analogik.php
Eric Pelaprat
Note : article écrit en 2018, mais jamais publié.
Le bateau vole
Le bateau accélère bien dès qu'il vole et les sensations de vitesse sont au rendez-vous, notamment pour celui qui pilote l'aile.
Le bateau semble cependant saturer rapidement en vitesse
Stabilité du vol
Le vol n'est pas très stable notamment à cause du palpeur situé en arrière du foil.
Capacité à manœuvrer seul
C'est compliqué, mais le bout faisant le tour du bateau et relié au safran doit le permettre
Casse-matériel
Les foils sont solides : malgré un passage sur les cailloux, et quelques minutes passées sur un banc de sable, ils n'ont pas bougé. L'un d'eux avait cependant accusé le coup après une collision avec une raie manta en Australie.
Les points d'accroches sur le bateau ont tenu alors qu'on les pensait un peu léger. Lorsqu'il y eu une surtension, c'est le kite lui même qui a cassé en premier. Malheureusement difficile de le réparer... L'utilisation d'un fusible mécanique semble donc à considérer, principalement afin de préserver le matériel.
Sécurité et chavirage
Nous n'avons pas eu d'inquiétude à ce sujet. Cependant en l'absence de mât retourner le bateau serait vraiment problématique. Revenir à la rame le bateau à l'envers semble cependant possible. Avec un peu de chance, le moteur pourrait être récupéré ?
Homme à la mer
Cela ne nous est malheureusement pas arrivé. Etant donné la difficulté à piloter seul, le mieux serait peut-être pour la personne reste à bord de mettre le kite à l'eau.
Lancement et récupération du kite
C'est vraiment un des points faibles du concept actuel. Des solutions existent (mât, aile multribridage).
Empennage
Pas trop de soucis. Dans le vent fort, nous avions besoin de lâcher la patte d'oie. Un rail pourrait remplacer ce système, peut être légèrement courbé vers l'avant. Mais niveau rapport qualité/prix le système était très satisfaisant.
Virement de bord
Je ne sais plus si nous avons même essayé
Note : article écrit en septembre 2020 mais jamais terminé et publié auparavant.
Voilà quelques années qu'on en parlait : nous avons enfin organisé un premier rassemblement de kiteboats !
Un grand merci à tous les organisateurs et bénévoles impliqués
Vent assez fort. Nous décidons de prendre la 9m2 (de toute manière au-dessus c'est la 16m2 qui fuit, et en dessous 7m2 seulement). Nous sommes les seuls à partir
Nous partons dans l'avant port. Au delà de la sortie du port, aucun de nous deux ne connait le spot.
La marée est basse, et la place dans l'avant port n'est pas très grande. Vu les conditions météo fortes dehors, l'école de voile fait déjà naviguer ses cata dans le chenal.
Le vent est onshore par rapport à la rive où l'on est.
Nous mettons le bateau à l'eau, et décalons le bateau en marchant jusqu'au milieu de la plage. Mauvaise idée, sans bottillons nous finissons tous les deux les pieds en sang...
Nous décidons de décoller l'aile sur la plage, déjà attachée au bateau.
Après un petit temps pour refaire la patte d'oie (trop tendue et déformant l'aile) servant à accrocher la cinquième ligne à l'aile, nous voici partis.
Le départ est un peu rock'n roll avec le vent onshore. Nous partons sous le gros objectif de Damien de Voile-Magazine (alors qu'un autre petit groupe nous observe du haut de la plage).
Merde, nous avons un tour dans les lignes, malgré toutes nos précaution. Pas grave, l'aile reste pilotable.
Il faut commencer par descendre un safran, puis l'autre, puis une dérive.
Ca y est nous arrivons à nous éloigner du bord. Nous coupons la flotte des catamarans école. Mais c'est déjà l'heure du premier jibe. Le moniteur de l'école de voile demande à ses catas de repartir pour nous laisser faire demi-tour. Nous engageons le jibe. Le cata le plus proche de nous n'a pas suivi les instructions. Xavier concentré sur le pilotage de l'aile ne l'a pas vu. Les lignes croisent au dessus de la tête du mât du cata. Ouf ça passe !
Nous enchaînons quelques bords dans l'avant port.
Xavier tente un kiteloop pour défaire le tour dans les lignes, mais cela n'est pas suffisant.
Nous nous décidons à sortir du port. Une grosse molle arrive alors que nous passons la jetée sous notre vent... Ca passe! Il faut que je reprenne le réflexe de bien lofer quand il y a une molle. Heureusement, Xavier me demande (plus ou moins gentiment !) de lofer.
Nous voilà sorti. La mer est un peu blanche, mais la baie où nous nous retrouvons est bien abritée.
Sous notre vent, il y a une grande plage d'où partent des planchistes. Mais y-a-t-il des cailloux entre les deux ? J'aurais dû mieux regarder la carte avant de partir. Dans le doute nous faisons des aller-retours dans le chenal (il n'y a de toute manière pas grand monde à sortir/rentrer dans le port).
Nous commençons pas naviguer tranquillement. L'aile tombe une ou deux fois, mais Xavier la redécolle sans que l'on ait besoin de mettre l'ancre flottante (juste un petit coup de rame).
Le bateau est légèrement mou, mais nous préférons ne pas trop reprendre le système permettant de reculer et descendre le point de tire sur un côté car cela augmente la charge.
Nous revenons régulièrement près du bord, dans l'espoir d'être sous les feux de nos spectateurs.
A un moment, j'entends un crac : mon coude vient de traverser une des trappes d'accès aux coques, usée par le temps. Allons nous prendre l'eau et couler ? De toute manière nous avons la pompe à main (et deux coques séparées avec plusieurs caissons). L'eau ne semble pas rentrer plus que ça. On continue la navigation.
On échange de poste. Je passe au pilotage du kite. Je retrouve assez vite les bonnes sensations que j'ai pu avoir 2 ans auparavant quand je naviguais avec Trevor. L'aile ne tire pas assez à mon goût en vol statique. Je commence à faire voler l'aile en dynamique de manière assez agressive. L'aile se déforme dangereusement car je cherche à la border au maximum, juste avant qu'elle ne commence à reculer dans la fenêtre. Mais c'est mon matos donc je n'ai pas peur d'y aller ! Ca y est, on commence à atteindre des vitesses sympa ! Dommage de ne pas avoir pris le GPS, on va peut-être plus vite qu'avec les foils, pas de problème de stabilité en vue.
Bim ! La barre m'échappe des mains. Quelque chose a explosé. C'est un gros bout rouge de 5mm. Pas vraiment là que je pensais que ça allait casser. Peut-être est-ce lié à la friction de la manille (on avait enlevé la poulie par peur de l'exploser)?
Nous ramenons l'aile grâce à la cinquième ligne que nous enroulons sur notre deuxième barre.
Nous roulons les autres lignes, ramenons l'aile à bord et rentrons en self-rescue, un bout de l'aile posé sur le trampoline, l'autre tenu par le bridage en l'air. La sécu annoncée n'arrivera qu'après notre retour à terre, suite à des difficultés pour venir de Port-Manech dans une mer forte.
Une fois revenus à terre, un petit tour chez le shipchandler, et nous voici à mettre du dyneema partout avec des épissures (Merci Xavier pour le cours). Essayer avec du bout merdique nous aura permis de valider les différentes longueurs...
Je fais décoller mon delta rouge avec la canne à pêche dans le jardin (en utilisant le moulinet). Une fois sortie des turbulences, le cerf-volant vole bien au-dessus, visible avec sa led rouge.
Stéphane sort son cerf-volant (Sutton Flow Form). Il est bricolé avec des trous qui permettent d'améliorer sa stabilité.
Stéphane a une technique assez impressionnante pour dérouler les lignes à partir d'un anneau.
Il teste également une sorte de crochet qui permet d'accrocher une caméra sur la ligne.
Il fait monter son cerf-volant dans la nuit, on ne le voit plus du tout !
Le vent est plus faible
Dimanche
Navigation sur l'Armorkite
Idée à mettre en place
Ancre flottante avec de la longueur, un largeur et des mousquetons pour déploiement rapide
Ne pas balancer les lignes à l'eau en paquet
Rajouter butée sur la cinquième
renvoi des arrières dans des poulies accrochées sur les avants
Pouvoir
déporter suffisamment la barre au vent pour éviter lors des départs de
plage que le pilote soit entre le bateau et l'aile.
Armorkite :
renvoi des lignes avant sur l'avant pour ne pas modifier les longueurs
de ligne lors du passage du renvoi d'un bord à l'autre.
https://katakite972.forumactif.org/
Treuil motorisée imprimable en 3D (pour un petit cerf-volant monofil)
Openkite (dépôt alternatif) est librairie ROS implémentée en C++ d'un contrôleur de vol open source par Petr Listov de l'EPFL qui concentre maintenant ses efforts sur un outil de contrôle PolyMPC.
Kiteboatspeed
https://www.leparisien.fr/yvelines-78/montigny-le-bretonneux-78180/montigny-le-bretonneux-leur-bateau-pourrait-concourir-aux-jeux-de-2024-12-10-2017-7327131.php
Kitamaran était un projet de mini 6.50 avec un kite, et un beau projet de catakite par Charles Boulenger. Le site internet a disparu et le projet semble bien arrêté, mais cela m'a permis de découvrir le projet israélien de Baliwind
Décollage aile à caisson depuis l'eau.
Le pilote est sur un siège coulissant d'avant en arrière. Le bordé-choqué se fait avec les pieds en appui sur un support fixe, le pilotage avec des leviers de part et d'autre d'une barre en rotation autour d'un axe vertical sous le siège
Le tout est fixé sur une plateforme pivotante.
https://youtu.be/3AO3xrGAoZE?t=49
Les leviers sont aussi équipés de frein qui servent probablement pour le lancement de l'aile https://youtu.be/Yjm9nvxOWGQ?t=52
J'ai commandé avec les moteurs un module d'interface Rlink (NOTE : ce module est déjà obsolète une V2 avec plus de fonctionnalité et mieux documentée est sortie. La première version du logicielle était défaillante, et la deuxième (V1.2) est en chinois...)
Les branchements sont assez évidents.
L'installation du logiciel sur un PC windows s'est bien passé, et j'ai pu lancer l'exécutable R-LINK Config Tool.exe, qui ouvre une interface graphique.
Par contre lors du branchement du module Rlink, pas d'apparition du matériel USB dans le gestionnaire de périphérique, ni d'apparition du port COM dans R-Link. L'installation automatique des drivers n'a pas été possible (USB Serial), et la documentation ne donnait aucune information sur ce sujet.
Après installation de différents drivers trouvés au hasard sur internet, j'ai par chance trouvé le bon.
CH341SER.zip https://tropratik.fr/wp-content/uploads/2021/02/CH341SER.zip
Il m'a également fallu copier à la main le fichier .inf pour x64 et peut-être faire uninstall, puis install, mais ça a fini par marché.
La tension max n'est pas non plus très claire dans la documentation 24V ou 48V ?
J'ai utilisé une batterie 6S 1OA.h de Turnigy. J'avais préalablement préparé un câble pour passer du connecteur XT90 de la batterie au connecteur XT30 du moteur.
Fixation
Sur mes premiers essais, le moteur était juste posé. Je recommande fortement de le visser, car sur un emballement du moteur, le câble de connexion s'est enroulé autour du moteur et a cassé. Pour cela prévoir des vis M3 20mm pour une fixation par l'arrière, ou plus courte pour une fixation d'une plaque sur l'avant.
Une fois les drivers installés, le port COM est apparu et j'ai pu me connecter au module R-link avec les paramètres par défaut.
L'onglet configuration permet d'avoir une communication série avec le moteur. Des informations apparaissent lorsque l'on alimente le moteur. En cas de tension d'alimentation insuffisante (j'ai commencé avec 6V au lieu de 24V), une erreur apparait également.
Le moteur va faire un tour complet dans un sens puis dans l'autre (1/6ème de tour en sortie après le réducteur). Les mesures sont affichées sur l'écran
En tappant "e", il es possible d'avoir un retour de la position du moteur. Il y a cependant un bug et dans les retours de ligne et l'affichage est décalé.
En tappant s, on peut visualiser et modifier les paramètres du moteur, par exemple le CAN id (1 par défaut). ATTENTION, une coupure électrique du moteur semble nécessaire pour la prise en compte des changements.
Pour plus d'information voir le doc de Ben Katz qui fut à l'origine du projet de contrôleur open source au MIT https://docs.google.com/document/d/1dzNVzblz6mqB3eZVEMyi2MtSngALHdgpTaDJIW_BpS4/edit
ATTENTION : la saturation en intensité ne semble pas prise en compte sur mes moteurs !
Saturation à 10A non respectée (testée aussi à 1A et après redémarrage) |
Une fois l'id fixé, il est possible de retourner dans les autres onglets pour visualiser l'état du moteur.
Il faut d'abord choisir la bonne adresse (le logiciel revient parfois à 0, alors que l'adresse 1 était utilisée par défaut dans mon cas).
Ensuite, en appuyant sur Run, les courbes commencent à défiler (position, vitesse et intensité).
De manière étrange, la position est limitée à 2 tours dans un sens et 2 tours dans l'autre avant de sauter. Avec le rapport de réduction de 6, cela correspond logiquement à +/-12 tours du moteur et de l'encodeur, soit un peu plus de +/-75radians pourtant la position va jusqu'à +/-95.5rad. Mystère !
C'est dommage que la position soit limitée ainsi alors que plusieurs tours de l'encodeur sont déjà réalisés, la difficulté du multi-tour semble donc déjà traitée.
Le moteur n'est toujours pas actif et il est possible de tourner l'arbre de sortie à la main facilement.
Si l'on clique sur "Enter M_Mode", le moteur devient actif. Il est toujours possible de le tourner, mais cela devient plus difficile. "Exit M_Mode" permet normalement de stopper la tension du moteur, mais PRUDENCE le moteur s'est parfois emballé à grande vitesse pendant mes essais, sans possibilité de l'arrêter sans couper directement l'alimentation. Pas très rassurant pour la suite.
Les cases à cocher permettent juste d'afficher les consignes de position, de vitesse et de couple torque (intensité en réalité), mais n'a pas d'effet sur le contrôle.
Pour vraiment contrôler le moteur, il va falloir changer les paramètres Kp (raideur), Kd (amortissement) ou torque (feedforward). Attention DANGER ! Si on augmenter le paramètre Torque tout seul, le moteur accélère sans fin, atteint une très grande vitesse et perd son contrôle !!!
Le paramètre Kd permet de contrôler la vitesse du moteur, grâce à la vitesse dérivée de la position de l'encodeur. ATTENTION aussi ici, à partir d'une certaine vitesse, la vitesse est mal mesurée et peut changer de signe, ce qui peut amener à un emballement du moteur.
Problème sur la mesure de vitesse : ne jamais aller dans cette zone avec un contrôle en boucle fermée ! |
Le paramètre Kp, va permettre d'aller à une position précise, mais ATTENTION ici aussi, la plage de contrôle est limitée, une fois que l'on dépasse 95.5 rad on passe à -95.5 radians. Cela peut perturber le moteur qui peut encore une fois s'emballer, et ça fait peur, surtout si le moteur n'est pas solidement fixé, il va bouger juste avec son inertie.
ATTENTION
Comme vous l'aurez peut-être compris j'ai eu des problèmes avec mon premier moteur qui s'est mis plusieurs fois dans un état instable où j'ai du couper l'alimentation, le moteur tournant très vite et dans tous les sens. Le moteur chauffe alors énormément et c'est peut-être l'origine de la panne qui est ensuite apparue. Celle-ci se caractérise par un problème de lecture de l'encodeur qui fait des petits sauts ou des grands sauts (en fonction de la position dans laquelle je lance une nouvelle calibration). Ces sauts créent du bruit dans le calcul de la vitesse et le moteur s'emballe.
Saut de la position de l'encodeur |
Vitesse bruitée suite à un problème sur l'encodeur (ou la calibration) |
J'ai trouvé quelques bibliothèques sur github. Je ne les ai pas encore testé.
Bibliothèque python (nécessite un module USB-CAN)
https://github.com/vyas-shubham/mini-cheetah-tmotor-python-can
Bibliothèque arduino
https://github.com/DGIRobo/Mini-Cheetah-Motor-V3-Control-By-Arduino_CANShield/blob/master/gim8008V3.cpp (projet incomplet)
J'ai fait quelques tests avec un arduino MKR zero et un shield MKR can, mais sans succès jusqu'à présent.
Différentes versions de code source du contrôleur existe, sans que je sache laquelle est la mienne.
https://os.mbed.com/users/benkatz/code/HKC_MiniCheetah//file/fe5056ac6740/main.cpp/
https://github.com/bgkatz/motorcontrol
https://os.mbed.com/users/Wooden/code/BLDC_V2//file/a74e401a6d84/Calibration/calibration.cpp/
La compilation se fait avec :
https://os.mbed.com/studio/
Voir aussi les docs de Bart Dring
https://docs.google.com/document/d/1QIEI6IdHOcW4N1cRyucb33io4LriNYafIMs1sjLfTQU/edit
Sur le Tmotor, le port ST-Link V2
est normalement accessible en ouvrant le capot, mais sur ma version il semble avoir disparu, tant et si bien que je ne vois pas comment procéder à une mise à jour firmware.
Encoder
https://www.monolithicpower.com/en/ma702.html
Imaginez une sorte de planeur au bout d'un fil, relié à bateau très léger muni d'une dérive.
Le planeur traverse la fenêtre de vol, et grace à sa bonne finesse (en espérant que la ligne ne la dégrade pas trop) et une certaine masse acquiert de l'énergie cinétique. Avec une finesse de 15 dans 10m/s on pourrait atteindre 150m/s ou 600km/h.
Le bateau fait ancrage grâce à sa dérive, mais n'a pas besoin d'aller aussi vite que le planeur.
Arrivé au bout de la fenêtre, la traction sur le câble par le planeur permet le décollage du bateau (qui peut éventuellement avoir des ailes).
Le premier planeur, remorque le deuxième planeur jusqu'à ce que la traînée dans l'air permette d'atteindre une vitesse de 40 noeud environ. Le bateau peut alors de nouveau amerir avec moins de risque de cavitation., Le planeur fait demi-tour, retraverse la fenêtre en sens opposé, gagne de la vitesse, retraverse encore la fenêtre en repartant dans la direction initiale.
Et le cycle recommence.
On peut également imaginer que le saut soit ballistique, par exemple en rentrant les ailes pour n'avoir qu'une capsule à la traînée réduite.
De manière plus générale, l'idée est d'ici d'extirper plus d'énergie que ce que la navigation à vitesse constante permettrait (problème de cavitation ou simple limitation des finesses hydro), de stocker cette énergie (comme pour le dynamic soaring) et e la réutiliser ensuite pour aller vite et loin.
J'ai déjà parlé de cette idée à plusieurs mais sans l'avoir partagé ici.
On imagine le mât d'un foil principal (soit tout seul en windsurf, kitefoil, wingfoil soit avec un safran pour un bateau plus grand).
En bas de ce mât, une liaison pivot dans l'axe longitudinal du bateau permet de relier le mat à l'aile du foil (qui peut donc tourner en roulis).
Le foil est excentré de manière à pivoter si l'écoulement n'est pas colinéaire avec l'axe longitudinal du foil.
Si on imagine un angle de dérive, le foil se retrouve vertical du côté où va l'écoulement.
Si on imagine maintenant que le bateau a le nez vers le haut, le foil va se retrouver à l'horizontal, au dessus de l'axe de rotation et va créer une force vers le haut
Si le bateau a le nez vers le bas, le foil va se retrouver à l'horizontal, mais à l'envers, sous l'axe de rotation et va créer une force vers le bas.
Le foil travaille comme la dérive d'un bateau, mais avec une extension de la 2D à la 3D.
Ca risque d'être casse gueule si l'axe de rotation est complètement libre, mais voilà l'idée (en attendant de faire un dessin).
1 vergue horizontale est orientée vers l'arrière du bateau. Les lignes du kite partent du point de traction et à l'extrémité de la vergue avant de revenir vers l'aile.
Le bateau est mis travers au vent.
L'équipage déploye l'aile au fur et à mesure en bord de fenêtre vers l'avant du bateau (un peu comme le gonflage cobra en parapente).
Le bridage est déployé dans la longueur du bateau, ce qui permet au bridage d'être tendu et à l'aile de se gonfler correctement.
Quand on voit les vidéos de Cory Roeseler, on peut noter la grande barre qu'il utilisait et le fait qu'elle était pourvue d'une manivelle pour permettre de dérouler les lignes (reel ou unreel bar).
Différents modèles à 2 ou 4 lignes ont été développés à l'époque ou plus tard, notamment par John Bellacera
Il y a quelques années Dan Tracy de Pacific Sky Power a proposé une barre 4 lignes en crowdfunding sur kickstarter. J'ai été une des rares personnes a participé
1ère mauvaise surprise liée à ma naïveté : j'ai dû payé 88€ de TVA+11€ de droits de douane + 15€ de frais de dédouanement
Deuxième mauvaise surprise : il y a de la colle séchée sur les lignes. Beurk !
La troisième mauvaise surprise explique la précédente : plein de colle au fond du tambour, beurk!
Bon, ça ne fait pas vraiment plaisir, mais cela n'a pas grande importance.
Par contre, d'autres défaut de conception apparaissent à l'usage. D'abord les lignes qui s'enroulent en dehors du tambour si on ne les tend pas bien. On peut voir cela comme une mauvaise utilisation, mais une meilleure conception devrait permettre d'empêcher ceci, ou de bloquer en aidant à s'en rendre compte.
L'autre problème c'est l'impossibilité d'utiliser le border/choquer tant que toute la longueur des lignes n'est pas déroulée. Cela est peut-être satisfaisant pour certaines ailes très robustes, mais difficile avec celle que je teste (au début une aile à caisson 4 lignes sur 2 poignées qui n'est pas tout à fait adaptée à l'utilisation avec une barre, ou dont il faudrait que les lignes avant soient aussi renvoyés dans des poulies à mi-longueur de la barre.
Un dernier problème avec l'enrouleur est l'absence de frein. Si on lâche la manivelle, ça peut devenir dangereux ! Il y a bien un système de blocage avec un bout, mais son utilisation n'est pas aisée.
Enfin, la barre n'est vraiment pas agréable à l'utilisation. En plus du poids de la barre que l'on peut comprendre, la barre a des sortes de haubans/barre de flèche pour assurer sa rigidité. Cela rend difficile tout mouvement de la barre qui demande un effort important. Cela pourrait à la limite être vu comme un avantage car la barre se remet naturellement à zero degré lorsqu'elle est lâchée.
Pour finir ce piteux état des lieux, le câble métallique torsadé est abimé après 2 ou 3 utilisations seulement.
En conclusion, je ne recommande pas cette barre, mais je dois avouer qu'elle a le mérite d'exister !
Voici quelques points d'entrée qui j'espère pourront aider quelques souhaitant hacker la caméra virb 360. C'est la caméra 360 que j'utilise pour mes vidéos de kiteboat, ou par cerf-volant.
Une fois connecté sur le même réseau que la caméra
sudo apt-get install avahi-discover
avahi-discover
Found service '7390' of type '_garmin-virb._tcp' in domain 'local' on 2.0.
ping 7390.local
64 bytes from Garmin-WiFi (192.168.1.58): icmp_seq=2 ttl=64 time=6.34 ms
J'ai maintenant le nom de ma caméra Garmin-WiFi
A partir du document Camera_network_services_API.pdf
curl --data "{\"command\":\"status\"}" http://Garmin-Wifi/virb
{"apiMin":3,"apiMax":3,"batteryLevel":34.000000,"batteryChargingState":0,"totalSpace":7763124,"availableSpace":6008732,"gpsLatitude":47.214432,"gpsLongitude":-1.540702,"antSensor":0,"btSensor":0,"btHeadset":0,"wifiSensor":0,"recordingTimeRemaining":527,"photosRemaining":1543,"photoCount":0,"recordingTime":0,"wifiSignalStrength":40,"wifiMode":"STA","state":"idle","lastMediaEventTime":3359,"result":1}
curl --data "{\"command\":\"sensors\"}" http://Garmin-Wifi/virb
{"sensors":[
{"name":"InternalGyroX","type":"LOCAL","has_data":"1","units":"Degrees/Second","data_type":"double","data":"4.329268"},
{"name":"InternalGyroY","type":"LOCAL","has_data":"1","units":"Degrees/Second","data_type":"double","data":"0.000000"},
{"name":"InternalGyroZ","type":"LOCAL","has_data":"1","units":"Degrees/Second","data_type":"double","data":"-13.780488"},
{"name":"InternalAccelX","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"0.018066"},
{"name":"InternalAccelY","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"-0.098633"},
{"name":"InternalAccelZ","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"-1.012207"},
{"name":"InternalAccelG","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"1.017162"},
{"name":"Altitude","type":"LOCAL","has_data":"1","units":"Meters","data_type":"double","data":"215.007126"}],"result":1}
https://github.com/JanKlopper/garmin-virb/blob/master/virb.py
curl --data "{\"command\":\"livePreview\",\"streamType\":\"rtp\",\"maxResolutionVertical\":\"100\",\"liveStreamActive\":\"1\"}" http://Garmin-Wifi/virb
{"result":1,"url":"rtsp://192.168.1.58/livePreviewStream?maxResolutionVertical=2160&liveStreamActive=1"}
L'url peut-ensuite être mise dans un navigateur qui proposera d'ouvrir le flux avec vlc. La résultion minimale est 360, maximale 2160
J'ai aussi trouvé une appli html permettant de contrôler depuis un pc sans windows, mais je n'ai pas réussi à la faire marcher
https://github.com/skaterlui/VIRBControlUI5
Les données du magnétomètre sont manquantes dans les données json.
Pourtant les données sont bien présentes dans les fichiers .fit. J'ai pu les lire soit à partir de la bibliothèque python fitparse, soit en convertissant les fichiers .fit grâce au SDK ant
sudo java -jar FitCSVTool.jar 2018-03-17-19-38-56.fit
Les données obtenues sont toutefois un peu brutes car elles correspondent aux valeurs des registres (par exemple 32935 est probablement proche de la moitié de 2^16). Les données sont enregistrées toutes les 4ms pour gyro, accéléro et magnéto et toutes les 40ms pour le baromètre dont la résolution en sortie semble limitée à 20cm
Le bruit sur l'accéléro est de l'ordre de 0.01g, celui sur le gyro de l'ordre de 0.3°/s pour une résolution de 0.05°/s. Le signal du capteur d'altitude est régulièrement plat. Cela peut-être lié à un bruit inférieur à la résolution, qui semble cependant variable...
(Notes réchauffés d'octobre 2016)
Je fais face à un problème sur les premières versions.
Il y a parfois du mou dans les lignes ce qui conduit à un surpattage.
Ma première parade a été d'utiliser du fil élastique
J'ai d'abord essayé avec du sandow (plus pour faire un border-choquer automatique d'ailleurs).
Afin de choquer sous tension, il fallait mettre les sandows sur les lignes servant à border, donc sur les arrières qui servent aussi au contrôle.
Une conséquence est que le contrôle n'était plus précis (mais possible de rééquilibrer avec un jeu de poulie).
Une autre approche est de mesurer la tension dans les lignes, puis de déclencher un moteur si la tension devient trop faible.
Ou encore de faire tourner en permanence un petit moteur avec un couple faible.
Une autre application est de ramener un cerf-volant monofil à terre en cas de chute de vent avec un système "passif".
Je cherchais donc un moteur à ressort de type moteur à barillet, aussi appelé moteur à force constante. Un tel moteur est difficile à trouver (si ce n'est moteur mécano sur le bon coin). J'ai bien trouvé des pièces sur des sites spécialisés mais pour quelques centaines d'euros, alors que ce que je cherche est intégré dans les laisses rétractables, dans le enrouleur à rappel de fil pour les enclos agricoles, ou simplement dans les mètres rubans.
Le mieux étant peut-être l'enrouleur de fil à linge qui va facilement jusqu'à 30m pour environ 15€.
Aujourd'hui j'ai testé une autre solution avec un simple petit mètre ruban avec enrouleur à ressort.
Mètre ruban métallique de 5m
40g de traction quand la longueur est réduite
200 g de traction quand la longueur est augmentée
Mètre ruban souple de 1.5m
20g
120g
On me demande quelle taille de cerf-volant est nécessaire pour tirer un grand bateau.
La question comme ça est un peu vague, il faut donc faire des hypothèses.
Un bon début est peut-être de donner la formule donnant la puissance du vent par 1m2. Cela correspond au flux de l'énergie cinétique du vent à travers 1m2
Une première expression est donc celle de la puissance incidente du vent
1/2*rho*v*S*v^3
Pour un vent de 8m/s (15kt) cela donne une puissance de 275W/m2.
Il faut ensuite considérer la limite de Betz qui donne un "rendement théorique" maximal (16/27) qui est dû au fait que toute l'énergie ne peut pas être récupérée. Cela donnerait une puissance théorique max de 163W/m2. La question est ensuite quelle surface de référence prendre.
Dans le cas d'une éolienne c'est généralement la surface balayée par les pâles qui est considérées. Pour un cerf-volant, il faudrait considérer cette surface également, mais comment la caractériser?
Une deuxième approche est de partir du rapport portance sur traînée. C'est l'approche de Loyd en 1980.
A 15kt, 600m2 produiraient 1MW avec un rapport CL/CD de 5 dans l'idéal, soit un peu moins de 2kW par m2. Plus vraisemblablement on peut retenir 1kW (1.4CV) par m2 pour une aile de kite (bien plus pour une aile rigide).
Pour un petit bateau, 4 à 5m2 peuvent donc remplacer un petit moteur 6CV si le vent est là.
Des calculateurs en ligne permettent d'estimer la vitesse du bateau et peut-être d'extrapoler à de plus grands bateaux !
ls /dev
En branchant débranchant
mkdir -p ~/.wine/dosdevices
ln -s /dev/ttyACM0 ~/.wine/dosdevices/com1
![]() |
Extrait du doc du C94-M8P |
import serial import time # Optional (if using time.sleep() below) serBase = serial.Serial(port='COM16', timeout=1) serRover = serial.Serial(port='COM17', timeout=1) while (True): if (serBase.inWaiting()>0): #if incoming bytes are waiting to be read from the serial input buffer data = serBase.read(serBase.inWaiting()) #data_str = data.decode('ascii') #read the bytes and convert from binary array to ASCII print(data) #print the incoming string without putting a new-line ('\n') automatically after every print() serRover.write(data) if (serRover.inWaiting()>0): #if incoming bytes are waiting to be read from the serial input buffer data_str = serRover.read(serRover.inWaiting()).decode('ascii') #read the bytes and convert from binary array to ASCII print(data_str) time.sleep(0.01) # Optional: sleep 10 ms (0.01 sec) once per loop to let other threads on your PC run during this time.