Compétence :
Compétence :
Compétence :
PEPS : Physion : simulateur de physique (Windows + Linux + Slitaz)

A-Module 27 : Mathématique et sciences : 0 points - difficulté : 2

Physion : simulateur de physique (Windows + Linux)

Description


Physion est un autre simulateur de physique.
Notez que ce logiciel est également disponible sous Windows ou à partir du site officiel

5 points seront alloués pour chacun des tutoriels réalisés.

Vous pouvez répéter plus d'une fois cette activité en réalisant un tutoriel différent (un apprentissage différent) pour chacune des activités présentées.


  1. Téléchargez le logiciel Physion en tapant dans le terminal (au laboratoire c212) :
    wget http://10.114.6.69/prof/Physion-Linux-x86-Install.bin
    ou
    wget http://ladifference.info/i/images//profPierreMorissette/physion-linux-x86-install.bin
    ou
    à partir du site http://physion.net/en/downloads/linux/6-physion-linux-x86-install

  2. Installez physion en tapant dans le terminal :
    echo "alias physion='cd && cd ./Physion && bash ./Run.sh'" >>./.bashrc && chmod 777 Physion-Linux-x86-Install.bin && ./Physion-Linux-x86-Install.bin

  3. Lancez en tapant dans le terminal :
    cd ./Physion && bash ./Run.sh
    ou en tapant dans le terminal :
    physion

  4. Consultez les tutoriels disponibles:
    A) dans le menu HELP + Help

    - General Usage Tutorial
    - Engine Tutorial
    - Simple Car Tutorial
    - Satellite Tutorial Explication de la commande QLineF
    - Stair Walker Tutorial
    - Scripting on Events Tutorial
    - Boolean Operations Tutorial
    pour le tutoriel sur les opérateurs booléens : conservez vos constructions et nommez les opérateurs booléens utilisés
    - Magnets tutorial (IMPORTANT : remplacez dans le script le mot physicsItemByName("item"+i); par physicsItemFromName("item"+i)

    B) site officiel
    C) Site wiki de Physion
    D) Réalisation de la machine de création d'un mouvement perpétuel de Léonard De Vinci

    D) Tutoriels de programmation Physion

    Crééz votre script en utilisant le logiciel geany.
    Enregistrtez au format .script
    Utilisez le menu FILE + EVALUATE SCRIPT afin de lancer votre script dans physion.
    Utilisez au besoin le menu FILE + EVALUATE SCRIPT afin de lancer les scripts en exemple du répertoire /home/cb/Physion/Data/Scripts
    Il est fortement suggéré d'ouvrir chacun de ces scripts avec geany afin de bien comprendre le langage utilisé

    E) Autres projets possibles à réaliser ;
    1. Votre tâche consiste à réaliser chacun des mécanismes suivants dans votre scène :
      1- mécanisme de roues dentées
      2- mécanisme de roues de friction
      3- mécanisme   pignon-crémallère
      4- mécanisme de poulies
      5- mécanisme de roues et chaîne
      6- mécanisme de vis sans fin
      7- mécanisme bielle - manivelle
      8- mécanisme  de came
      9- mécanisme  de vis et écrou
      
    2. La réaction en chaîne : votre tâche consiste à utiliser un minimum de 10 outils afin de produire une réaction en chaîne déclenchée par un seul objet contenant un minimum de 20 étapes.
      Ce travail vaut 10 points.

      IMPORTANT : Si vous utilisez un script de votre création (pas de copier/coller intégral), le nombre d'étapes requises sera réduit à 15 étapes,

      IMPORTANT : Vous devez OBLIGATOIREMENT placer la scène en position initiale avant de m'envoyer le fichier

      IMPORTANT : Enregistrez fréquemment votre travail

      IMPORTANT : Votre page doit contenir :

      a) Le titre Réaction en chaîne
      b) une capture-écran-image
      c) un lien vers le fichier .scene
      D) la liste des 10 outils utilisés
      E) indiquez le script utilisé au besoin

      Autres informations utiles

      1. Afin de modifier la couleur d'un objet par script :
        Nom_De_L_Objet.Brush = new QColor("#ffff00");
        exemple :
        rectangle.Brush = new QColor("#ffff00");
      2. Afin de modifier la masse d'un objet, modifiez la propriété "Densité" de cette objet
      3. Afin de modifier la forme d'une roue dentée, sélectionnez l'outil roue dentée et modifiez les propriétés "Gear tooth size" et Gear tooth count divisor"
      4. Afin de déplacer une roue dentée, crééz d'abord une roue dentée sans "Revolution joint" et modifiez les propriétés X et Y.
        Une fois que votre roue est bien positionnée. ajoutez le "Revolution joint"
      5. Afin de faire suivre la caméra sur un objet:
        1) sélectionnez l'outil Caméra
        2) cliquez sur l'objet à suivre
        3) lancez la simulation

        Si vous fermez la fenêtre de suivi par la caméra, un clic droit sur votre objet à suivre la fera réapparaître

        Méthode alternative :
        copier et coller ce script dans la console en remplaçant "item7" par le nom de l'objet à suivre :
        graphicsView.BodyWithCamera=physicsItemFromName("item7")
      6. Déplacement d'un objet à l'aide d'une touche clavier
        Exemple de script OnKeyPress :à
        
        if(key == Qt.Key_Right)
        {
        	a.LinearVelocityX=2;
        
        }
        if(key == Qt.Key_Left)
        {
        	a.LinearVelocityX=-2;
        
        }
        
        if(key == Qt.Key_Up)
        {
        	var line = new QLineF(this.position(), new QPointF(this.X, this.Y+25));
        	this.applyLinearImpulse(line);
        } 
      7. Supprimer un objet par script
        world.removePhysicsItem(world.physicsItemFromName("a"));


      Voir un exemple de réaction en chaîne

      Voir un autre exemple de réaction en chaîne
    3. Machine à boules
      Mini guide d'aide à la réalisation de la machine à boule
      1. Sur un des rectangles, sur le paramètre OnStart, ajoutez :
         
        TotalScore=0;
        addScore=0;
        paddlespeed=20;
        
      2. Script à insérer sur le ressort qui pousse la boule au départ du jeu dans le paramètre OnKeyPress
         
        if(key == Qt.Key_Down)
        {
        	this.DesiredDistance=1;
        }
         
        
        
      3. Script à insérer sur le ressort qui pousse la boule au départ du jeu dans le paramètre OnKeyRelease
        if(key == Qt.Key_Down)
        {
        	this.DesiredDistance=11;
        }
        
        
      4. Script à insérer sur le moteur du "flipper" de droite dans le paramètre OnKeyPress
        if(key == Qt.Key_Up)
        {
        	this.MotorSpeed = paddlespeed;
        
        }
        
      5. Script à insérer sur le moteur du "flipper" de droite dans le paramètre OnKeyRelease
        if(key == Qt.Key_Up)
        {
        	this.MotorSpeed = paddlespeed * -1;
        
        }
        
        
      6. Script à insérer sur le moteur du "flipper" de gauche dans le paramètre OnKeyPress
        if(key == Qt.Key_Z)
        {
        	this.MotorSpeed = paddlespeed * -1;
        
        }
        
        
      7. Script à insérer sur le moteur du "flipper" de gauche dans le paramètre OnKeyRelease
        if(key == Qt.Key_Z)
        {
        	this.MotorSpeed = paddlespeed;
        
        }
        
        
      8. Script à insérer sur la tige verte tournante dans le paramètre OnContact
        addScore=25;
        totalScore=totalScore+25;
        
      9. Script à insérer sur le cercle rouge et blanc dans le paramètre OnStart
        updates=0;
        
      10. Script à insérer sur le cercle rouge et blanc dans le paramètre OnUpdate
        
        if (this.Radius > 1.363)
        {
        	updates=updates+1;
        	if(updates > 8)
        	{
        		this.Radius=1.363;
        	updates = 0;
        	}
        }
        
      11. Script à insérer sur le cercle rouge et blanc dans le paramètre OnContact
        this.Radius = 1.6;
        addScore=50;
        totalScore=totalScore+50;
        
      12. Script à insérer sur le deuxième cercle rouge et blanc dans le paramètre OnStart
        updates2=0;
        
      13. Script à insérer sur le deuxième cercle rouge et blanc dans le paramètre OnUpdate
        if (this.Radius > 0.905)
        {
        	updates2=updates2+1;
        	if(updates2 > 8)
        	{
        		this.Radius=0.905;
        	updates2 = 0;
        	}
        }
        
        
      14. Script à insérer sur le deuxième cercle rouge et blanc dans le paramètre OnContact
        this.Radius = 1.4;
        addScore=50;
        totalScore=totalScore+50;
        
      15. Script à insérer sur rectangle de pointage vert de gauche dans le paramètre OnStart
        this.TextSize=30;
        
      16. Script à insérer sur rectangle de pointage vert de gauche dans le paramètre OnUpdate
        this.Text=totalScore;
        
      17. Script à insérer sur rectangle de pointage vert de droite dans le paramètre OnStart
        this.TextSize=30;
        
      18. Script à insérer sur rectangle de pointage vert de droite dans le paramètre OnUpdate
        this.Text=addScore;
        
      19. Script à insérer sur rectangle de pointage orange de droite dans le paramètre OnStart
        highscore=0;
        this.TextSize=30;
        
      20. Script à insérer sur rectangle de pointage orange de droite dans le paramètre OnUpdate
        this.Text=highscore;
        
      21. Script à insérer sur rectangle du bas dans le paramètre OnContact
        highscore=totalScore;
        addScore=0;
        totalScore=0;
        item10.X = 10.033; item10.Y = 13.098;
        
    4. Écluse
    5. Moteur à 4 temps avec soupapes
    6. Jeu PONG avec compteur de points
    7. ...




  5. Réalisez le tutoriel choisi

  6. Enregistrez au format .scene

  7. Utilisez une capture-écran-image ou le menu FICHIER + EXPORTER afin d'exporter votre travail au format image.png

  8. Téléchargez votre document .scene et votre image dans votre espace de téléchargement
  9. Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 106912

  10. Inscrivez dans le champ titre : Physion : simulateur de physique et "le titre de votre tutoriel"

  11. Sélectionnez la section : MODULE Mathématique et Sciences

  12. Sélectionnez la matière : informatique

  13. Inscrivez dans le champ no de la directive : 106912

  14. Inscrivez dans votre page le titre de niveau 1 : Physion : simulateur de physique

  15. Insérez le titre de votre tutoriel

  16. Ajoutez un LIEN vers ce tutoriel

  17. Ajoutez votre capture-écran-IMAGE

  18. Ajoutez un LIEN vers le fichier .scene

  19. Ajoutez une courte explication de vos apprentissages

  20. Visualisez votre page et apportez des modifications au besoin.