De 3 à 5 points seront alloués pour chacune des tâches réalisées.
Utilisez au besoin les exemples offerts en bas de la page et
le guide des commandes nxc suivant
Téléchargez dans le répertoire /home/cb/ le fichier pynxc-0.1.6.zip ou ici et décompactez-le (clic droit + extraire ici)
Lisez la documentation et la liste des commandes utiles (voir au bas de cette page)
OPTION 1 :En vous servant des exemples offertes dans le répertoire "tutorial_samples", écrivez un programme fonctionnel en langage python en utilisant le logiciel geany, pour chacune des tâches suivantes:
Affichage d'un dessin :
Tâche à réaliser : Dessiner un cercle de rayon 20 sur l'écran en position 50,30 pendant 3 secondes
Utilisation d'un moteur
Tâche à réaliser : Faire tourner les moteurs A et B à 100% de leur puissance maximale pour 3 tours et ensuite faire tourner les moteurs A et B à 50% de leur puissance maximale pendant 3 secondes en sens inverse
Utilisation d'un détecteur de toucher
Tâche à réaliser : Faire tourner les moteurs A et B à 50% de leur puissance maximale lorsque le détecteur de toucher n'est pas activé et arrêter les moteurs lorsque le détecteur de toucher est activé
Utilisation d'un détecteur de son
Tâche à réaliser : Afficher à l'écran le texte "Trop de bruit" pendant 3 secondes lorsque le niveau sonore dépasse 60 unités
Utilisation d'un détecteur ultrason
Tâche à réaliser : Faire tourner les moteurs A et B à 100% de leur puissance maximale et arrêter les moteurs lorsque le détecteur ultrason détecte la présence d'un objet à moins de 30 cm.
Affichage d'un texte
Tâche à réaliser : Afficher le texte "Allo toi!" en position 10,30 sur l'écran du robot
Affichage de la valeur d'un capteur
Tâche à réaliser : Afficher la valeur du capteur de lumière en position 10,30 sur l'écran du robot (Rafraîchir l'affichage à chaque seconde)
Affichage d'une image :
Tâche à réaliser : Afficher l'image stop.ric en position 20,20 sur l'écran du robot pendant 5 secondes
Téléchargez l'ensemble des fichiers images au format .ric en tapant dans le terminal :
wget http://ladifference.info/i/images//profPierreMorissette/robotique/nbc/fichiers.ric.zip && unzip ./fichiers.ric.zip && rm ./fichiers.ric.zip && cp ./Pictures/* ./
Voici le liste des images additionnelles que vous pourrez utiliser
Accept 03.ric LEGO Brick.ric Send.ric
Aim.ric LEGO Minifig Head.ric Signal.ric
Angry 01.ric Letter.ric Skeleton 02.ric
Angry 02.ric Light Bulb.ric Sleeping.ric
Angry 04.ric Lightning Cloud.ric Smile 01.ric
Backward.ric Lights 02.ric Smile 02.ric
Battery Electric.ric List.ric Smile 03.ric
Bluetooth.ric Lock Locked.ric Snail.ric
Bomb.ric Lock Unlocked.ric Sound.ric
Boom.ric Looking Left.ric Stop 01.ric
Camera.ric Looking Right.ric Stop 02.ric
Crazy 01.ric Map.ric Stop.ric
Crazy 02.ric Microphone.ric Sun.ric
Dead.ric Mobile.ric Surprise.ric
Decline 03.ric Mountain 02.ric Swearing.ric
Dont Walk 02.ric Note 03.ric Talk 01.ric
Dont Walk.ric NXT.ric Talk 02.ric
Ear.ric PC.ric Temperature C.ric
Earth.ric Point Left.ric Think.ric
Eye Closed.ric Point Right.ric Time 00.ric
Eye Open.ric Point Up.ric Time 01.ric
Eye.ric Power.ric Time 02.ric
Floppy Disks.ric Push Button.ric Time 03.ric
Flower.ric Rabbit.ric Time 04.ric
Follow.ric !.ric Timeglass.ric
Forward.ric Right 02.ric Time.ric
Gasoline.ric Rotation.ric Tired 01.ric
Grey Bulb.ric Run 01.ric Trash Can.ric
Hand.ric Sad 02.ric Two Arrows.ric
Heart 01.ric Sad.ric Walk 02.ric
Heart 02.ric Satellite 03.ric Zzzz.ric
Left 02.ric Search.ric
Joueur un son
Tâche à réaliser : jouer un son de votre choix au volume 10 en boucle)
Téléchargez l'ensemble des sons au format .rso en tapant dans le terminal :
wget http://ladifference.info/i/images//profPierreMorissette/robotique/nbc/fichiers.rso.zip
&& unzip ./fichiers.rso.zip && rm ./fichiers.rso.zip && cp ./Sounds/* ./
Jouer une tonalité
Tâche à réaliser :Composer une courte mélodie musicale de votre choix
Utilisation d'une boucle de répétition while
Tâche à réaliser : Faire avancer le robot d'une distance de votre choix et le faire reculer de la même distance en boucle
Utilisation d'une boucle de répétition repeat
Tâche à réaliser : Faire parcourir un carré à votre robot en utilisant une boucle "repeat"
Utilisation d'une structure conditionnelle
Tâche à réaliser : Faire avancer le robot si le détecteur de toucher est activé et arrêter les moteurs si le détecteur de toucher n'est pas activé.
Utilisation d'une variable simple
Tâche à réaliser : Utiliser une variable et l'incémentation de cette variable afin de faire accélérer le robot progressivement
Utilisation d'une variable de type tableau
Tâche à réaliser : Afficher à l'écran 3 marques de voitures en utilisant une variable de type tableau.
Utilisation de la commande "pass"
Tâche à réaliser : Utiliser la commande pass afin de faire avancer votre robot tant que le détecteur ultrason ne détecte la présence d'un objet à moins de 30 cm.
Définir et utiliser une fonction sans paramètre
Tâche à réaliser : Utiliser une fonction sans paramètre de votre choix.
Définir et utiliser une fonction avec paramètres
Tâche à réaliser : Utiliser une fonction avec paramètres de votre choix.
Commandes combinées 1
Tâche à réaliser : Programmer le robot afin qu'il avance et lorsque le détecteur ultrason branché dans le port 1 détecte une valeur inférieure à 30, alors le robot doit reculer pendant 1 seconde et tourner pendant une seconde.
Compilez votre programme python en tapant dans le terminal (un fichier .nxc sera créé et un fichier compilé .rxe sera créé) :
/home/cb/pynxc/pynxc.pyw --download a.py ou
en utilisant le logiciel pynxc.pyw en tapant dans le terminal
/home/cb/pynxc.pyw et en utilisant:
1) le menu FILE + LOAD PROGRAM FILE
2) PROGRAM CONVERT (pour convertir le fichier .py au format .nxc)
3) PROGRAM COMPILE (pour compiler le fichier .nxc au format .rxe)
Branchez et allumez votre robot
Téléchargez le fichier .rxe dans votre robot en tapant dans le terminal :
sudo t2n -put a.rxe
Valider le fonctionnement de votre programme
Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 129314
Inscrivez dans le champ titre : Programmation du robot NXT en langage Python
Sélectionnez la section : MODULE ROBOTIQUE
Sélectionnez la matière : informatique
Inscrivez dans le champ no de la directive : 129314
Inscrivez dans votre page le titre de niveau 1 : Programmation du robot NXT en langage Python
Insérez le titre de votre tâche
Copiez/collez le code de votre programme entre les balises
Visualisez votre page et apportez des modifications au besoin.
Liste des commandes utiles
ATTENTION en langage python, on n'utilise pas d'accollades, les accollades sont remplacées par des indentations (espaces entre le coté gauche de la page et le début de la ligne)
exemple : en langage python
def main():
OnFwd(OUT_B, 75)
Wait(4000)
en langage nxc
task main(){
OnFwd(OUT_B, 75);
Wait(4000);
}
Les commandes principales du langage nxc ( OnFwd(OUT_A, 75); Wait(4000); OnRev(OUT_AB, 75); Off(OUT_AB); etc ) prennent un ; à la fin
ces mêmes commandes ne prennent pas de ; à la fin avec le langage python
def main():
while True:
OnFwd(OUT_AC, 75)
Wait(MOVE_TIME)
Équivalent nxc :
while(true)
{
}
Structure conditionnelle si... autrement
def main():
a = Random(100)
if a >50:
OnRev(OUT_C, 75)
else:
OnRev(OUT_A, 75)
Équivalent nxc :
int a;
a = Random(100);
if( a > 100 )
{
OnRev(OUT_C, 75)}
else
{
OnRev(OUT_A, 75)
}
initialiser la communication avec les différents capteurs
DefineSensors(PORT1,PORT2,PORT3,PORT4)
Les valeurs acceptées sont :TOUCH, EYES, LIGHT, SOUND, and None.
Utiliser la valeur captée par les différents capteurs
DefineSensors(PORT1,PORT2,PORT3,PORT4)
Les valeurs acceptées sont :TOUCH, EYES, LIGHT, SOUND, and None.
SensorVal(2)
Équivalent nxc :
Sensor(IN_1)
SENSOR_1
SensorUS(IN_1)
Insérer un commentaire dans un programme
#commentaire
Équivalent nxc :
//commentaire
Utilisation de la commande "pass" pour poursuivre l'exécution d'un programme sans lancer de commande
DEFINE NEAR=15
def main():
DefineSensors(None,None,None,EYES)
while True:
OnFwd(OUT_AC,50)
while SensorVal(4)>NEAR:
pass
Off(OUT_AC)
OnRev(OUT_C,100)
Wait(800)