Motivation – contrôle du babyfoot
3 langages de programmation
2
Vision
• Ecrite en C/C++
• Ajout de l'algorithme de reconnaissance d'images (balle) à la partie acquisition d'images existante
Contrôle des barres (gardien & arrières)
• Simulation à l'aide de matlab
• Contrôle à l'aide de LabVIEW Acquisition des mesures de position angulaire et de translation. Calcul des commandes pour le 2 x 2 moteurs. Stratégie.
Compétences
Domaine
– Comprendre les bases de la programmation
– Développer un logiciel (simple) structuré en utilisant un langage/environnement de programmation tel que C, Fortran ou Matlab
Transversales – Gérer son temps
– Montrer de la persévérance en dépit des obstacles
4
Objectifs
• Appliquer, approfondir et développer les connaissances acquises lors du cours informatique ICC
• Apprendre à écrire un programme simple, le debugger et le tester
• Se familiariser avec l’acquisition, le traitement et la visualisation de données
• Etre à même de passer d'une idée à un programme en choisissant l’environnement le mieux adapté
5
Motivations
• 3 langages • 3 manières différentes d’appréhender un problème • 3 manières différentes d’exprimer une idée
3 fois mieux préparé pour les cours à venir!
LabVIEW C++ Matlab
6
Introduction
Buts • Connaître les principes de base de la programmation • Apprendre à écrire un programme simple en partant d'une idée
– Concevoir l'algorithme (semestre précédent) – Implanter l'algorithme dans un langage donné – Debugger le programme – Valider le programme
è Apprendre les paradigmes et la syntaxe d'un langage de programmation donné.
7
Idée Algorithme Code Test
Organisation
• Cours
– Mardi, salle: CO1, 14:15-15:00 (16:00, voir plan hebdomadaire)
• Exercices, exercices accompagnés et projet
– mardi 15:15-17:00 (voir plan hebdomadaire)
– CO 020..23, CM1 120-121 avec ordi personnel
• Projet en binôme couvrant les 3 langages
• Evaluations 2 x
• Page officielle du cours, mise à jour régulière:
http://la.epfl.ch/p
• Sur Moodle
http://moodle.epfl.ch/course/view.php?id=14113
8
Plan des cours
Semaine Matière Date
1 Introduction (1415-1600) 17.2
2 Structures de contrôle (1415-1600) 24.2
3 Fonctions (1415-1600) 3.3
4 Entrées et sorties (1415-1600) 10.3
5 Projet et récap C/C++ 17.3
6 Instrument virtuel – I 24.3
7 Instrument virtuel – II 31.3
- Pâques - 7.4
8 Fichier et affichage 14.4
9 Test intermédiaire 21.4
10 Design pattern 28.4
11 Introduction à Matlab I - calculatrice 5.5
12 Introduction à Matlab II - affichage 12.5
13 Matlab III - programmation 19.5
14 Examen final 26.5
15 Remise projets: x.6 9
v.5.2.2015
Références
"Introduction to algorithms / Thomas H. Cormen ... [et al.]". Année:2009. ISBN:978-0-262-03384-8
Algorithms. R. Sedgewick, edition in c++
Algorithmes et structures de données avec ADA, C++ et Java 2004, PPUR, ISBN: 2-88074-488-1
14
MATLAB A Practical Introduction to Programming and Problem Solving Second Edition, Stormy Attaway
LabVIEW for Everyone: Graphical Programming Made Easy and Fun (3rd Edition), Jeffrey Travis, Jim Kring
"C++ par la pratique,Recueil d'exercices corrigés et aide-mémoire, J.-C. Chappelier & F. Seydoux". PPUR
Scientific Computing with MATLAB and Octave Second Edition, Alfio Quarteroni & Fausto Saleri
MOOC EPFL Initiation à la programmation (en C++) https://www.coursera.org/course/initprogcpp
Projet – Scan2graph
Le but de ce projet est de vous familiariser avec les 3 environnements vus au cours. Il vous permettra de mettre en œuvre les différentes phases de la création d’un programme. Chaque environnement gèrera une étape du projet.
15
Projet
• Le projet se fait par groupe de 2(ou seul). Les membres du groupe sont responsable de l'entier du code, la note est donnée au groupe, sauf cas exceptionnel.
• Ce projet illustre comment échanger de manière simple des données entre les différent programmes.
• La donnée du projet est volontairement libre sur certains points. Vous aurez la tâche de choisir une solution adaptée et de la mettre en œuvre. Vous devrez documenter votre code.
• Le projet est formaté de telle sorte que sa validation se fera "en 1 click". Différents tests seront réalisés sur vos programmes. La partie LabVIEW contrôle les 2 autres parties.
16
Projet
Rendu dans une archive .zip aux noms des 2 membres du groupe
• Brève documentation au format pdf (1 pages)
• Le fichier source du code c++
• Le programme c++ compilé pour machine linux/Mac/Window
• Les sources LabVIEW
• Le script/programme Matlab
• Les différents fichiers générés
Tous les chemins doivent être relatifs!
17
Logiciels
Depuis cette année les logiciels LabVIEW et MATLAB sont disponibles pour les étudiants via Poseidon
http://poseidon.epfl.ch/english/software/article/professional-softwares.html
Il faut installer de préférence les versions anglaises! Les compilateurs C/C++ (gratuits) sont à installer depuis les sites des fabricants. Il existe également des compilateurs en ligne, par exemple:
http://www.tutorialspoint.com/compile_cpp_online.php
18
Assistants • Assistant
Wissam Halimi Christoph Kammer
• Assistants étudiants Antoine Brandt Antoine Durieux Arnaud Rubin Arthur Girard
Emile Decosterd Erwan Lepeuch Jules Soulas
Luca Fetz Luca Zampieri Lukas Tiller Matthieu Jonin
Mohamed Boudokhane Philippe Schuchert Quentin Waechter Vincent Mayoraz
19