Programmation de la partie Manette
La partie manette est constituée d’une carte arduino UNO, un module Bluetooth HC06, un afficheur LCD 20×4 avec un module I2C, un joystick et un potentiomètre. Le programme arduino dans l’annexe 1 de ce rapport. Le schéma du montage réalisé sur fritzing est le suivant :
/* * FST BENI MELLAL * Cycle ingénieur filière génie électrique, * option : électrotechnique et électronique industrielle * code réalisé par : MALKI MOHAMED-YASSINE * PROJET : conception et réalisation d'un bras robotisé * * == CODE manette== */ #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Servo.h> LiquidCrystal_I2C lcd(0x27, 20, 4); #define button 3 int state = 0; int Val1, Val2, Val3, Val4; int a = 0; void setup() { Serial.setTimeout(10000); pinMode(button, OUTPUT); pinMode(4, OUTPUT); Serial.begin(38400); // Default communication rate of the Bluetooth module lcd.init(); // initialisater lcd lcd.backlight(); lcd.setCursor(2, 0); lcd.print("FST BENI-MELLAL"); lcd.print("FST BENI-MELLAL"); lcd.setCursor(1, 1); lcd.print("FILIERE INGENIEUR"); lcd.setCursor(4, 2); lcd.print("MINI PROJET"); lcd.setCursor(3, 3); lcd.print("BRAS ROBOTIQUE"); delay(4000); lcd.clear(); lcd.setCursor(2, 0); lcd.print("REALISE PAR:"); lcd.setCursor(3, 1); lcd.print("MALKI MOHAMED YASSIN"); delay(5000); lcd.clear(); } void loop() { int conf = Serial.parseInt(); if (conf == 1) { lcd.setCursor(0, 0); lcd.print("commande par joystck"); lcd.setCursor(5, 1); lcd.print("activee"); state = digitalRead(button); // lire l'etat du boutton poussoir if ( state == HIGH) { a = 1; } else { a = 0; } Val4 = 0; Val1 = analogRead(A0); Val1 = map(Val1, 0, 1023, 0, 180); Val2 = analogRead(A1); Val2 = map(Val2, 0, 1023, 0, 180); Val3 = analogRead(A2); Val3 = map(Val3, 0, 1023, 0, 180); Serial.print("a"); Serial.print(a); Serial.print("bbbb"); Serial.print(Val1); Serial.print("c"); Serial.print(Val2); Serial.print("d"); Serial.print(Val3); Serial.print("eeee"); Serial.print(Val4); Serial.println("g;"); delay(10); } else { lcd.clear(); lcd.setCursor(1, 0); lcd.print("cycle automatique"); delay(1000); lcd.setCursor(3, 1); lcd.print("debut du cycle"); conf = Serial.parseInt(); if (conf == 2) { lcd.setCursor(3, 1); lcd.print("objet attrape"); }delay(1000); }