Compte-rendu : Robots de combats

Documents pareils
Piano Stairs. descriptif de la conception et des programmes associés. Copyright (C) 2013 taprik

Testez votre installation. Créer un répertoire vide

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Manuel d'exploitation de l'application Vitamin version 1.0

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Listes de validation dans OpenOffice Calc

Paxton. ins Net2 desktop reader USB

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Envol2008. Licences, logiciels libres et administration. Thierry Aimé ministère de l Économie, de l Industrie et de l Emploi

Installation d un patch de mise à jour et d un pack langue dans SugarCRM Open Source 4.5.1

Plan du cours. Historique du langage Nouveautés de Java 7

Android. Trucs et astuces

WEB page builder and server for SCADA applications usable from a WEB navigator

Subject to the terms of this Agreement, Adobe hereby grants you a nonexclusive,

CONTEC CO., LTD. Novembre 2010

SunATM 4.0 Release Notes

Principe de TrueCrypt. Créer un volume pour TrueCrypt

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

Once the installation is complete, you can delete the temporary Zip files..

Notice Technique / Technical Manual

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

DOCUMENTATION - FRANCAIS... 2

SERVEUR DÉDIÉ DOCUMENTATION

Wobe.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

DOCUMENTATION - FRANCAIS... 2

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Bonjour, Le document qui suit est le support de la formation ''Arduino applications distantes''.

Playzilla - Chargement par clé usb

Une carte pour vos projets

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Java Licence Professionnelle CISII,

Comment faire un Mailing A partir d une feuille Calc

Education Delivery Intelligent Tool

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

Installation d'un TSE (Terminal Serveur Edition)

Programmer en JAVA. par Tama

PIC EVAL Dev Board PIC18F97J60

La montée des bases de données open source

PROGRAMMATION EXCEL EN VBA

RÉALISATION D UN BANC D ÉQUILIBRAGE

Utiliser un proxy sous linux

Insérer des images dans Base

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

Conférence sur les microcontroleurs.

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION

4. Groupement d objets

Bases de programmation. Cours 5. Structurer les données

Material Banking Group Percentage Regulations. Règlement fixant le pourcentage (groupe bancaire important) CONSOLIDATION CODIFICATION

Guide de démarrage du système modulaire Sun Blade 6000

Le No.1 de l économie d énergie pour patinoires.

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

POLICY: FREE MILK PROGRAM CODE: CS-4

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Calculation of Interest Regulations. Règlement sur le calcul des intérêts CONSOLIDATION CODIFICATION. Current to August 4, 2015 À jour au 4 août 2015

APPENDIX 6 BONUS RING FORMAT

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Guide d installation de SugarCRM Open Source version 4.5.1

ACTIVITÉ DE PROGRAMMATION

Aspects de droit anglais

GUIDE D'UTILISATION: Comment installer la Renault Media Nav Toolbox? GUIDE D'UTILISATION: Comment créer une empreinte digitale de votre appareil sur

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Optimisez la gestion de vos projets IT avec PPM dans le cadre d une réorganisation. SAP Forum, May 29, 2013

1. PRESENTATION DU PROJET

La création et la mise à jour de votre profil de fournisseur d Accenture

Warning: Failure to follow these warnings could result in property damage, or personal injury.

Contents Windows

CONTINUING CONSOLIDATION OF STATUTES ACT LOI SUR LA CODIFICATION PERMANENTE DES LOIS. 1 In this Act,

Règlement relatif à l examen fait conformément à la Déclaration canadienne des droits. Canadian Bill of Rights Examination Regulations CODIFICATION

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations

Prototypage électronique

Galaxy est une plateforme de traitements (bio)informatiques accessible depuis l'url : (en précisant votre login et mot de passe LDAP «genotoul»).

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

TD3: tableaux avancées, première classe et chaînes

Configurateur TX100B tébis KNX avec prise USB

Guide d'installation rapide TFM-560X YO.13

Vanilla : Virtual Box

Air Transportation Tax Order, Décret de 1995 sur la taxe de transport aérien CONSOLIDATION CODIFICATION

Gestion des prestations Volontaire

Cours de Systèmes d Exploitation

Carte ARDUINO UNO Microcontrôleur ATMega328

Robot de Téléprésence

Swap: Utilisation et risques Approche de gestion pour les consommateurs

Life Companies Borrowing Regulations. Règlement sur les emprunts des sociétés d assurance-vie CONSOLIDATION CODIFICATION

Langage Java. Classe de première SI

Transcription:

Compte-rendu : Robots de combats Chef de projet : VERPILLIEUX Yves, VITELLI Enzo Collaborateurs : DEMONT Aurélien, JACQUIEZ Romain, NGATCHOU Geoffrey, GIACOMO Gaubert Le principal objectif du projet consiste à réaliser deux robots de combat afin de pouvoir en faire des démonstrations aux étudiants intérieur/extérieur de l ISEN, par exemple en faire la démonstration aux lycéens et leurs parents lors des journées portes-ouvertes. Leur rôle sera de remporter le combat. Ils s affronteront l un contre l autre dans le but de se neutraliser. Ces robots seront constitués d un moteur, de chenilles, d un alliage en plastique, d une carte mère et d une carte Arduino. Nous essayerons de le réaliser de manière peu onéreuse, écologique et le plus petit possible afin de respecter le budget. Etat d avancement : Les robots sont montés et fonctionnels. L idée de les diriger avec un système sans-fil a été abandonnée du fait du manque de temps. On s est donc ramener à l idée de commander les robots via des câbles USB. Outils de management utilisés : Trello, Facebook Somme à prévoir pour le projet : 60 euros voire 70 euros.

Liste des composants commandés

Eagle du pont H Le pont en H va permettre de contrôler les moteurs des roues.

Reste à faire Communication Bluetooth Programmation de l arduino pour le module RF Développement d un code sur Arduino pour gérer les PWM Gestion des moteurs Ce qui a été fait Communication filaire Montage des robots Fabrication du PCB pont en H et du gyrophare Montage pour le contrôle d un moteur via Arduino Lien internet qui explique tout ce qui doit être fait : http://www.mon-clubelec.fr/pmwiki_mon_club_elec/pmwiki.php?n=main.arduinoexpertmoteurcccontro lersensvitesserotationserie

Programme complet en langage Arduino A copier/coller directement sur l éditeur Arduino // --- Programme Arduino --- // Trame de code générée par le générateur de code Arduino // du site www.mon-club-elec.fr // Auteur du Programme : X. HINAULT - Tous droits réservés // Programme écrit le : 5/2/2011. // ------- Licence du code de ce programme ----- // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, // or any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // //////////////////// PRESENTATION DU PROGRAMME //////////////////// // -------- Que fait ce programme? --------- /* Ce programme permet de contrôler le sens de rotation et la vitesse de rotation d'un moteur à courant continu (CC) par une valeur entière reçue sur le port série. Ce programme utilise la génération PWM : la valeur reçue devra être comprise entre 0 et 255. Le signe de la valeur reçue déterminera le sens de rotation : + vers l'avant et - vers l'arrière. Ce programme commande le moteur par 3 broches (1 sens AV, 1 sens AR et 1 vitesse (PWM)) et utilise une interface de puissance basée sur le CI tb6612 fng. */ // --- Fonctionnalités utilisées --- // Utilise la connexion série vers le PC // -------- Circuit à réaliser --------- // La connexion série vers le PC utilise les broches 0 et 1 (via le câble USB) // Broche 3 : la broche PWM de l'interface moteur // Broche 4 : la broche IN2 de l'interface moteur // Broche 5 : la broche IN1 de l'interface moteur // /////////////////////////////// 1. Entête déclarative /////////////////////// // A ce niveau sont déclarées les librairies incluses, les constantes, les variables, les objets utiles... // --- Déclaration des constantes --- // --- Inclusion des librairies --- // --- Déclaration des constantes utiles --- // --- Déclaration des constantes des broches E/S numériques --- const int VITESSE_MOT1=3; // Constante pour la broche 3 const int AVANT_MOT1=4; // Constante pour la broche 4

const int ARRIERE_MOT1=5; // Constante pour la broche 5 // --- Déclaration des constantes des broches analogiques --- // --- Déclaration des variables globales --- int octetreception=0; // variable de stockage des valeurs reçues sur le port Série long nombrereception=0; // variable de stockage du nombre reçu sur le port Série long nombrereception0=0; // variable de stockage du dernier nombre reçu sur le port Série String chainereception=""; // déclare un objet String vide pour reception chaine // --- Déclaration des objets utiles pour les fonctionnalités utilisées --- // ////////////////////////// 2. FONCTION SETUP = Code d'initialisation ////////////////////////// // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme void setup() { // debut de la fonction setup() // --- ici instructions à exécuter 1 seule fois au démarrage du programme --- // ------- Initialisation fonctionnalités utilisées ------- Serial.begin(115200); // initialise connexion série à 115200 bauds // IMPORTANT : régler le terminal côté PC avec la même valeur de transmission // ------- Broches en sorties numériques ------- pinmode (VITESSE_MOT1,OUTPUT); // Broche VITESSE_MOT1 configurée en sortie pinmode (AVANT_MOT1,OUTPUT); // Broche AVANT_MOT1 configurée en sortie pinmode (ARRIERE_MOT1,OUTPUT); // Broche ARRIERE_MOT1 configurée en sortie // ------- Broches en entrées numériques ------- // ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques ------- // ------- Initialisation des variables utilisées ------- // ------- Initialisation des broches utilisées ------- digitalwrite(vitesse_mot1,high); // PWM haut = transparent à l'état des broches IN1/IN2 //---- +/- test des moteurs ---- //digitalwrite(avant_mot1,high), digitalwrite(arriere_mot1,low);; // Test marche avant //delay (1000); //digitalwrite(avant_mot1,low), digitalwrite(arriere_mot1,high);; // Test marche arriere //delay (1000); digitalwrite(avant_mot1,low), digitalwrite(arriere_mot1,low);; // ARRET } // fin de la fonction setup() // ******************************************************************************** ////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du

programme ////////////////// // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'arduino est sous tension void loop(){ // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- //---- code type réception valeur sur le port série --- //--- réception valeur sur port Série par fonction dédiée --- if (Serial.available()==true) nombrereception=recevoirnombre(); // si caractères présents sur port Série appel de la fonction recevoirnombre if (nombrereception!=nombrereception0) { // si un nombre a été reçu nombrereception=constrain(nombrereception,-255,255); // oblige valeurs entre -255 et +255 Serial.print("Arduino a recu : "); Serial.println(nombreReception); nombrereception0=nombrereception; // RAZ nombrereception0 // gestion des moteurs en fonction de la valeur recue if (nombrereception>0) { // si nombre positif / Marche avant vitesse digitalwrite(avant_mot1,high), digitalwrite(arriere_mot1,low);; / analogwrite(vitesse_mot1,nombrereception); // impulsion PWM } if (nombrereception==0) { // si nombre =0 Arret moteur d'impulsion PWM digitalwrite(avant_mot1,low), digitalwrite(arriere_mot1,low);; // digitalwrite(vitesse_mot1,low); // broche PWM au niveau bas = pas } if (nombrereception<0) { // si nombre négatif digitalwrite(avant_mot1,low), digitalwrite(arriere_mot1,high);; / / Marche arriere analogwrite(vitesse_mot1,abs(nombrereception)); // impulsion PWM vitesse - attention valeur positive } } // fin si nombrereception } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ********************************************************************************

// ////////////////////////// FONCTIONS DE GESTION DES INTERRUPTIONS //////////////////// // ////////////////////////// AUTRES FONCTIONS DU PROGRAMME //////////////////// //---- fonction de réception valeur entière sur le port série --- long recevoirnombre() { // fonction de reception d'un nombre sur le port série int octetrecu=0; // variable pour octet recu int compt=0; // variable locale comptage caractères reçus boolean signe=true; // variable locale signe nombre recu long nombrerecu=0; // variable locale nombre recu while (Serial.available()>0) { // tant qu'un octet en réception variable octetrecu=serial.read(); // Lit le 1er octet reçu et le met dans la if (octetreception==10) { // si Octet reçu est le saut de ligne break; // sort de la boucle while } else { // si le caractère reçu n'est pas un saut de ligne if ((octetrecu=='-') && (compt==0))signe=false; // si Octet reçu est le - et si c'est le 1er caractère reçu - signe négatif compt=compt+1; // incrémente compt décimale octetrecu=octetrecu-48; // transfo valeur ASCII en valeur // calcul du nombre à partir des valeurs reçues u*10)+octetrecu; if ((octetrecu>=0)&&(octetrecu<=9)) nombrerecu = (nombrerec } // fin else if delay(1); // pause pour laisser le temps à la fonction available de recevoir octet suivant } // fin tant que octet réception //----- une fois que le saut de ligne est reçu, on sort du While et on se positionne ici négatif if (signe==false) nombrerecu=nombrerecu*(-1); // prise en compte signe return(nombrerecu); // renvoie le nombre calculé - type long } // fin fonction recevoirnombre // ////////////////////////// Fin du programme //////////////////// // ////////////////////////// Mémo instructions //////////////////// // ////////////////////////// Fin Mémo instructions ////////////////////