Uncategorised
MT4
- Détails
- Clics : 1290
MT4 - Fonctions électroniques (semestre 7)
- Familles technologiques TTL & CMOS
- ATmega 328P
- Cartes Arduino Mega et Arduino Uno
- Le microcontrôleur, ses entrées et ses sorties
- Dissipation thermique
- Bascule astable
- Les oscillateurs
- Le CAN (Convertisseur Analogique Numérique) ou ADC (Analog Digital Converter)
- Le CNA (Convertisseur Numérique Analogique) ou DAC (Digital Analog Converter)
- L'amplification de puissance (optocoupleur + transistor + Relais)
- Circuit pompe de charge
MT4 - Physique des capteurs (semestre 8)
- Cours
- TD1
- TD2 (thermométrie)
- TD3 (capteur CCD)
- Cours: Différents types de capteurs
- Cours: les capteurs de proximité inductifs
MT4 - Métrologie (semestre 8)
- Cours 1: la métrologie légale
- Cours 2: la métrologie industrielle
- RMS & True RMS
- TD1
- TD2
- Cours 3
MT4 - Outils de supervision (LabView) + Alternatif: 2 cours
Charges RL, RC, RLC: cours + TD + TP avec oscilloscope
Les puissances et énergies: cours + TD
Le champ tournant: cours
MCC: cours + TD + TP
MPP: cours + TD
servomoteur: : cours + TP
AX12: cours + TP
système monophasé, système triphasé: cours
MS: cours + TD
MAS: cours + TD
Transformateur: cours + TD
Moteur Brushless: cours + TD
MT3 - Cours & TD
- Détails
- Clics : 2651
Systèmes numériques:
- Cours n°1 (les fonctions logiques combinatoires)
- Cours n°2 (les fonctions logiques séquentielles)
- Cours n°3 (les codeurs incrémentaux)
- TD1 (logique combinatoire + syst. numérique)
- TD2 (algèbre de Boole)
- TD3 (logique combinatoire)
- TD4 (logique séquentielle)
- IE1
TCP/IP:
Machines électriques:
- MCC
- Une excellente série d'exercices sur les MCC (Merci à Fabrice Sincère pour cette aide)
- MS
- Une excellente série d'exercices sur les MS (Merci à Fabrice Sincère pour cette aide)
- MAS
- Une excellente série d'exercices sur les MAS (Merci à Fabrice Sincère pour cette aide)
- Le système triphasé
- Le moteur pas à pas
- Le transformateur de tension
- Une excellente série d'exercices sur le transformateur (Merci à Fabrice Sincère pour son aide)
Traitement du signal (TDS):
- Cours 1 (signaux analogiques)
- Simulations avec Altium (redressement simple alternance et double alternance)
- Correction du calcul de la série de Fourier du redressement simple alternance
- Cours 2: Numérisation des signaux
- Cours 3: Transformées en z
Outils de conception électronique (partie simulation avec Altium)
- TP1
- TP2
- Vidéo Altium 1
- Vidéo Altium 2
- Vidéo Altium 3
- Les librairies Altium
MT3 - Projets (ROS 1)
- Détails
- Clics : 1221
Les commandes de base ROS:
• roslaunch
• rostopic
• rosnode
• roscore
• rosrun
• rosbag
• rviz
• rqt_image_view
• rosservice
• rosserv
• rqt_graph
1ère partie
- Installer VirtualBox ici
- Installer la VM ici (attention, c'est long: près de 15Go)
- Installer le CD add-on (CD des additions invité) ici
- Ouvrir un terminal (CTRL + ALT + T)
- Connaître la version de Lubuntu: lsb_release -a
- Sélectionnez une caméra dan VirtualBox) et intégrez la à votre VM
- cd /dev
- ls afin de voir les différents ports USB -> video0 apparaît
- ffplay /dev/video0
La vidéo est ici: https://youtu.be/EkUsPoTwIPo
2nde partie - TP1 - La tortue
A chaque fois ouvrir un terminal avec Ctrl+Alt+t ou un nouvel onglet du même terminal avec Ctrl+Shift+t
>roscore
Puis, dans un nouvel onglet
>rosrun turtlesim turtlesim_node
Puis, dans un nouvel onglet
>rostopic list
>rosservice list (dans un second temps)
Puis, dans un nouvel onglet
>rosrun turtlesim turtle_teleop_key
On peut déplacer la tortue avec les flèches en activant la dernière fenêtre.
La vidéo est ici: https://youtu.be/1_MSei5hDlU
3ème partie - TP2 - Le fichier de lancement et la caméra
Une application basée sur ROS nécessite le plus souvent qu’un ensemble de nodes (noeuds) soient lancés, les launch file (extension .launch) permettent d’automatiser le lancement d’une application complète en lançant séquentiellement avec les bons paramètres les nodes qui auront été validés individuellement.
Attention un nom de node est unique, relancer une deuxième instance du programme avec le même nom tue la première instance. Le nom du node est un
nom symbolique qui est indépendant du nom du fichier exécutable, il est soit précisé dans le code du programme soit au moment dans le launch file.
Exemple de fichier launch file: cv_camera.launch
<?xml version="1.0"?>
<launch>
<node pkg="cv_camera" type="cv_camera_node" name="cv_camera" output="screen">
<param name="flip_image" value="false" />
<param name="device_id" value="0" />
<param name="image_width" value="320" />
<param name="image_height" value="240" />
<param name="frame_rate" value="25"/>
</node>
<node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
<remap from="image" to="/cv_camera/image_raw"/>
<param name="autosize" value="true" />
</node>
</launch>
Le TP2 partie 1:
>roslaunch cv_camera cv_camera.launch
TP de suivi de ligne (23 mai)
roscore //lancement de ROS
rosrun mt3_tp1 mt3_tp1_node //lancement du package avec le programme mt3_tp1.cpp
rosbag play -l piste.bag //lancement du rosbag avec la vidéo piste.bag
rostoptic list
→ on doit voir :
/clock
/cv_camera/image_raw // c'est l'image normale
/mt3/output_BIN
/mt3/output_BIN/compressed
/mt3/output_BIN/compressed/parameter_descriptions
/mt3/output_BIN/compressed/parameter_updates
/mt3/output_BIN/compressedDepth
/mt3/output_BIN/compressedDepth/parameter_descriptions
/mt3/output_BIN/compressedDepth/parameter_updates
/mt3/output_BIN/theora
/mt3/output_BIN/theora/parameter_descriptions
/mt3/output_BIN/theora/parameter_updates
/mt3/output_GRAY //c'est l'image avec les flêches
/mt3/output_GRAY/compressed
/mt3/output_GRAY/compressed/parameter_descriptions
/mt3/output_GRAY/compressed/parameter_updates
/mt3/output_GRAY/compressedDepth
/mt3/output_GRAY/compressedDepth/parameter_descriptions
/mt3/output_GRAY/compressedDepth/parameter_updates
/mt3/output_GRAY/theora
/mt3/output_GRAY/theora/parameter_descriptions
/mt3/output_GRAY/theora/parameter_updates
rqt_image_view //et choisir le topic IMAGE_GRAY
ROS2
- Détails
- Clics : 1406
VirtualBox
1. Installer le CD add-on (CD des additions invité) ici
2. Si il y a une erreur:
2.1. sudo apt install gcc make perl -y
2.2. cd /media/ros2/VBox_GAs_6.1.50/
2.3. sudo ./VBoxLinuxAdditions.run
2.4. sudo reboot
Installation de ROS2 iron
TP1: Turtle
Dans une 1ère fenêtre (Ctrl + Alt + t)
1. cd ros2_iron/install/
2. source local_setup.bash
3. ros2 run turtlesim turtlesim_node
note1: ros2 node list
permet d'observer le nom du node: ici turtlesim
note2: ros2 topic list
permet d'observer les topic disponibles: ici
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
note3: Consultez cette page pour comprendre le fonctionnement des topics
note4: ros2 topic list -t
permet d'observer les topics disponibles mais aussi leur type: ici/parameter_events
[rcl_interfaces/msg/ParameterEvent]
/rosout [rcl_interfaces/msg/Log]/turtle1/cmd_vel
[geometry_msgs/msg/Twist]/turtle1/color_sensor
[turtlesim/msg/Color]/turtle1/pose
[turtlesim/msg/Pose]
note5: ros2 topic info /turtle1/cmd_vel (par exemple) nous affiche les informations suivantes:Le type de message + Le nombre de publicateur (UK: publisher) (normalement 0) +Le nombre d'abonnés (UK: subscribers) (devrait être 1, ou 2 si vous fonctionnez en même temps avec des versions Python et C++).
Exemple: ros2 topic info /turtle1/cmd_vel
Type: geometry_msgs/msg/Twist
Publisher count: 0
Subscription count: 1
note6: ros2 interface show turtlesim/msg/Pose (par exemple) nous affiche quelques informations comme:
Exemple: ros2 interface show turtlesim/msg/Pose
float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity
Dans une 2nde fenêtre (Ctrl + Alt + t) ou dans un 2nd onglet (Ctrl + Shift + t)
4. cd ros2_iron/install/
5. source local_setup.bash
6. ros2 run turtlesim turtle_teleop_key
: On commande bien le node turtlesim. Ainsi, on peut commander la tortue avec le clavier.
7. Il est envisageable de publier dans le topic comme ci-dessous:
ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist "linear:
x: 0.5
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.5"
note7: il est également possible d'effectuer un rosbag (ros2bags) pour rejouer la séquence plus tard.
[SOURCE]
RoboCamp (www.snoeck.fr)
- Détails
- Clics : 2018
Câblage de la carte Arduino avec la LED: 2 montages possibles
Exo 1:
/*
Blink at ISTY
Turns 3 LED on for one second, then off for one second, repeatedly.
I tested this program at ISTY
25/01/2024
*/
const int led_verte=13, led_orange=12, led_rouge=11;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(led_rouge, OUTPUT);
pinMode(led_verte, OUTPUT);
pinMode(led_orange, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(led_rouge, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(led_verte, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led_rouge, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
digitalWrite(led_verte, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Exo 2:
/*
Blink at ISTY
A pushbutton turns 3 LED on or off
I tested this program at ISTY
25/01/2024
*/
//paramétrage des entrées
const int bp=10;
//paramétrage des sorties
const int led_verte=13, led_orange=12, led_rouge=11;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin bp as an input.
pinMode(bp, INPUT_PULLUP);
// initialize digital pin LED_BUILTIN as an output.
pinMode(led_rouge, OUTPUT);
pinMode(led_verte, OUTPUT);
pinMode(led_orange, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
if (digitalRead(bp) == HIGH)
{
digitalWrite(led_rouge, HIGH);
digitalWrite(led_verte, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100);
}
}
else
{
digitalWrite(led_rouge, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
digitalWrite(led_verte, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
}