Author: Samuel V.

Art

Un rafale en AxiDraw

Il est parfois compliqué de se motiver pour travailler surtout en période de vacance scolaire. C’est pourquoi j’ai choisis lors de ce projet de NSI de mêler travail et passion en vous proposant un projet en lien avec l’aéronautique.

Fait de ta vie un rêve et de ton rêve une réalité.

Antoine de Saint-Exupéry

Naissance du projet :

Lorsque nos professeurs ont présenté les différentes possibilités parmi lesquelles nous pourrions réaliser notre projet, j’ai tout de suite pensé à utiliser l’ Axidraw et ce pour plusieurs raisons.

Tout d’abord, pour découvrir cette machine mais aussi pour les nombreuses possibilités d’utilisation que cette mécanique avait à m’offrir.

Ensuite, j’ai utilisé la maxime  » Il faut joindre l’utile à l’agréable » en choisissant d’utiliser ma passion, qui est celle de l’aéronautique, afin de pouvoir travailler sans regret durant les vacances.

C’ est ainsi que je me suis mis à coder un Rafale ( un célèbre avion de chasse Français ), en python !

Développement du projet

Pour commencer, il me fallait une image sur papier, une sorte de plan, de ce à quoi je voulais que mon Rafale ressemble, et ce tout en traits puisque l’Axidraw ne peut tracer de courbes.

Ma « feuille de route », une véritable œuvre d’art…

Mise en place

Une fois après avoir réalisé mon esquisse, il ne restait plus qu’à mettre à l’échelle mes différentes valeurs que je pouvais dès maintenant mesurer à la règle.

Ainsi, on obtenait :

  • 1cm sur la feuille en longueur -> 30 de longueur pour l’AXIDRAW
  • 1cm sur la feuille en largeur -> 36.5 de largeur pour l’AXIDRAW.

Ensuite, j’ai crée de nombreuses listes que j’ai ensuite appelé en utilisant les fonctions mises à notre disposition par nos professeurs de NSI :

percheravito = [[153,317.55], [141,295.65],[141,295.65], [117,292], [117,288.35], [147,292],[156,313.9]]
haut_aileron = [[759,193,45],[828,193.45],[804,175.2],[784.5,175.2]]
segments(percheravito)
polygone(haut_aileron)

Ainsi, dans l’exemple ci-dessus nous pouvons voir la liste permettant de faire la perche qui sert au ravitaillement en vol du rafale avec son appellation par la fonctions segments qui relie les points aux coordonnées x et y définis dans ma liste. L’appellation de la fonction polygone va elle rajouter un segment qui ira de mon premier point au dernier présent dans la liste haut_aileron afin de former un polygone.

Création des verrières du rafale.

Comme vous avez pu le voir dans mon esquisse de l’œuvre que je voulais produire, les verrières du rafale devaient être constellées de traits afin de donner un esthétique au rendu final mais aussi afin d’introduire quelques fonctions dans ma création.

Mais, je ne pouvais pas créer une seule et même fonction que j’appellerai pour les trois verrières puisque ces mêmes verrières étaient disposées à des endroits différents et séparés par l’armature de l’avion.

image des différentes verrières que je voulais remplir

Ainsi, j’ai du créer trois verrières :

Première verrière :

Pour cette première verrière, vu sa configuration, je n’avais pas besoin de créer un code trop important. En effet, une simple boucle for permettrait de répéter x fois en fonction du nombre de répétitions des segments, grâce à la fonctions segments fournie, en décalant x_depart, y_depart et y_arrivee à chaque répétition. Ainsi, nous obtenons ce code :

def trait(x_depart: float, y_depart: float, x_arrivee: float, y_arrivee: float, repetitions: int):
    for i in range(repetitions):
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart += 4.5
        y_depart -= 2.25
        y_arrivee -= 2.25

Seconde verrière :

Pour cette verrière, il n’était cette fois plus question de prendre une boucle for puisque si vous regardez bien elle se compose de deux parties. J’ai donc utilisé une succession de deux boucles while consécutives qui détermineraient les variations des points x et y en fonction des coordonnées d’arrivée des points de mes segments.

def traits(x_depart: float, y_depart: float, x_arrivee: float, y_arrivee: float, ):
    while x_depart >= 209 and y_depart >= 270:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart -= 1
        x_arrivee += 0.75
        y_depart -= 2.25
        y_arrivee -= 2.25

    while x_depart <= 255 and y_depart >= 273.75:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart += 6.5
        x_arrivee += 0.25
        y_depart -= 2.25
        y_arrivee -= 2.25

Troisième verrière :

Pour cette troisième verrière, j’ai réutilisé le code de ma seconde verrière en changeant les points x_depart, x_arrivee, y_depart, y_arrivee ainsi que les variations de ces points en fonction des boucles while ce qui nous donne :

def traittss(x_depart: float, y_depart: float, x_arrivee: float, y_arrivee: float):
    while x_arrivee <= 360 and y_arrivee >= 290.75:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart += 0.8
        x_arrivee += 1.2
        y_depart -= 2.25
        y_arrivee -= 2.25

    while y_depart >= 278:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart += 0.3
        x_arrivee -= 8
        y_depart -= 2.25
        y_arrivee -= 2.25

Compte rendu final des verrières :

Ainsi, après avoir appelé ces fonctions j’obtenais les verrières en image ci-dessous :

Néanmoins, comme vous vous en doutez surement, cette réalisation n’a pas été aussi facile que ce qu’il vous a été présenté puisque il a fallu calculer les variations des points x et tester différentes variations des points y afin d’obtenir le meilleur rendu visuel.

Création du réacteur :

Pour le réacteur, j’ai souhaité ajouter des segments de la même manière que pour mes verrières. J’ai donc repris le code utilisant les boucles while que j’ai développé puisqu’il ma fallu créer une troisième boucle while pour obtenir le rendu souhaité.

def react(x_depart: float, y_depart: float, x_arrivee: float, y_arrivee: float):
    while  y_arrivee >= 405.15:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart += 0
        x_arrivee += 10
        y_depart -= 5
        y_arrivee -= 5

    while y_arrivee >= 372:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart += 0
        x_arrivee += 0
        y_depart -= 5
        y_arrivee -= 5
        
    while y_arrivee >= 355.875:
        segment(x_depart, y_depart, x_arrivee, y_arrivee)
        x_depart -= 0
        x_arrivee -= 10
        y_depart -= 5
        y_arrivee -= 5

L’exécution de ce code ma ensuite donné ce rendu :

Dernières finitions :

Maintenant que les parties complexes de mon code ont été réalisées, il ne me restait plus que deux choses à faire :

  • Positionner la fameuse cocarde tricolore ( qui sera unicolore sur mon rendu graphique car l’Axidraw ne prend pas en charge les couleurs ) sur mon rafale.
  • « Légender » mon œuvre en écrivant le nom de l’avion représenté en dessous.

Pour la cocarde, je n’eu qu’à utiliser la fonction cercle déjà donnée et en tracer deux consécutivement, avec le même centre mais avec le rayon du second cercle moitié moins grand que le rayon du premier cercle.

Pour légender le dessin obtenu, il ne me restait seulement qu’ à exécuter une succession de segments formant le mot RAFALE.

Conclusion :

Ainsi, ce projet m’a permis de normaliser mon utilisation des fonctions et des listes. Néanmoins, je pense que de nombreuses améliorations auraient pu être possible avec un peu plus de temps notamment en ajoutant des segments pour rendre mon image plus précise mais aussi en modifiant la bordure dessinée par l’Axidraw afin qu’elle mette plus en valeur le rafale représenté.

Mais je dois quand même ajouter que je suis fier de ce que j’ai déjà réalisé car jamais je ne me serais attendu à un rendu comme celui là en n’ utilisant que des segments !

Télécharger le .py :

L’image finale :

Tutoriels

Comment installer des fichiers de 4Go ou plus sur…

Depuis un certain temps vous cherchez à transférer un fichier sur la clé USB d’un copain; d’une copine; d’un ou une collègue mais vous n’y arrivez pas ? Alors ne cherchez plus ! Ce tutoriel simple, efficace et précis vous aidera à résoudre ce problème, que vous soyez un expert en informatique ou un novice dans ce domaine complexe !

L’apprentissage est la seule chose que l’esprit n’épuise jamais, ne craint jamais et ne regrette jamais.

Léonard de Vinci

Mise en situation :

Si vous regardez ce tutoriel c’est normalement parce que lorsque vous tentez de déplacer un fichier sur votre clé USB, le message d’erreur affiché ci-dessous apparaît avec le titre de votre fichier à la place du mien qui se nomme donc : « film qui ne peut pas être cité pour droits d’auteur »

Pour expliquer ce message il vous suffit d’observer que la taille de votre fichier est bien supérieure à 4Go mais pour le résoudre il faudra d’abord s’intéresser aux différents systèmes de fichiers pouvant être appliqués à votre clé USB et à vos disques durs.

Les différents systèmes de fichiers d’une clé USB :

Tout d’abord, il faut savoir qu’un système de fichiers est un système de classement, d’organisation sur un support de stockage qui structure et organise l’écriture, la recherche, la lecture, le stockage, la modification et la suppression de fichiers d’une manière spécifique.

Il existe plusieurs systèmes de fichiers et nous allons vous en décrire quelques-uns.

Le FAT32 :

Le FAT32 est généralement le système de fichier formaté de base sur votre ordinateur.

Il est en service depuis plusieurs années déjà et commence à être vieillissant mais reste très performant sur plusieurs sujets.

Voici un tableau qui nous montre ses capacités, avantages et inconvénients.

AvantagesInconvénients
– compatible avec la plupart des ports USB
Possède un poids maximal de 4Go pour les fichiers

Le NTFS :

Le NTFS est surement le système de fichiers le plus sécurisé d’aujourd’hui.

Comme tout à l’heure voici un tableau vous résumant ses forces et faiblesses :

AvantagesInconvénients
Possède un poids maximal de 16To pour les fichiers
– Très sécurisé
-Fonctionne avec toutes les versions de Windows depuis Windows XP
– N’est pas compatible avec tout les systèmes d’exploitation ( il est compatible seulement les versions récentes de Windows mais pas avec Mac et d’autres…)

Le exFAT :

Le système de fichiers exFAT est une amélioration du système FAT32. Il comprend entre autre une extension de la taille des fichiers pouvant être utilisée.

AvantagesInconvénients
Possède un poids maximal de 128Po
-Compatible avec la plupart des systèmes d’exploitation( Windows et Mac…)

Comment formater sa clé USB :

Comme nous l’avons vu précédemment, il existe différents systèmes de fichiers qui ont chacun leurs avantages et leurs inconvénients.

Maintenant, nous allons voir comment formater notre clé USB pour pouvoir changer de système de fichiers selon nos besoins au travers de 4 étapes :

  1. Tout d’abord, il faudra faire un clic droit avec la souris sur la clé USB ou sur le disque dur dans  » explorateur de fichiers ».

2. Ensuite, il faudra cliquer sur « formater… » :

3. Puis, il faudra cliquer sur « système de fichiers » afin de choisir celui que nous souhaitons appliquer à notre appareil :

4. Une fois notre système de fichiers sélectionné, il ne nous restera qu’à cliquer sur le bouton « démarrer » en bas de le fenêtre. A ce moment ce message doit s’afficher sur votre écran :

Nous vous conseillons donc de copier le contenu de votre clé USB ou disque dur sur le disque dur interne de l’ordinateur, ou sur un autre disque dur ou une clé USB avant d’effectuer l’opération voulue.

Ainsi, vos fichiers ne seront pas supprimés par le formatage.

Normalement, à la fin de l’opération le message ci-dessous s’affichera. Recommencez le formatage sil se s’affiche pas !

Conclusion :

Ainsi, afin de pouvoir transférer un fichier supérieur à 4Go, il vous faudra appliquer les consignes citées précédemment et choisir de formater au choix sa clé USB ou son disque dur en NTFS ou en exFAT.

Je vous conseille si vous êtes sur Windows d’utiliser le NTFS. Mais attention, il faudra être sûr de brancher votre disque dur ou votre clé USB sur un appareil possédant Windows depuis sa version XP.

Si vous avez un doute, le format exFAT est tout aussi pratique quoique moins sécurisé mais vous serez sûr au moins de pouvoir télécharger vos fichiers tranquillement, peu importe leurs poids, puisque comme le système de fichiers NTFS, ses limites en terme de taille maximale d’un fichier pouvant être stockées ne sont pas atteignable.

Si toutefois le problème persiste et que vous ne parvenez pas à accueillir un fichier supérieur à 4Go après l’application de ce tutoriel, je vous invite à bien vérifier que votre clé USB possède assez d’espace de stockage pour accueillir le fichier souhaité.

Si des amis ont le même problème que vous n’hésitez pas à leur parler de ce tutoriel,

Bonne compréhension !

Art

Astronomie : La carte du ciel

Depuis la nuit des temps, l’Homme est fasciné par ce qu’il se trouve au-dessus de sa tête à tel point qu’il a créé des cartes pour répertorier ces astres lumineux. Cette fascination pour l’inconnu a perduré au fil des siècles et, grâce aux cartes du ciel, les aventuriers d’hier, d’aujourd’hui et de demain on réussit à se repérer dans l’espace et surtout à rêver comme nous le montre James Michener dans La course aux étoiles.

-Prisonnier ?
-Oui. Les étoiles peu à peu vous happent. Elles vous font changer de perspective, d’une façon radical
Il lui tendit la carte avec respect et lui demanda :
« Avez-vous jamais vus les étoiles ? »

La course aux étoiles, p. 76

Genèse de l’idée

Lors de l’explication du projet, nous avons réfléchi et nous avons tout de suite pensé au domaine de l’astronomie. Au début nous avons pensé que faire une représentation en Pixel Art serait une bonne idée mais après de longues réflexions nous sommes revenus aux bases de l’astronomie et nous avons eu notre idée actuelle ; une carte du ciel de l’hémisphère Nord. C’est ainsi que notre projet a pu débuter…

Développement

Pour commencer nous avions besoin d’un fond dégradé du bleu au noir pour représenter notre beau ciel étoilé. De ce fait nous avons dû chercher comment le réaliser et nous avons trouvé un exemple de code sur Internet et nous avons pu l’adapter à notre manière.

Fond dégradé issu de notre script

Une fois le fond terminé et opérationnel, nous nous sommes concentrés sur la création des étoiles qui composeront notre carte. Ainsi, nous avons défini 3 types d’étoiles :

Les petites étoiles :

def etoilep():
    pensize(1)
    pencolor("white")
    for i in range(150):
        penup()
        x,y = randint(-640,640), randint(-360,360)
        goto(x,y)
        pendown()
        circle(1)


Nous avons positionné les petites étoiles de façon aléatoire grâce à un module python nommé random permettant un meilleur rendu visuel puisqu’elles servent à définir les étoiles les plus lointaines et donc visibles seulement par la NASA, l’ESA et également visibles dans les films de science-fiction tel H2G2.

Les étoiles moyennes :

def etoilen():
    pendown()
    pensize(2)
    pencolor("yellow")
    for i in range(5):
        right(30)
        forward(2)
        right(120)
        forward(2)
        left(78)

Celles-ci servent à constituer les étoiles formant les constellations visibles dans notre hémisphère et donc forment les différentes constellations.

L’étoile polaire :

def etoilepolaire():
    pendown()
    pensize(2)
    pencolor("yellow")
    for i in range(5):
        right(30)
        forward(2)
        right(120)
        forward(2)
        left(78)

L’étoile polaire est une étoile particulière. En effet, sa position dans l’espace ne varie pas et indique globalement le nord. Elle servait notamment aux marins pour se repérer en pleine mer. C’est pour ça que nous l’avons défini aux coordonnées (0 , 0).

Rendu final du script après exécution

Maintenant que nous avons toutes nos étoiles, il faut les positionner !

Donc, pour ce faire, nous avons utilisé une carte du ciel en notre possession et nous avons mesuré à la règle la distance des étoiles par rapport à l’étoile polaire en essayant de les mettre à une certaine échelle pour ne pas sortir du cadre imposé.

Une fois toutes les mesures prises, nous avons créé deux listes, une première avec toutes les coordonnées x (horizontales) et une deuxième avec tous les coordonnés y (verticales) des étoiles formant les constellations. Pour séparer les constellations entre elles nous avons utilisé le mot-clé « None » .

Cependant, celui-ci nous a posé quelques problèmes. En effet, nous avions tout d’abord mis les « None » entre parenthèses (ne nous demandez pas pourquoi on a fait ça, on ne le sait pas nous-mêmes), ce qui nous a posé des problèmes. Après s’être rendu compte de cette erreur, un autre problème est apparu ! Mais nous avons pu la parer puisqu’il suffisait de mettre une condition à ce « None » . S’il apparait on passe au nombre suivant de la liste et s’il n’y est pas on trace !

En parlant de problèmes, nous en avons eu un autre, l’échelle des constellations. En effet, nous nous y sommes pris à trois fois pour avoir la bonne taille, d’abord trop petite, ensuite trop grande, mais à coups mathématiques très compliqués, nous avons réussi à trouver la bonne échelle !

Conclusion

Malgré les quelques difficultés rencontrées nous avons réussi à modéliser, assez grossièrement, nous devons l’admettre, une carte du ciel. Néanmoins, cette esquisse ravira sans aucun doute les amateurs d’astronomie pour sa beauté graphique et les informations données, malgré son imprécision elle reste tout de même assez juste et véridique. Notre projet se prête bien au thème de l’astronomie et nous en sommes fières. Cependant , il peut bien évidemment être amélioré avec un script plus optimisé et un peu plus de constellations.

Et puis, comme disait Léonard de VinciCelui qui s’oriente sur l’étoile ne se retourne pas.

Télécharger le .py

L’image finale