Blog

Page d’exemple

Tutoriels

Faire des drums sur FL studio !

FL Studio est un logiciel de production de musique. Nous pourrions croire que ce logiciel est plutôt simple à utiliser en voyant l’interface, mais non, FL Studio est plus technique qu’on ne le pense. C’est pour cette raison que j’ai décidé d’écrire ce tutoriel ! Et aussi, car la musique c’est ma passion. Dans ce tutoriel, nous allons voir, comment faire des drums (ce sont les percussions) classiques.

Lien de la vidéo et à la fin, la prod réalisée pendant ce tutoriel !

Je vais essayer de vous montrer un maximum d’astuces qui vous permettrons de débuter sur FL Studio !

Ouverture du logiciel et quelques explications :

Dès l’ouverture du logiciel, vous arriverez sur cette page :

Comme vous pouvez le constater, sur cette page, nous avons beaucoup d’informations.

Je vais vous expliquer les plus utiles !

Tout d’abord, nous pouvons voir, un nombre 130.000, ceci est le BPM (Battement Par Minute) de la prod. Cela est indispensable pour la rapidité de la musique. A coté, le bouton « play » permet le lancement de la prod. Nous avons 2 touches : « song » et « pat ».

Si vous appuyez sur « song » la prod sera jouée dans la playlist, où nous pouvons voir toutes les « Tracks ». Alors que si vous appuyez sur « pat », la prod sera jouée dans un pattern (le motif rythmique de base).

Ici, nous pouvons voir que le curseur qui était dans la playlist n’est plus là, il est dans le pattern !

Pour aller dans le pattern, rien de plus simple : vous avez juste à cliquer sur le bouton au milieu des 6 sur lequel il y a 3 barres verticales à coté du 1 :

Voilà là vous êtes dans le pattern ! Pour ajouter un instrument, vous devez appuyer sur le + et choisir un VST qui vous plaît. Mais dans ce tutoriel, nous allons nous concentrer uniquement sur les drums.

Explication des drums :

Tout d’abord, il faut définir le style de musique qu’on veut produire, nous, nous allons faire de la trap, c’est un genre de style musicale associé au rap. Dans les drums, nous retrouvons très souvent : une snare ou un clap qui sont considérés comme la caisse claire, un hi-hat qui est le charleston fermé, un open hat qui est le charleston ouvert, une inter-snare, un kick qui est la grosse caisse, une 808 qui est la basse. Nous pouvons aussi retrouver aussi des percs, ce sont souvent des bruits percussifs parfois étrange qui ramène du mouvement à la prod.

Pour ajouter une percussion, il faut aller dans la liste de noms à gauche, puis appuyer sur « Packs », puis sur « Drum kit ».

Sur ma capture d’écran, il a y a beaucoup de « Drums kits » qui sont ouverts car j’ai acheté plusieurs « Drum kit » de beatmakers (personne qui fait des prods) de qualité car les « Drums kits » de base de FL Studio ne sont pas les plus qualitatifs mais pour débuter ils sont assez performants.

Après avoir choisi l’élément qui vous convient, vous avez plus qu’à glisser l’élément en-dessous du « Sampler » ! Puis cliquez sur le pattern de l’élément ! Vous allez arriver à cela :

Et là rien de plus simple, vous avez juste à cliquer où vous voulez sur ce qu’on appelle le « Piano roll » et l’élément se placera, et clique droit sur l’élément si vous voulez le supprimer.

Choix du BPM ?

Pour l’exemple de cette prod, nous allons laisser le BPM à 130.000 qui est un rythme adapté pour la trap. Le BPM se choisit dans la plupart des cas avant de commencer à ajouter des élément que cela soit mélodiques ou percussifs.

Les drums !

Donc pour la snare, tous les 3 temps car nous faisons une prod trap, ce qui donne :

La « velocity » c’est le volume de l’élément, vous pouvez le baisser ou l’augmenter.

Pour ajouter un élément, vous avez juste à fermer avec la petite croix en dessous du bouton vert puis vous glissez votre élément en dessous de l’élément déjà rajouter.

Ensuite, passons aux hi-hats, c’est tout les 1/2 temps, pour donner un rythme à la prod :

Pour donner du vivant, vous pouvez jouer avec la vélocité, en bougeant les barres vertes, comme ceci :

Juste en faisant cela, ça donne tout de suite un rythme à la prod, cela donne un rythme humain contrairement à l’image d’au-dessus où le rythme est très robotique, très droit.

Ensuite, nous pouvons rajouter un open hat, tous les 2 temps, en jouant avec la vélocité ce qui donne :

Après cela, l’inter-share qui donne vraiment un rythme à la prod, le placement est assez particulier, vous pouvez aussi un peu baisser la vélocité comme ceci, voici ce que cela donne :

Puis, vous pouvez poser les kicks, la vélocité il ne faut pas qu’elle soit trop basse car c’est un élément phare de la prod. Le kick, vous pouvez le poser un peu où vous voulez, il faut juste que cela ne soit pas à contre temps, un exemple d’un placement de kick simple :

Et là tout de suite, cela donne vraiment un rythme à la prod.

La 808 !

Dans une prod, le choix de la basse est très important. Il y a plusieurs critères à prendre en compte:

  • Il faut que la basse ne soit pas trop aigu et grave.
  • Il faut qu’elle suive les notes fondamentales de la mélodie sinon on dit que la basse est « off keys » et cela ne sonne pas bien.
  • Il faut que la basse prenne assez de place sur la prod.
  • Il ne faut pas qu’il y est d’interférence entre le kick et la basse, et entre la mélodie et la basse.

Nous, nous allons choisir une basse de base de FL studio, qui n’est pas la meilleure des basses mais qui fait le boulot pour cette prod.

Pour cela, vous appuyez sur la petite croix, en-dessous du bouton vert, donc vous allez arriver à ça :

Puis, vous allez appuyer sur le + et chercher un VST qui se nomme « Sytrus » c’est un VST de base de FL Studio, donc cherchez bien il est obligatoirement sur votre logiciel !

Quand vous l’avez trouvé, cliquez dessus, vous allez arriver à cela :

Puis vous allez cliquer sur « Presets » et cherchez « Bass » :

Et à ce moment là, vous allez cliquer sur « Deep 3 », cela va vous donner ceci :

Vous avez plus qu’à cliquer sur la petite croix du VST:

Pour ensuite aller dans le « Piano roll » et faire une ligne de basse, je vous conseille une ligne de basse comme ceci :

Vous avez fini vos drums type trap !

L’enregistrement de la prod :

A ce moment là, vous avez presque fini : il vous manque plus qu’à faire quelques manipulations.

Tout d’abord, fermez le pattern en appuyant sur la petite croix :

Puis glissez le « pattern 1 » que nous voyons à gauche sur la « Track 1 » :

Puis ctrl B, jusqu’à 17 mesures car c’est le temps d’un couplet :

Ensuite, ctrl S, pour enregistrer, puis nommez la prod au nom que vous voulez :

Puis appuyez sur « Save ». Votre prod est enregistrée !

L’enregistrement de la prod en mp3 :

Pour l’enregistrer en mp3, rien de plus simple, ctrl R puis appuyez sur « Save », vous allez arriver à ceci :

Appuyez sur « Start » et votre prod sera enregistré en mp3 ! Vous pouvez fermer le logiciel, chercher la prod pour l’envoyer à votre téléphone, par mail ou par airdrop si c’est un Mac !

Lien d’une prod faites par moi !

Voilà ce tutoriel est maintenant fini ! J’espère qu’il vous aura aider à la compréhension de FL Studio et que la prod faites pendant ce tutoriel vous aura plus !

Tutoriels

Comment corriger les problèmes d’imprimante ?

J’ai choisi ce sujet car durant ma scolarité j’ai rencontré beaucoup de problèmes avec mon imprimante et je voudrai aider d’autres ou de nouveaux élèves à régler leurs problèmes d’imprimante . Les problèmes que j’avais rencontré n’étaient pas difficiles mais je ne savais pas par où commencer et j’ai perdu beaucoup de temps à les résoudre, c’est pour cela que j’ai crée ce tuto afin de mettre sur la bonne voie ceux ou celles qui rencontreraient des problèmes similaires aux miens. Si vous essayez d’utiliser votre imprimante et que vous rencontrez des problèmes, voici quelques étapes pour les résoudre et faire en sorte qu’elle fonctionne correctement.

1ère solution : le fameux « débrancher rebrancher » puis redémarrer

Même si beaucoup de personnes (y compris moi même pendant un certain temps ) pensent que cette 1ère solution ne fonctionne pas et qu’elle est dite seulement aux enfants ou pour plaisanter, elle est en réalité efficace dans certains cas . Et pour être plus clair que seulement ces 3 mots, voici l’explication de cette solution ;  « Éteignez votre imprimante et débranchez-la, patientez 30 secondes, rebranchez votre imprimante, puis remettez-la sous tension ». (le cycle d’alimentation de votre imprimante peut parfois résoudre le problème c’est pour cela que seule cette méthode suffit )

Cette méthode n’est ni à sous estimer ni à négliger car elle peut être très efficace et surtout rapide, mais si malheureusement votre imprimante ne fonctionne toujours pas, regardez la solution n°2.

2ème solution : Vérifier le câblage ou la connexion sans fil

Cette méthode est un peu plus complexe que la première mais elle reste tout de même très accessible. Tout d’abord il faudra que vous déterminiez si votre imprimante est câblée ou sans fils car la manipulation est différente pour les types cités précédemment.

Pour les imprimantes câblées :

Il faut que vous vérifiez si votre câble USB est bien branché et si il est au bon endroit ensuite si vous vous êtes assuré que c’est le cas mais que le problème persiste car le câble n’est toujours pas reconnu malgré son branchement , il faudra malheureusement changer de câble ou aller sur la partie du site de Windows spécialisé pour ces problèmes en cliquant sur ce lien : Diagnostiquer et résoudre automatiquement les problèmes USB Windows

*le câble USB-B se situe à l’arrière de votre imprimante, pour plus de précisions veuillez vous référencier à l’aide de ces photos. ( :

Pour les imprimantes sans fil :

Plusieurs détails sont importants et à vérifier (ou à faire) :

  • que l’option sans fil de l’imprimante est activée et disponible et assurez vous que l’icône dédiée à cette option soit allumée ( et si vous ne trouvez pas cette icône, sachez que de nombreuses imprimantes ont un bouton qui affiche une icône bleue mais si vous ne le trouvez toujours pas consultez les instructions de l’imprimante ou le site Web du fabricant pour savoir où se situe ce bouton sur votre imprimante et comment le réactiver.)
  • Et si votre icone d’option sans fil est allumé, effectuez le test de connectivité sans fil de l’imprimante.

3ème solution : supprimer et réinstaller

Tout d’abord il faut supprimer, c’est très simple si vous suivez ces 2 étapes dans cet ordre :

  • 1 Sélectionnez le bouton Démarrer, puis Paramètres > Périphériques > Imprimantes et scanners .
  • 2 Dans Imprimantes et scanners, recherchez votre imprimante, sélectionnez-la, puis sélectionnez Supprimer le périphérique.

Ensuit pour réinstaller c’est encore plus simple car vous devez faire exactement pareil que la 1ère étape quand il fallait supprimer et dans le même ordre, mais c’est seulement l’étape 2 qui change car vous devez :

  • 2 Sélectionnez Ajouter une imprimante ou un scanner. Patientez pendant que votre appareil recherche des imprimantes environnantes, sélectionnez celle de votre choix, puis Ajouter un périphérique.

*Aide : Pour vous assurer que votre imprimante fonctionne correctement , imprimez une page de test .

4ème solution : une simple installation

Pour cette solution vous aurez seulement besoin d’installer pilote le plus récent car beaucoup d’imprimantes en ont besoin pour fonctionner correctement.

pour cela il vous faudra : suivre ces 3 grandes étapes :

  • Utilise Windows update , voici la démarche à suivre : Sélectionnez Démarrer, puis Paramètres  > Mettre à jour & sécurité  > et ouvrez Windows Update > Sélectionnez Rechercher des mises à jour.

Si Windows Update détecte un pilote mis à jour, il le téléchargera, donc il ne vous restera qu’à suivre ces dernières étapes :

  1. Une fois l’exécution de la case activée de mise à jour terminée, sélectionnez Afficher les mises à jour facultatives si celle-ci est visible.
  2. Dans l’écran suivant, développez Mises à jour du pilote.
  3. Si vous voyez les pilotes applicables pour votre imprimante, sélectionnez les mises à jour que vous souhaitez télécharger et installer.
  4. Sélectionnez Télécharger et installer
  • installer le logiciel fournie avec votre imprimante:

Si votre imprimante a un disque, il peut contenir un logiciel qui peut vous aider à installer des pilotes ou à rechercher des mises à jour des pilotes.

  • télécharger et installer les pilotes sur le site Web du fabricant de l’imprimante

La majorité des pilotes se mettent en place automatiquement. Pour commencer l’installation, double-cliquez sur le fichier après l’avoir téléchargé. Ensuite, retirez et réinstallez l’imprimante.

Et pour finir suivez ces dernières étapes :

1-Sélectionnez Démarrer , puis Paramètres  > Périphériques  > Imprimantes & scanneurs .

2-Dans Imprimantes et scanners, recherchez votre imprimante, sélectionnez-la, puis sélectionnez Supprimer le périphérique.

3-Après avoir supprimé votre imprimante, cliquez sur Ajouter une imprimante ou un scanner pour l’ajouter. Attendez que votre appareil détecte les imprimantes à proximité, choisissez celle que vous souhaitez, puis choisissez Ajouter un appareil.

attention -> Si votre imprimante ne fonctionne toujours pas après l’installation du pilote le plus récent de votre imprimante, passez à la 4ème solution.

5ème solution : Effacer et réinitialiser le spouleur l’impression

(attention cette solution est très complexe car étant une personne qui s’y connait un minimum, j’ai pris beaucoup de temps a réaliser cette solution correctement. Donc si vous ne voulez pas perdre de temps , suivez correctement et attentivement ces étapes . )

Si la solution précédente de résolution des problèmes ne fonctionne pas, vous devrez peut-être effacer les fichiers du spouleur et redémarrer le service du spouleur. Un fichier appelé spouleur d’impression est utilisé pour gérer le processus d’impression. Pour réinitialiser et supprimer le spouleur d’impression :

  1. Dans la zone de recherche de la barre des tâches, tapez services, puis sélectionnez Services dans la liste des résultats.
  2. Sélectionnez l’onglet Standard, puis double-cliquez sur Spouleur d’impression dans la liste des services.
  3. Sélectionnez Arrêter, puis OK.
  4. Dans la zone de recherche de la barre des tâches, entrez %WINDIR%\system32\spool\printers, sélectionnez %WINDIR%\system32\spool\PRINTERS dans la liste des résultats, puis supprimez tous les fichiers dans le dossier.
  5. Dans la zone de recherche de la barre des tâches, recherchez services, puis sélectionnez Services dans la liste des résultats.
  6. Sélectionnez l’onglet Standard, puis double-cliquez sur Spouleur d’impression dans la liste des services.

Sélectionnez Démarrer, puis Automatique dans la zone Type de démarrage, puis sélectionnez OK

Si tout a échoué…

Acheter une nouvelle imprimante ( : , de préférence dans un autre magasin que celle qui vous cause des problèmes , comme par exemple …

Tutoriels

Gagner de l’argent grâce au cashback.

Vous voulez gagner de l’argent ? Ce tutoriel vous présentera les dessous d’un système de plus en plus tendance et attirant : le cashback. De nombreux logiciels proposent ce service, mais comment fonctionne-t-il ? Et comment en bénéficier ? Ce tutoriel répondra à toutes vos questions !

Information préambule

Les exemples de ce tutoriel seront en parti pris sur le site de cashback iGraal, étant donné qu’il est le premier site de cashback en France.

Trêve de blabla, bonne lecture !

Comment fonctionne le cashback ?

Les sites/applications de cashback négocient avec les grandes marques et vendeurs, qui seront leurs partenaires (ex: Amazon, Ali express, Cdiscount, Conforama, etc.) une commission sur les achats de tous les clients qu’ils leur envoient. Commission qui sera alors partagée avec le client, c’est ça, le cashback.

Ces sites nous poussent alors un peu à la consommation, mais la méthode reste néanmoins très attirante, et de plus assez réglo !

Par exemple :

Si je décide d’acheter mon tout nouveau téléphone en passant par un site de cashback, et non pas par le site du vendeur directement (ex : backmarket), je recevrai un pourcentage de ma facture sur mon compte de cashback, montant qui sera alors possible de retirer.

Y’a t-il des règles à tout ça ?

Eh bien oui !

Attention, si je veux récupérer ce montant, je dois d’abord attendre que ma cagnotte atteigne un certain montant, généralement autour de 15-20 €.

Ensuite, je ne peux pas garder mon compte inactif plus de 2 ans, cela veut dire que je dois acheter, car au dessus de cette date, la cagnotte est remise à zéro et supprimée, et le montant revient au site de cashback.

Quel sites/applications choisir ?

Plusieurs plateformes propose ce service :

  • iGraal
  • Poulpeo
  • eBuyclub
  • Swagbucks
  • Capital Koala

Mais alors comment choisir avec tous ces choix.

La première chose est de comparer. Chaque plateforme possède des pourcentages différents. C’est donc a l’utilisateur de faire le choix en fonction de lui.

Par exemple :

Je suis un grand acheteur chez Amazon, je vais alors comparer les pourcentages les plus avantageux. Si iGraal a le plus gros pourcentage, je me dirigerai plutôt vers cette plateforme.

Quels sont les avantages de choisir un bon site de cashback ?

  • Choisir un bon site de cashback vous permettra de profiter de plusieurs avantages. Un site de qualité vous offre un choix varié d’offres et de partenaires marchands, ce qui signifie que vous pouvez utiliser le cashback pour presque tous vos achats en ligne.
  • De plus, des taux de remboursement intéressants sont essentiels pour maximiser vos économies.
  • Un site de cashback de qualité sera également intuitif et rapide à utiliser, vous permettant d’économiser non seulement de l’argent, mais aussi du temps.
  • Un service client réactif et à l’écoute est également crucial, car il peut vous aider à résoudre les problèmes et répondre à vos questions.
  • Enfin, des options de paiement sûres sont importantes pour vous permettre d’accéder à vos gains de la manière qui vous convient le mieux.

Mais alors, comment comparer ?

Se rendre sur un des sites, par exemple iGraal (plus de 1800 partenaires), se connecter

chercher si le site est partenaire à iGraal, ici AliExpress.

Si AliExpress est bien partenaire, il faut alors trouver le pourcentage de cashback d’affiché.

La capture ci-dessus montre un cashback de 2,5%. Le site iGraal propose alors un cashback de 2,5% sur le site marchant AliExpress.

Comment bénéficier de la remise ?

Apres avoir créé votre compte, il suffit donc ensuite de sélectionner le code promo qui vous redirigera vers le site marchand (ici Amazon). Puis de réaliser vos achats. Le montant sera alors déposé dans la cagnotte iGraal.

J’ai pris exemple avec mon compte (capture ci-dessus), de ma cagnotte iGraal.

A noter que quand vous effectuer un achat et que vous récupérez l’argent sur votre cagnotte, l’argent sera en attente de validation, ici, mes 3€ sont en attente de validation.

Quoi de plus ?

Imaginons que je me rends sûr par exemple Zara faire mon achat, et zut ! Je me rends compte que je ne suis pas passé par iGraal ! Que faire pour y remédier ?

Les plateformes de cashback permettent d’installer une extension qui s’appliquera sur tous les sites partenaires a la plateforme, il suffit de l’installer puis le cashback s’activera automatiquement quand vous vous rendrez sur un site partenaire.

Voici comment faire,

Aller sur iGraal, créer son compte (à part si c’est déjà fait) et se rendre en bas de page,

Cliquer sur « Extensions iGraal »,

Puis « Ajouter à Chrome », et suivre les étapes de téléchargement.

Bravo ! Tout sera fini quand vous arriverez sur cette page, maintenant, plus qu’a se rendre sur un des sites partenaire (sans passer par iGraal) et le cashback sera activé automatiquement !

Et les moyens de paiements pour récupérer mon cashback ?

Vous vous demandez quels sont les moyens de paiement disponibles sur les sites de cashback ? Les sites modernes et qualitatifs proposent en général plusieurs types de paiements.

Ainsi, vous pourrez récupérer votre argent au travers d’un virement bancaire, en crédit Paypal, en chèques cadeaux, en bons d’achat…

Votre argent vous attendra tranquillement sur votre cagnotte personnelle puis à vous de décider de la façon dont vous souhaitez le récupérer.

Conclusion

En ayant suivi ce tutoriel à la lettre, vous devriez être paré à recevoir vos premiers euros de cashbback dès maintenant.

J’espère avoir répondu à vos nombreuses interrogations, car en effet, restant tout de même assez intuitif, se lancer dans le cashback demande une certaine réflexion.

Les arnaques sont rares, mais il est toujours important de vérifier le site sur lequel on se trouve, voici une liste de site de cashback très professionnels, variés et de qualités.

  • iGraal
  • Poulpeo
  • eBuyclub
  • Swagbucks
  • Capital Koala
  • Widilo
  • Joko
  • Keetiz
  • Aklamio
  • Bankybee

En espérant que cela vous a été utile !

Merci de votre lecture.

Tutoriels

Comment créer un jeu sur scratch ?

Vous avez toujours voulu créer un jeu vidéo par vos propres moyens ? Si c’est le cas vous êtes au bon endroit. Créer un jeu vidéo est généralement très compliqué et impose de nombreuse propriétés inconnu du grand public, je vais ainsi vous montrer un exemple de jeu sur Scratch comme vous pouvez le voir ci dessous

Pour commencer il faut d’abord soit sélectionner un arrière plan ou en créer un comme dans mon cas ci dessus. Il faut ensuite choisir des personnages et les modifier pour rendre le jeu de plus en plus attractif, par exemple j’ai modifié le costume de mon personnage pour le mettre avec le maillot du Réal de Madrid

Maintenant que le personnage est customisé il faut créer son code qui va permettre de faire le jeu. Le code ci dessous permet d’animer le personnage pour le rendre mobile en le changeant de costume. L’objectif de ce code est de faire taper le joueur dans le ballon et de faire une célébration en cas de victoire atteinte pour un score de 10 buts marqués en 20 tirs

Le but de la création de ce jeu est de simuler des tirs au but il faut donc ajouter un autre personnage qui servira de gardien qui a pour but d’arrêter le tir de l’attaquant. Il faut ensuite créer un code comme ci dessous qui lui permet de se déplacer avec les touches X pour se déplacer vers la gauche, C pour se déplacer vers la droite, W pour plonger à gauche et V pour plonger à droite. La barre espace permet de faire sauter le gardien.

Pour que le jeu puisse réellement fonctionner il faut ajouter les commandes du tireur, le ballon, et le compteur de points. Tout ceci va être exécuté sur le script du ballon ci dessous :

Ce script permet d’annoncer les buts, les arrêts et les loupés car si le ballon touche le gardien c’est un arrêt, si le ballon est en dehors du cadre c’est loupé sinon c’est but. Ce code permet à l’attaquant de tirer avec le viseur de souris. Ce jeu est un jeu pour 2 un tireur et un gardien, il peut être ajouté des options facultatives comme une animation de victoire ou de défaite que je ne vous montre pas car il faut essayer d’améliorer son jeu avec son inspiration et car cela permet aussi d’apprendre à coder par soi même

Vous pouvez maintenant jouer au jeu à 2 et aussi le publier sur Scratch

Tutoriels

Comment mettre en ligne une vidéo YouTube

Vous avez toujours rêvé de mettre en ligne votre première vidéo pour devenir un Youtubeur très célèbre. Mais vous n’avez jamais réussi alors ce tuto est fait pour vous !

Création de la chaine

Pour commencer il vous faut vous connecter à YouTube avec votre compte google puis crée une chaîne YouTube que vous pourrez personnaliser par la suite.

Une fois la chaîne YouTube créée, cette page ci-dessous s’affiche, elle permet de choisir le nom de votre chaîne YouTube et permet d’ajouter une photo de profil à votre chaîne. Tous ces paramètres pourront être modifiés ultérieurement si vous le souhaitez

Mise en ligne de la vidéo

la chaîne YouTube créée, YouTube vous redirige directement sur votre chaîne, pour commencer la mise en ligne de la vidéo, cliquez sur l’icône “Créer” en haut à droite de l’écran puis cliqué sur “mettre en ligne une vidéo”

YouTube vous redirige sur YouTube studio et une page s’affiche .Il vous suffit donc de déposer votre fichier en format mp4 avec le bouton sélectionner votre fichier ou de le swaper de votre fichier jusqu’à cette page .

Normalement si votre vidéo est au bon format (mp4) une nouvelle page devrait apparaître avec le nom de votre fichier au milieu à droite. Si c’est le cas votre êtes sur la bonne voie.

Détails de la vidéo pour la mise en ligne

vous devrez choisir un titre à votre vidéo(claire et court tout en donnant l’idée principale de votre vidéo) puis vous devrez choisir une description qui permettra  de présenter le sujet de votre vidéo ou de partager des éléments supplémentaires aux utilisateurs qui regarderont votre vidéo.

Dans la partie Miniature vous pourrez choisir une miniature parmi les 3 proposées par YouTube seulement en cliquant dessus ou bien grâce à l’onglet  “importer une miniature” vous pourrez en importer pour rendre votre vidéo plus attrayante mais attention car il faut qu’elle respecte ces 3 conditions:

  • le format 1280 x 720 pixels (ratio 16: 9)
  • la taille de la miniature est inférieure à 2 Mo
  • le format de fichier JPG, PNG ou GIF

Juste en  dessous des choix de la miniature .Dans la partie playlist vous pourrez insérer votre vidéo dans une playlist déjà créée ou bien en créer une pour insérer  votre vidéo à l’intérieur pour mieux répertorier vos vidéos dans votre chaîne YouTube .C’est une étape  absolument pas obligatoire pour mettre une vidéo en ligne .

Et pour finir par finir avec les détails de la vidéo vous cochez “non la vidéo n’est pas conçue pour les enfants”

Vous cliquerez ensuite sur “Suivant” pour arriver aux éléments de la vidéo .

éléments de la vidéo pour la mise en ligne

Cette partie permet d’ajouter des éléments à votre vidéo comme par exemple:

  • des sous-titres ; qui permettront d’exporter votre vidéo au monde entier.
  • d’afficher une des dernières vidéos de votre chaîne à la fin de votre vidéo; pour amener votre auditeur à vos autres vidéos. 
  • ou bien pendant la vidéo, d’afficher des liens cliquables ; permettant de rediriger vos auditeurs.

Vérifications de la vidéo pour la mise en ligne

Puis vous appuyez sur “Suivant” en bas à droite de votre page  pour arriver dans les vérifications réalisées par YouTube. Cette étape permet de vérifier si vous n’avez pas utilisé le contenu d’une autre personne sans son accord (musique, vidéo etc). À savoir : on parle ici des droits d’auteur.

Dans le cas de la photo ci-dessous “Tout est ok”

Pour une dernière fois puis vous appuyez sur “Suivant” en bas à droite de votre page pour arriver dans la visibilité de votre vidéo sur la plateforme YouTube .

Visibilité de la vidéo

Vous allez arriver sur une nouvelle page où vous pourrez choisir la visibilité de votre vidéo :

  • public = tout le monde peut le voir
  • Non répertoriée = tous les utilisateurs disposant du lien peuvent regarder votre vidéo
  • Privée = seuls vous et les personnes que vous choisissez pouvez regarder votre vidéo

Puis une fois que tout est prêt (vérifications terminées et aucun problème détecté) appuyez sur enregistrer.

La vidéo est en ligne

Si vous respectez ce tuto, vous arrivez sur cette nouvelle page ci-dessous.

Bravo votre vidéo est en ligne!!

Tutoriels

Comment utiliser I’ IA de Wondershare Filmora ?

L’intelligence artificielle est utilisée dans un grand nombre de domaines, y compris dans le domaine du montage vidéo ou photos. WonderShare Filmora propose une version polyvalente de cette intelligence allant de l’intelligence artificielle de conversation à la création de musique ou d’images

Qu’est ce que l’Intelligence artificielle ?

L’intelligence artificielle est un ensemble de méthodes et techniques destinés a simuler l’intelligence humaine et je dit bien simuler, pas reproduire avec exactitude. il existe deux types d’IA tout d’abord l’IA faible utilisé dans des taches spécifiques comme la reconnaissance de voix, et l’IA forte utilisé pour résoudre des problèmes complexes et simuler des comportements humains.

Ajouter des sous titres a une vidéo

Cette méthode s’avère très utile dans la création de vidéo YouTube si on veut ajouter des sous-titres pour une meilleure compréhension ou si on veut écouter une vidéo sans le son . il est très simple d’ajouter des sous-titres d’une vidéo dans toutes les langues disponibles.

D’abord il faut d’importer une vidéo ou un audio.

Il faut ensuite disposer la vidéo sur la timeline, la sélectionner, faire clic droit et sélectionner le terme « speech to text » comme ci-dessous.

Une page s’affiche, il suffit de choisir selons ces préférences il faut choisir la langue de l’audio en fonction de si c’est l’ensemble de l’audio qui est à traduire ou simplement une partie (cela ne fait pas une traduction si l’on met dans ce cas en Français alors que l’audio est en anglais)

après cela l’audio ou la vidéo et sous-titré dans la langue parlée, on peut modifier les sous-titres en faisant clic droit sur le texte qui apparait en bleu.

Une autre page s’interpose.

on peut modifier le type de texte ou le texte, la taille, l’agencement (si on veut par exemple traduire en Français). La partie « préréglage » permet de changer la couleur du texte

Découpe intelligente IA

cette utilisation de l’IA qui peut être très pratique quand la vidéo est lente et avec une bonne stabilisation, la découpe intelligente consiste a effacer une partie d’une vidéo comme par exemple une montagne, on peut par la suite la remplacer par une autre élément ,un autre motif.

Il suffit ensuite d’utiliser de sélectionner avec le stylo les parties qu’on veut retirer on peut choisir l’épaisseur du stylo, l’épaisseur des contour. Une gomme est à disposition afin d’effacer les traits qui dépassent du motif que l’on veut garder ou si l’on veut lisser les contours pour moins d’imperfections.

La mise au point de ce que vous voulez retirer ou garder ce fait automatiquement comme ci-dessus, quand vous avez choisi votre zone d’image vous pouvez appuyer sur démarrer la découpe intelligente marqué par la flèche ci-dessus, toute la vidéo sera alors parcouru et gardera l’élément sélectionné, effaçant le reste.

On peut par la suite mettre un autre fond comme ci-dessous.

Suppression vocale

La suppression vocale est vraiment très simple à appliquer, il suffit d’importer une musique, faire clic droit clic droit et de cliquer sur « suppression vocale par IA ». On obtient alors deux bandes sons, une qui contient seulement la voix et une autre contenant seulement la musique,

IA de conversation

Filmora comprend également une partie très similaire a chat GPT, elle se trouve dans l’écran d’accueil sur « rédaction IA » , cette rédaction reprend exactement les mêmes aspects que chat GPT, mais cependant elle est mise est mise à jours.

Extension audio IA

L’extension audio peut être utilisé quand votre vidéo est trop longue pour votre musique ou au contraire trop courte pour votre musique. Il faut sélectionner l’outil « extension audio » comme si dessous

par la suite il faut étendre l’audio ou de le diminuer. Attention, diminuer l’audio n’efface pas une partie, l’IA contracte l’audio.

Conclusion:

J’ai expliqué ici 5 utilisations de l’intelligence artificielle de Filmora, néanmoins filmora présente beaucoup plus d’IA que cela. Je ne les ai pas toutes présentés parce que certaines sont presque identiques que celles présenté.De plus La création d’image par description, n’est que peu utile pour le montage vidéo, et la création de musique par choix de thème reste quand même à développer les musiques générées comme cela présente encore trop de défauts à mon gout. Enfin l’IA peut être très utile pour faire un montage vidéo ou audio. Grâce a de nombreux outils plus ou moins puissant qui vous facilitent la vie.

Tutoriels

Comment installer Pip sur Mac ?

Les jeunes, dont moi, préfèrent les Mac d’Apple pour leur esthétique et l’écosystème intégré, en particulier la stabilité de macOS, idéale pour la programmation. Cependant, certains novices éprouvent des difficultés. Fort de mon expérience, je propose un tutoriel sur les bases de Python, mettant l’accent sur l’installation de Pip sur Mac. Découvrons ensemble comment installer Pip sur ce système ?

Etape 0 : Une claire compréhension de ce que l’on tente d’installer

« Pip » est l’acronyme du « Pip Installs Packages » (Pip Installe des Paquets). C’est une commande en ligne qui simplifie le processus d’installation, de mise à jour et de désinstallation de packages Python depuis le Python Package Index (PyPI). PyPI est un dépôt qui héberge un grand nombre de packages Python développés par la communauté.

Par exemple, pour installer une bibliothèque Python à l’aide de pip, vous pouvez exécuter la commande suivante dans le terminal ou l’invite de commande :

pip install nom_du_paquet

Etape 1 : Téléchargement de PIP.

Pour commencer nous allons lancer notre moteur de recherche safari vue que nous sommes sur Mac.

Puis nous partirons sur le moteur de recherche suivant google en marquant sur notre barre de Recherche google.com.

Nous arrivons donc sur google (vous en faite du chemin dit donc !!!).

Une fois sur notre cher moteur de recherche, nous saisirons « télécharger pip Python » dans la barre de recherche pour accéder à un site sécurisé permettant donc comme convenu l’installation de pip.

Une fois que nous appuyons sur « Entrée », nous atteignons l’endroit souhaité. À partir de ce moment, il est crucial d’être minutieux et de suivre scrupuleusement mes instructions. Donc, une fois arrivés, effectuez un double-clic sur le premier lien ou celui que j’aurai encadré et pointe.

Ce lien nous guide vers la page suivante, simplifiant ainsi notre navigation. En double-cliquant sur « Téléchargement des fichiers », on sera re-directe vers la page suivante.

Double clique sur les premiers liens « Distribution des sources » qui va lancer le téléchargement du programme.

Suite au téléchargement du programme, effectuez un double-clic sur le fichier afin de confirmer son installation.

Mes félicitations ! Vous avez accompli avec brio l’installation de Pip sur le disque dur, marquant ainsi une étape cruciale dans l’amélioration de votre configuration informatique.

Pip a bien été installé sur le disque dur.

Etape 2: Installation de Pip.

Initiez le lancement de Thonny, puis, dans le menu « Outils », procédez à la sélection de l’option « Ouvrir la console du système… » avant d’effectuer un double-clic pour accéder à cette fonctionnalité cruciale.

Nous voilà désormais en présence du Terminal, prêt à être utilisé avec enthousiasme !

Copie le code fourni ci-dessous avec précaution dans la console de ton Mac. Ensuite, presse la touche « Entrée » pour déclencher le processus d’installation de Pip, améliorant ainsi les capacités de ton système de manière significative.

Le code en question:

python3 -m pip install --upgrade pip

Apres avoir copié soigneusement le code mentionné ci-dessous dans la console de ton Mac. Puis, une fois cette étape accomplie, confirme en appuyant sur la touche « Entrée », déclenchant ainsi l’installation de Pip, et observe avec satisfaction l’apparition d’un message de confirmation pour attester du succès de cette opération.

Bonus

Bravo ! Vous avez brillamment suivi les étapes d’installation de pip sur votre Mac, démontrant ainsi votre détermination et votre habileté à maîtriser ces processus techniques. Soyez fiers de cette réalisation, car elle témoigne de votre capacité à surmonter des défis informatiques. Votre réussite dans cette tâche essentielle ouvre la voie à de nouvelles opportunités passionnantes dans le monde de la programmation. Continuez sur cette lancée, et rappelez-vous que chaque victoire, aussi petite soit-elle, contribue à votre progression. Vous avez toutes les raisons d’être fiers de vos compétences nouvellement acquises !

Tutoriels

Gérer l’espace de stockage sur son IPhone

Vous avez surement déja du faire face au problème du manque d’espace de stockage sur votre IPhone. L’espace de stockage est défini sur l’appareil Apple en question qu’il soit un Iphone, un IPad ou un Mac, a ne pas confondre avec le stockage ICloud qui correspond au stockage des photos, des fichiers ou d’autres documents disponibles sur tout vos appareils.

A force d’utiliser notre téléphone, nous emmagasinons les photos, les téléchargements et les messages qui se stockent dans l’espace de stockage. Au bout d’un moment, lorsque le stockage se rapproche de sa capacité maximale, on recoit des notifications de prévention. Ces notifications parviennent de plus en plus fréquemment et le smartphone commence a moins bien fonctionner. Il peut y avoir des bugs ou des latences.

C’est a ce moment la qu’il faut vider son espace de stockage, c’est a dire, se débarasser des documents encombrants qu’on a accumulé.

Dans ce tutoriel, je vais donc vous expliquer comment optimiser et gérer son espace de stockage sur un IPhone.

Introduction

Pour commencer a libérer de l’espace, il faut savoir quels éléments l’occupent. Pour ce faire, il faut aller dans l’application « réglages », puis « général », puis, « stockage IPhone ». Vous arrivez sur une page d’information concernant votre occupation de l’espace de stockage.

Les pièces jointes

Juste en dessous du schéma représantant l’espace de stockage, il y a un onglet « Recommandations » qui peut apparaitre. Il indique par ou commencer quand il faut vider l’espace de stockage, la par exemple, il propose de vider les pièces jointes envoyées ou recues par message. En effet, elles ne sont pas forcément visibles dans la galerie mais peuvent prendre une place importante dans les messages.

Effacer des applications

En dessous de l’onglet « recommandations », vous verrez la liste de vos applications prenant le plus de place jusqu’a celle qui vous en consomme le moins. Vous avez donc une idée de quelles applications vous pouvez supprimer et qui ne vous manqueront pas.

Malheuresement, ce sont les applications qui consomment le moins d’espaces, il faut donc examiner celles qui en consomment le plus. Ce sont souvent les photos, les boites mails, les réseaux sociaux et les applications de streaming.

L’application Photos

Il n’y a pas beaucoup de solutions concernant les photos a part les enregistrer sur votre Cloud, pour ce faire, retournez dans les réglages, appuyez sur votre nom tout en haut, puis « ICloud », sélectionnez « Sauvegarde ICloud » afin de sauvegarder vos photos sur votre Cloud ou « Gérer votre forfait » si le votre n’est pas suffisant.

Sélectionnez ensuite « Photos ICloud » puis « Télécharger et garder les originaux » qui optimisera la qualité des photos et prendra un espace minimum.

Le mieux a faire est en suite de supprimer les photos que vous avez en doublons ou inutiles ou supprimer les vidéos trop longues. N’oubliez pas également de tout supprimer dans vos photos et vidéos supprimées récemment qui prennent encore de la place.

Les applications de streaming

Dans les applications de streaming, ce qui prend le plus de place c’est les téléchargements. Vous avez peut etre sur des applications de streaming de musique par exemple téléchargé des playlists entières ou des albums que vous n’écoutez plus. Il faut donc penser a les enlever des téléchargements.

C’est exactement la meme chose sur les applications de streaming de films et de séries. Pensez a retirer des téléchargements les contenus que vous avez déja regardé afin de libérer de l’espace.

Sur les réseaux sociaux

Pour les réseaux sociaux comme Instagram, Snapchat et Tiktok, on ne veut pas toujours supprimer ses publications qui prennent de l’espace. Heureusement, il existe d’autres alternatives. Vous pouvez par exemple supprimer des anciennes conversations et surtout des anciens groupes, supprimer ses historiques quels qu’ils soient ou encore supprimer des fichiers multimédias comme des photos ou des vidéos.

Pour d’autres réseaux sociaux comme Whatsapp, une appliation qui accumule les pièces jointes et peut très vite prendre beaucoup d’espace, il faut aller dans les réglages de l’Iphone, puis, sélectionner « Gérer le stockage ». Vous pourrez donc trier et supprimer assez d’élements pour mettre fin a ce problème de manque d’espace.

Les boites mails

Les boites mails présente le meme problème que Whatsapp, de plus, elles accumulent également tout les brouillons, les spams et les mails non supprimés. Vous pouvez par exemple supprimer votre boite mail principale si vous y avez accès régulièrement sur un ordinateur, sinon, allez sur votre boite mail et supprimez les messages les plus volumineux, les spams et les mails dans la corbeille.

J’espere vous avoir aidé avec ces idées pour libérer le stockage de votre IPhone, la meilleure solution reste de placer tout ses documents sur son Cloud. Le manque d’espace de stockage peut etre très handicapant dans le fonctionnement du téléphone, je vous conseille donc de faire du tri le plus souvent possible.

Projets

Un météorologue personnel en briquette !

Qui n’a jamais rêvé d’avoir un robot en LEGO qui lui annonce la météo ? Et bien même si ce n’est pas le cas, nous l’avons fait pour vous ! Venez découvrir un robot capable de comprendre son environnement pour vous donner la météo.

Fonctionnalités du robot

Notre robot au doux nom de ROBKEY est capable de :

  • déplacer ses bras et son bassin ;
  • reconnaitre l’endroit où il se trouve pour donner précisément la météo ;
  • afficher l’heure, la météo et la température ambiante ;
  • d’avoir quelques réactions faciales ;
  • et bien plus.

La conception du robot

Pour concevoir notre robot, nous avons dû prendre en compte plusieurs choses. Tout d’abord, les moteurs n’ont pas été particulièrement dur à installer car il ne font que la moitié de la taille de l’esp 32. Il nous a donc paru évident de mettre les moteurs des bras dans le torse du robot et le moteur du bassin dans le châssis de ses chenilles.

Ensuite il a fallu installer planche de test qui a eu plusieurs positions possibles. Premièrement dans son dos car cela aurait permis de pouvoir faire tourner le bassin du robot à 360°, mais les câbles auraient difficilement bien tenu à l’esp 32 et au robot lui-même. Nous nous sommes finalement entendu à l’idée de mettre la planche sur la batterie des chenilles bien que cela empêche le robot de faire des tours sur lui même.

Maintenant, le plus important : le placement de l’ESP32. Nous avions deux idées, l’une le plaçait dans le torse du robot, l’autre faisait en sorte qu’il soit la tête légèrement rentrée dans les épaules. Nous avons opté pour la seconde option car celle-ci nous permet d’afficher un petit visage sur l’écran du microcontrôleur.

Pour conceptualiser l’apparence de notre robot, nous avons donc réalisé un schéma en 3D très simple sur Paint 3D en regroupant nos idées pour imaginer ce à quoi il ressemblera.

Construction de la structure du robot

Pour construire le robot, j’ai (Sylvain) commencé par regarder les constructions Lego que j’avais précédemment réalisées et qui pouvaient être détruite pour commencer à récupérer leurs pièces. Avec toutes ses matières premières je me suis laissé porter par mon imagination pour construire le LEGO le plus ressemblant à un robot en essayant de faire en sorte qu’il soit plutôt résistant (bon d’accord j’ai peut-être failli à cette tâche).

C’est grâce aux joies de la maladie que j’ai pu entamer la construction. Pour commencer, j’ai récupéré le châssis d’une autochenille radiocommandée en la modifiant pour la rendre plus compacte et en laissant un espace pour le moteur du bassin.

Ensuite j’ai commencé à faire ledit bassin, que j’élargis à la fin de la construction car je l’avais fait trop fin. Suivi du torse, le plus simple car il devait être creux pour laisser la places aux câbles et aux moteurs. Il fallait aussi préparer les trous pour les axes des bras.

Après j’ai fait les bras qui sont vraiment très simplistes mais à ce moment je commençais sérieusement à manquer de pièces plus techniques et même des plus simples pour faire quelque chose de plus sympathique. Mais quoi qu’il en est l’un des deux bras représente un soleil pour quand il fait beau, tandis que l’autre représente un ciel nuageux.

Pour finir j’ai réalisé la cage de la planche de test et solidifié les éléments les moins solides et résolu les quelques problèmes mécaniques rencontrés lors des premiers tests des moteurs.

L’électronique du robot

En parallèle de la construction du LEGO, je (Thomas) me suis lancé dans la conception électronique de celui-ci.

Pour cela, j’ai d’abord listé tout ce que je voulais intégrer à l’électronique :

  • 2 boutons,
  • 1 capteur de température,
  • 3 moteurs.

Pour m’aider dans la réalisation électronique, je me suis aidé de tous ces sites :

Allez c’est parti !

On commence par le branchement des boutons :

Les câbles blancs (entourés en rouge) récupèrent l’information de la pression du bouton et les câbles noirs (entourés en vert) s’occupe de fermer le circuit (de l’électricité passent dans le bouton, et il faut que l’électricité puisse faire une boucle). Si vous voulez, les boutons reçoivent de l’énergie par les câbles blancs et l’expulsent par les câbles noirs.

Concernant le branchement du capteur :

A droite à quoi ressemble le capteur de température de face et à gauche son branchement. La câble de gauche, en blanc récupère les mesures du capteur, celui du milieu en marron, alimente positivement le capteur (le capteur reçoit de l’énergie par ce câble) et le câble noir à droite du câble marron lui ferme la boucle (le capteur expulse l’énergie par ce câble.)

Et pour finir, les moteurs ont 3 câbles :

Le câble orange sert à contrôler le moteur, le rouge à l’alimenter et le marron à fermer la boucle. On refait ça 3 fois puisqu’on a 3 moteurs.

On branche tout ceci à la planche de test puis à l’ESP32, et voilà montage terminé :

Programmation du robot

Maintenant que le robot est construit et le montage électronique assemblé, il faut passer à la programmation de l’ESP32. Veuillez noter que depuis l’écriture de ce qui suit, le code a bénéficié de quelques mises à jours. Vous retrouverez l’archive en fin d’article avec les fichiers à jours.

Tout d’abord, il faut coder les briques de bases, qui vont nous permettre de manipuler différents outils, capteurs, actionneurs, api, etc.

  • C’est pour cela que nous créons un fichier buttons.py qui contient une classe Button dans laquelle nous initialisons 4 boutons : les 2 du microcontrôleur et les deux boutons ajoutés. Dans cette classe, vous verrez que chaque boutons a des caractéristiques supplémentaires. En effet il est possible de rendre un bouton poussoir équivalent à un levier. Nous créons différentes fonctions pour récupérer ou modifier des informations en rapport avec les boutons.
from machine import Pin
from time import sleep

# Importer les modules est inutile car ils sont déjà importés dans boot.py

class Buttons():
    def __init__(self):
        #self.name = "t-display-s3"
        
        # NomDuBouton : [                    PinUtilisé                     ,    mode    , value ]
        #      1      : [ Pin 3 en mode INPUT avec une résistance Pull-Down ,   levier   ,   0   ]
        # 1 : [ Pin(3, mode=Pin.IN, pull=Pin.PULL_DOWN), 1, 0 ]
        
        # Note : le chiffre de value dans la liste n'est pas pris en compte si le bouton est en mode "poussoir" -> On ne peut pas mettre None car si on décide de changer le mode du bouton, la valeur devient importante.
        
        
        # Pour une raison inconnue, "left" et "right" ne fonctionne plus.
        self.list_button = {"left" : [Pin(0, Pin.IN, Pin.PULL_UP),0,1],
                            "right" : [Pin(14, Pin.IN, Pin.PULL_UP),0,1],
                            1 : [Pin(2, mode=Pin.IN, pull=Pin.PULL_UP),0,1],
                            2 : [Pin(3, Pin.IN, Pin.PULL_UP),0,1]
                            }


    def getButton(self, button):
        return self.list_button[button]
    
    def setButton(self, button, pin, mode, value=None): # Le set fait également add.
        self.list_button[button] = [pin,mode,value]

    def setMode(self, button, val:bool): # Ce mode change le mode du bouton -> soit "levier" soit "poussoir"
        if isinstance(val, bool) or val in (0,1):
            self.list_button[button][1] = val
            if not(val):
                self.list_button[button][2] = 1
            return print("Mode définie sur : " + str(self.list_button[button][1]))
        else:
            raise ValueError("val must be a boolean or a integer included between 0 and 1.")
    
    def setValue(self, button, value):
        if self.list_button[button][1]:
            self.list_button[button][2] = value
            return print("Valeur définie sur : " + str(self.list_button[button][2])) 
        else:
            print("Button must be a toogle button, not a push button.")
            return False
    
    def getValue(self, button): # Renvoie la valeur du bouton
        if not(self.list_button[button][1]): # Si le statut de mode_toogle est égal à 0 <=> Si le bouton est en mode "poussoir" et non "levier"
            return self.list_button[button][0].value()
        else:
            if not(self.list_button[button][0].value()):
                self.list_button[button][2] = 0 if self.list_button[button][2] else 1
                sleep(0.25)
            return self.list_button[button][2]
    
    def isButtonPressed(self,button): # Renvoie True si le bouton est pressé (donc si value = 0) et False sinon
        return not(self.getValue(button))
  • Continuons avec le fichier temperature.py dans lequel nous avons une simple fonction qui nous renvoie les données récupérées par le capteur de température et d’humidité.
from time import sleep  #Inutile car importé dans boot.py

def getTemperatureAndHumidity(capteur): # Capteur doit etre sous cette forme : capteur = dht.DHT11(Pin(17)) -> Ne pas oublier d'importer le module dht
    try:
        capteur.measure() # Met à jour les données de températures et d'humidités
        sleep(1)
        return (capteur.temperature(),capteur.humidity())
    except:
        print("Valeurs non récupérées")
        return False
  • Egalement, à l’aide des fichiers motor.py et servo.py (trouvé sur internet), nous créons des fonctions qui réaliseront des déplacements particuliers :
from servo import Servo
import time

motor=Servo(pin=12) # A changer selon la broche utilisée
motorbd=Servo(pin=10)
motorbg=Servo(pin=11)
 
def droit(t=1):
    motor.move(285)
    time.sleep(t)

def bassin(t=2):
    motor.move(265)
    time.sleep(t)
    motor.move(305)
    time.sleep(t)

def baissebg(t=0.5):
    motorbg.move(335)
    time.sleep(t)
    
def levebg(t=0.5):
    motorbg.move(270)
    time.sleep(t)

def baissebd(t=0.5):
    motorbd.move(335)
    time.sleep(t)
    
def levebd(t=0.5):
    motorbd.move(270)
    time.sleep(t)
    
droit()
  • Pour finir, à l’aide du fichier connection.py, nous créons plusieurs fonctions en rapport avec la partie sans-fil de l’ESP32.
import network
import st7789 #En théorie inutile car déjà importé dans boot.py
from time import sleep

def connect_to_wifi(display, font, ssid, mdp):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        display.init()
        display.draw(font,"Connexion a un point",0,111)
        display.draw(font,"d'acces en cours",15,126)
        wlan.connect(ssid,mdp)
        while not wlan.isconnected():
            pass
    display.fill_rect(0,107,170,25,st7789.BLACK)
    display.draw(font,'Connecte !',40,111)
    sleep(0.8)
    display.fill_rect(0,107,170,10,st7789.BLACK)
    display.deinit()

def search_wlan():
    station = network.WLAN(network.STA_IF)
    station.active(True)
    return station.scan()

Passons aux modules qui vont utiliser des apis :

  • En premier lieu, nous avons le fichier geoloc.py dans lequel nous utilisons l’api de google qui à l’aide des réseaux wifi aux alentours est capable de situer l’ESP32. Dans ce fichier est présent une fonction qui récupère les coordonnées géographiques de l’ESP32.
from modules.connection import search_wlan
import ustruct as struct
import urequests as requests
import ujson as json
import modules.api_txt as api_txt


def getLocation(api_key): # Avec Google maps API + sécurité sur le nombre de requête.    
    
    if int(api_txt.get_api_counter()[0]) > 24000:
        print("Quota de demande dépassé !!! Vous ne pouvez pas faire de requête...")
        return False
    
    list_wlan = search_wlan()
    data = {
        "considerIp": False,
        "wifiAccessPoints": []
    }

    for wifi in list_wlan:
        entry = {
            "macAddress": "%02x:%02x:%02x:%02x:%02x:%02x" % struct.unpack("BBBBBB", wifi[1]),
            "signalStrength": wifi[3],
            "channel": wifi[2]
        }
        data["wifiAccessPoints"].append(entry)
    
    headers = {"Content-Type": "application/json"}
    url = "https://www.googleapis.com/geolocation/v1/geolocate?key=" + api_key
    response = requests.post(url, headers=headers, data=json.dumps(data))

    api_txt.add_api_counter(0)

    return json.loads(response.content)["location"]
  • En second et dernier lieu, il reste le fichier meteo.py qui va être capable d’utiliser une api de météorologie pour récupérer, analyser et mettre en forme des données en rapport avec la météo.
import urequests
import modules.api_txt as api_txt

def get_meteo(latitude, longitude): # Sur la prochaine heure
    
    if int(api_txt.get_api_counter()[1]) > 10000:
        print("Quota de demande dépassé !!! Vous ne pouvez pas faire de requête...")
        return False
    
    url = "https://api.open-meteo.com/v1/forecast?latitude={0}&longitude={1}&current=temperature_2m,precipitation&daily=temperature_2m_max,temperature_2m_min,precipitation_sum&timezone=auto&forecast_days=3".format(latitude,longitude)
    json_meteo = urequests.get(url).json()
    
    api_txt.add_api_counter(1)
    
    return {"current":
            {"temperature":
             [
                 json_meteo["current"]["temperature_2m"],
                 json_meteo["current_units"]["temperature_2m"]
                 ],
             "precipitation":
             [
                 json_meteo["current"]["precipitation"],
                 json_meteo["current_units"]["precipitation"]
                 ]
             },
            "demain":
            {"temperature": [round((json_meteo["daily"]["temperature_2m_min"][1] + json_meteo["daily"]["temperature_2m_max"][1]) / 2, 1), json_meteo["daily_units"]["temperature_2m_min"]],
             "precipitation":
             [
                 json_meteo["daily"]["precipitation_sum"][1],
                 json_meteo["daily_units"]["precipitation_sum"]
                 ]
             },
            "apres-demain":
            {"temperature": [round((json_meteo["daily"]["temperature_2m_min"][2] + json_meteo["daily"]["temperature_2m_max"][2]) / 2, 1), json_meteo["daily_units"]["temperature_2m_min"]],
             "precipitation":[
                 json_meteo["daily"]["precipitation_sum"][2],
                 json_meteo["daily_units"]["precipitation_sum"]
                 ]
             }
            }

Passons à la gestion graphique, nous avons récupérer le module tft_config.py fournit par les développeurs du pilotes graphiques pour l’esp32. Celui-ci permet de créer facilement une gestion de l’écran avec les bonnes caractéristiques. Nous n’afficherons pas le code ici, car ce n’est pas nous qui l’avons codé. Vous pouvez le retrouver dans l’archive à la fin de cet article ou ici.

Nous avons créé le fichier affichage.py qui contient un certain nombre de fonctions pour réaliser le rendu graphique pour l’ESP32. Il contient également le code qui récupère des images pour les animations du visage et des icones. Ces dessins et animations ont été réalisé par Ilana, ancienne première NSI.

import st7789
from time import sleep, localtime
import modules.motor as motor

last_temps = -1

def display_time(display,font,x,y):
    global last_temps
    temps = localtime()
    if last_temps < temps[5]:
        display.png("/images/icones/horloge.png",x,y,True)
        display.fill_rect(x+30,y+5,60+6,10,st7789.BLACK)
        display.draw(font, str(temps[3]) + ":" + str(temps[4]) + ":" + str(temps[5]),x+30,y+10)
    last_temps = temps[5]

def display_meteo(display,font,infos_meteo, x, y):
    display.draw(font,str(infos_meteo["temperature"][0]),x,y)
    display.draw(font, font.LAST,x + display.draw_len(font,str(infos_meteo["temperature"][0])), y)
    display.draw(font, " C",x + display.draw_len(font,str(infos_meteo["temperature"][0])), y)
    
    display.draw(font,str(infos_meteo["precipitation"][0]),x+80,y)
    display.draw(font,str(infos_meteo["precipitation"][1]),x + 80 + display.draw_len(font,str(infos_meteo["precipitation"][0])),y)

def display_temperature(display,font,infos_temperature,x,y):
    display.fill_rect(x,y,70,20,st7789.BLACK)
    display.png("/images/icones/temperature.png",x,y,True)
    display.draw(font,str(infos_temperature) + " C",x+30,y+9)
    display.draw(font,font.LAST,x+30+display.draw_len(font,str(infos_temperature)), + y+9)    
    
def meteo_icon(display,icone,x,y):
    display.fill_rect(x,y,50,50,st7789.BLACK)
    if icone == "pluie":
        display.png("/images/icones/mauvais_temps.png",x,y,True) #Nuage pluie gris pas content
    else:
        display.png("/images/icones/beau_temps.png",x,y,True) # Soleil content
        

def meteo_widget(display,font,infos_meteo,x,y):
    display.fill_rect(x,y,170,200,st7789.BLACK)
    
    
    display.draw(font, "Auj.",x,y)
    display_meteo(display,font,infos_meteo["current"],x, y+20) #x,y+20)
    
    display.draw(font, "Dem.", x, y+40) #x+50, y)
    display_meteo(display,font,infos_meteo["demain"], x, y+60) #x+50,y+20)
    
    display.draw(font, "Apr-Dem.", x, y+80) #x+90, y)
    display_meteo(display,font,infos_meteo["apres-demain"], x, y+100) #x+90,y+20)

def main_menu(display,font,infos_temp,infos_meteo):
    display_time(display,font, 10, 111) # x = 52 pour un semblant de centrage
    display_temperature(display,font,infos_temp,10,151)
    
    if infos_meteo["current"]["precipitation"][0] > 0:
        icone = "pluie"
        motor.baissebg()
        motor.levebd()
    else:
        icone = "soleil"
        motor.baissebd()
        motor.levebg()
    
    meteo_widget(display,font,infos_meteo,10,191)
    meteo_icon(display,icone,110,111)

def animation(display,name:str,iteration:int,i_fixe:int): # list_anim : {"content":(2,1),"endormi":(4,1),"somnole":(3,1),"observe":(0,0),"monocle":(2,1)}
    display.fill_rect(0,0,170,105,st7789.BLACK)
    for i in range(2,iteration+1):
        display.png("/images/" + name + "/" + name + str(i) + ".png",0,0)
        if name == "endormi":
            sleep(0.3)
    for i in range(iteration,0,-1):
        display.png("/images/" + name + "/" + name + str(i) + ".png",0,0)
        if name == "endormi":
            sleep(0.3)
    display.png("/images/" + name + "/" + name + str(i_fixe) + ".png",0,0)
    

Pour finir nous avons le fichier api_txt.py qui s’occupe de gérer des fichiers de textes importants pour le fonctionnement du programme, présents dans le dossier data.

"""
api[0] => Google Maps API
api[1] => Météo API
"""

def get_api_counter():
    fichier_r = open("data/counter-api.txt",'r')
    liste = fichier_r.read().split(",")
    fichier_r.close()
    return liste

def add_api_counter(indice_api): # ne fonctionne qu'avec deux apis
    fichier_w = open("data/counter-api.txt",'w')
    val = get_api_counter()
    val[indice_api] = int(val[indice_api]) + 1
    
    fichier_w.write(str(val[0]) + "," + str(val[1]))
    fichier_w.close()

def set_api_counter(indice_api,value): # ne fonctionne qu'avec deux apis
    fichier_w = open("data/counter-api.txt",'w')
    api_value = get_api_counter()
    api_value[indice_api] = str(value)
    fichier_w.write(api_value[0] + "," + api_value[1])
    fichier_w.close()

Maintenant que toutes nos briques sont construites, il ne reste qu’à écrire le fichier python principal qui va organiser tout le programme tel un chef d’orchestre.

Assemblage final

Maintenant, il faut simplement assembler notre montage électronique à notre construction LEGO. Puis à brancher notre ESP32 à un câble, lui injecter le code, et tout en le gardant brancher, le lancer, et la magie opère !

Fichiers

Veuillez noter que vous devrez ajouter votre propre clé api Google Maps API pour que la position soit mise à jour (dans boot.py à la ligne 21). Sinon vous pouvez changer manuellement la position dans le fichier old-location.txt se trouvant dans le dossier data. Veuillez respecter l’ordre suivant et ne surtout rien ajouter d’autre dans le fichier, pas même un espace :

latitude,longitude

Vous devrez également ajouter vos propres informations pour un point d’accès dans le fichier boot.py au niveau de la ligne 19 : wlan_info = ("SSID","MDP")
Le projet ne fonctionne pas sans une connexion à internet !!

Art

La Citrouille et la Tortue

Pour notre premier projet en classe de 1ère NSI, nous nous sommes basées sur le thème d’halloween.
Ici vous trouverez nos démarches pour créer cette image de style pop. Notre image est composée de quatre parties comportant chacune un fond et une citrouille de couleur différente.

Vidéo de présentation du projet :

Le projet :

Ce projet consiste à créer de l’art génératif grâce à un script python qui doit principalement utiliser des fonctions. Pour le réaliser, nous avons utilisé le module turtle pour tracer l’image et la fonction randint du module random pour pouvoir transformer notre image (.py) en png. Le thème de l’image générée était libre, elle pouvait même être abstraite !

Le processus de création :

Durant ce projet, nous sommes passées par plusieurs étapes pour concevoir l’image et répondre aux attendus.

Nous avons tout d’abord dû trouver une idée de l’image que l’on voulait créer. Pour cela, nous nous sommes inspirées de l’artiste américain Andy Warhol et de ses oeuvres comme « Shot Marilyns » et nous avons transposé son style dans le thème d’Halloween.

Après avoir dessiné un croquis à la main, nous avons créé le script d’une citrouille puis nous l’avons transformé en plusieurs fonctions pour pouvoir la reproduire en quatre exemplaires. Nous avons fait de même pour les rectangles.

Contrairement aux citrouilles et aux rectangles, nous avons tout de suite codé les lettres en tant que fonctions ce qui nous a permis d’aller plus vite dans la conception de l’image.

Enfin, nous avons dû organiser notre script rigoureusement pour que la tortue trace les éléments dans le bon ordre pour un rendu propre et travaillé.

Le code expliqué étape par étape :

Pour concevoir cette image, nous avons agi étape par étape. Nous avons donc relevé les différentes parties du code qui ont permis de tracer l’image. (Nous ne montrerons pas la mise en place des modules et comment nous avons généré des images automatiquement. Pour cela, vous pouvez vous rendre sur cet article.)

Le fond :

Tout d’abord, nous avons divisé l’écran en quatre parties égales et rectangulaires. Nous avons défini une fonction rectangle(x,y,color). Pour obtenir nos quatre parties distinctes, il suffit de mettre les coordonnées ainsi qu’une couleur en argument pour tracer les rectangles au bon endroit.

# trace les rectangles
def rectangle(x, y, color):
  up()
  goto(x, y)
  down()
  pencolor(color)
  fillcolor(color)
  begin_fill()
  for i in range(2):
    forward(640)
    right(90)
    forward(360)
    right(90)
  end_fill()

Nous appelons donc la fonction avec des coordonnées et des couleurs différentes pour tracer nos quatre rectangles.

rectangle(-640, 360, "#A8608E")
rectangle(-640, 0, "#25AE80")
rectangle(0, 360, "#C9BB32")
rectangle(0, 0, "#E1770C")

Résultat :

L’écriture « HAPPY HALLOWEEN » :

Ensuite, nous avons créé des fonctions pour chaque lettre différente composant l’expression « HAPPY HALLOWEEN » soit une fonction pour les lettres h, a, p, y, l, o, w, e et n. La lettre « o » est spéciale car nous avons voulu la représenter par une citrouille pour rester dans le thème d’Halloween. Ici, nous vous montrerons les fonctions lettre_h(x,y), lettre_o(x,y) et lettre_e(x,y).

# trace la lettre h en majuscule
def lettre_h(x,y):
  pensize(3)
  color("black")
  up()
  goto(x,y)
  setheading(90)
  down()
  forward(50)
  backward(25)
  right(90)
  forward(25)
  right(90)
  forward(25)
  backward(50)


# la lettre o est représentée par une citrouille
def lettre_o(x,y,f):
  pensize(3)
  color("black")
  fillcolor(f)
  up()
  goto(x,y+25)

  a = x
  b = y
  for i in range(2):
    up()
    goto(x, y)
    down()
    begin_fill()
    circle(25)
    end_fill()
    x += 25 / (35 / 15)
    y -= 25 / 14

  a = x + 25 / 1.4
  for i in range(2):
    up()
    goto(a, b)
    down()
    begin_fill()
    circle(25)
    end_fill()
    a -= 25 / (35 / 15)
    b -= 25 / 14

  goto(a + 25 / 14, b)
  begin_fill()
  circle(25)
  end_fill()

  setheading(0)
  up()
  goto(a, b + 25 * 2 + 2)
  down()
  pencolor("black")
  left(350)
  for i in range(4):
    left(40)
    forward(25 / (35 / 15))
    goto(a, b + 25 * 2 + 2)


# trace la lettre e en majuscule
def lettre_e(x,y):
  pensize(3)
  color("black")
  up()
  goto(x,y)
  setheading(90)
  down()
  forward(50)
  right(90)
  forward(25)
  backward(25)
  left(90)
  backward(25)
  right(90)
  forward(15)
  backward(15)
  left(90)
  backward(25)
  right(90)
  forward(25)

Après avoir créé toutes ces fonctions, nous les appelons dans un ordre précis pour écrire « HAPPY HALLOWEEN » et nous utilisons des boucles for pour que l’expression soit répétée et forme un motif. Nous rajoutons également la fonction stamp() qui permet de laisser l’empreinte de la tortue à la fin de la lettre « N ».

h = 20
for i in range(4):
  lettre_h(50,h)
  lettre_a(80,h)
  lettre_p(110,h)
  lettre_p(140,h)
  lettre_y(170,h)
  lettre_h(230,h)
  lettre_a(260,h)
  lettre_l(290,h)
  lettre_l(320,h)
  lettre_o(370,h,"#C9BB32")
  lettre_w(460,h)
  lettre_e(510,h)
  lettre_e(540,h)
  lettre_n(570,h)
  stamp()
  h += 90


h = -340
for i in range(4):
  lettre_h(50,h)
  lettre_a(80,h)
  lettre_p(110,h)
  lettre_p(140,h)
  lettre_y(170,h)
  lettre_h(230,h)
  lettre_a(260,h)
  lettre_l(290,h)
  lettre_l(320,h)
  lettre_o(370,h,"#E1770C")
  lettre_w(460,h)
  lettre_e(510,h)
  lettre_e(540,h)
  lettre_n(570,h)
  stamp()
  h += 90


h = 20
for i in range(4):
  lettre_h(-600,h)
  lettre_a(-570,h)
  lettre_p(-540,h)
  lettre_p(-510,h)
  lettre_y(-480,h)
  lettre_h(-420,h)
  lettre_a(-390,h)
  lettre_l(-360,h)
  lettre_l(-330,h)
  lettre_o(-280,h,"#A8608E")
  lettre_w(-190,h)
  lettre_e(-140,h)
  lettre_e(-110,h)
  lettre_n(-80,h)
  stamp()
  h += 90


h = -340
for i in range(4):
  lettre_h(-600,h)
  lettre_a(-570,h)
  lettre_p(-540,h)
  lettre_p(-510,h)
  lettre_y(-480,h)
  lettre_h(-420,h)
  lettre_a(-390,h)
  lettre_l(-360,h)
  lettre_l(-330,h)
  lettre_o(-280,h,"#25AE80")
  lettre_w(-190,h)
  lettre_e(-140,h)
  lettre_e(-110,h)
  lettre_n(-80,h)
  stamp()
  h += 90
shape("turtle")
stamp()

Résultat :

Le corps de la citrouille :

Puis, nous avons défini la fonction corps_citrouille(x,y,pen,fi) pour dessiner le corps de la citrouille. Celle-ci prend en paramètre la couleur et les coordonnées du corps. Le corps est constitué de plusieurs cercles assemblés dans un ordre précis pour que le remplissage s’effectue correctement.

# trace le corps de la citrouille
def corps_citrouille(x,y,pen,fi):
  pencolor(pen)
  pensize(5)
  fillcolor(fi)
  a = x
  b = y
  for i in range(2):
    up()
    goto(x,y)
    down()
    begin_fill()
    circle(70)
    end_fill()
    x += 30
    y -= 5

  a = x + 50
  for i in range(2):
    up()
    goto(a,b)
    down()
    begin_fill()
    circle(70)
    end_fill()
    a -= 30
    b -= 5

  goto(a + 5,b)
  begin_fill()
  circle(70)
  end_fill()

Nous appelons cette fonction avec des coordonnées et des couleurs différentes pour créer nos quatre corps de citrouille.

corps_citrouille(-380,110,"#E1C40C","#E3E013")
corps_citrouille(280,110,"#FF4017","#FF5733")
corps_citrouille(280,-260,"#502D9B","#6445A6")
corps_citrouille(-380,-260,"#26b510","#7EEb1E")

Résultat:

La tige de la citrouille :

De plus, nous avons conçu la tige à l’aide d’une autre fonction qui prend en compte les coordonnées et les couleurs de la tige. Pour la concevoir, nous avons d’abord tracé deux traits partant d’un même point puis nous les avons reliés pour effectuer le remplissage.

#  trace la tige de la citrouille
def tige_citrouille(x,y,pn,fl):
  setheading(0)
  up()
  goto(x,y)
  down()
  pencolor(pn)
  fillcolor(fl)
  begin_fill()
  right(160)
  for i in range(2):
    left(110)
    forward(30)
  goto(x,y)
  end_fill()
  begin_fill()
  right(20)
  for i in range(35):
    forward(1)
    right(2)
  end_fill()

Nous appelons ensuite cette fonction tige_citrouille(x,y,pn,fl) avec différentes coordonnées et couleurs pour bien positionner nos quatre tiges de citrouille.

tige_citrouille(-350,260,"#515146","#7A7A65")
tige_citrouille(310,260,"#0E6F12","#1B801F")
tige_citrouille(310,-110,"#8C0F37","#AD2953")
tige_citrouille(-350,-110,"#909207","#C2BD34")

Résultat :

Le visage :

Enfin, nous avons paramétré une fonction afin de lui créer un visage qui a pour arguments ses coordonnées. Le visage est composé de deux yeux qui sont des triangles, d’un nez qui est un triangle plus petit et d’une bouche également composée de formes géométriques.

# trace le visage de la citrouille
def visage(x,y):
  setheading(0)
  pensize(1)
  up()
  goto(x,y)
  down()
  pencolor("#000000")
  fillcolor("#000000")
  begin_fill()

# trace les deux yeux  
  for i in range(2):
    up()
    goto(x,y)
    down()
    for i in range(3):
      forward(30)
      left(120)
    x += 70
  end_fill()

# trace le nez 
  up()
  goto(x - 100,y - 22)
  down()
  begin_fill()
  for i in range(3):
    forward(22)
    left(120)
  end_fill()

# trace la bouche
  up()
  goto(x - 120,y - 35)
  down()
  begin_fill()
  l = 10
  for i in range(2):
    forward(l)
    right(45)
    forward(12)
    left(90)
    forward(12)
    right(45)
    l = 12
  forward(15)
  for i in range(90):
    forward(0.5)
    right(2)
  for i in range(2):
    right(45)
    forward(12)
    left(90)
    forward(12)
    right(45)
    forward(12)
  right(45)
  forward(12)
  left(90)
  forward(12)
  right(45)
  for i in range(90):
    forward(0.5)
    right(2)
  end_fill()

Nous devons donc appeler cette fonction visage(x,y) avec des coordonnées différentes pour aligner le visage sur le corps de chaque citrouille.

visage(-378,193)
visage(282,193)
visage(282,-177)
visage(-378,-177)

Résultat :

Les difficultés rencontrées :

La première difficulté a été de trouver la distance entre les lettres pour former l’expression « HAPPY HALLOWEEN ». Au début, nous les avions espacées de 30 pixels puis nous nous sommes aperçues que certaines lettres se chevauchaient. Après de nombreuses tentatives, nous sommes arrivées au rendu recherché.

Une autre difficulté a été de tracer les cercles qui composent le corps de la citrouille dans le bon ordre pour que le remplissage s’effectue correctement. En ayant compris la logique du remplissage nous sommes finalement parvenues à trouver cet enchaînement.

Enfin, nous avons dû trouver les emplacements de tous les éléments qui composent la citrouille (le corps, la tige et le visage). Ce processus a été très long et a nécessité de nombreux essais mais nous y sommes arrivées !

Sources :

Pour écrire ce script, nous avons utilisé nos connaissances ainsi que le site python.org pour trouver de nouvelles commandes en python. Nous avons également regardé des projets de l’année dernière comme ceux qui sont dans la catégorie art.

Image finale :

Voici le rendu final de notre projet après avoir fait des tests, corrigé nos erreurs et pris du plaisir à coder !

Télécharger le script en .py :

Ne vous inquiétez pas, nous avons pensé à vous ! Vous pouvez télécharger le script ci-dessous pour vous amuser à le modifier ou tout simplement le montrer à vos amis !