E-book - WordPress.com
Transkript
E-book - WordPress.com
Ardunio ve Bluetooth ile RC araba kontrolü Gerekli Malzemeler: 1) Arduino (herhangi bir model); bizim kullandığımız : Arduino/Geniuno uno 2) Bluetooth modül (herhangi biri); bizim kullandığımız: Hc-05 3) 9v Batarya 4) Arduino batarya kablosu 5) Arduino Mini BreadBoard 6) Arduino Motor Shiled (L293D) 7) Arduino Kablo (erkek erkek) 1) Arduino/Geniuno uno Kullanılacak arduino türü projenin türüne göre farklılık gösterebilir. Burada dikkat edilmesi gereken unsur: proje geliştirme aşamasında kullanılacak arduino türünün seçili olmasısır. 2) Arduino Motor Shiled (L293D) Dört adet motorun bağlanmasına imkan vermektedir. Bizim projemizde iki adet motor bulunmaktadır: Ön ( sağ-sol); Arka (ileri-geri) 3) 9v Batarya Rc arabadaki bataryalar ile birlikte arduinomuzun harici olarak çalışmasına imkan vermektedir. 4) Arduino Batarya Kablosu 9v luk bataryayı arduinomuza bağlamamız için ihtiyaç duyduğumuz gereçtir. 5) Arduino Mini BreadBoard Oluşturulacak projede bağlantı sayımız ne kadar çok ise ve projemiz ne kadar komplike yapıda ise kullanmaya ihtiyaç duyduğumuz bread board un boyutu aynı oranda büyümektedir. Bizim oluşturduğumuz projede bread board u bir tek bluetooth modülü bağlamak için kullandık. 6) Bluetooth Modulü Kullanacağumız program yardımı ile telefonumuzdan alduğı komutları arduino ya iletecek olan uzaktan bağlantı modülümüz. 7) Arduino Kablo (Erkek Erkek) Oluşturacağınız projenizin türüne göre ihtiyaç duyacağınız kablo çeşidi ve miktarı farklılık gösterir. Biz projemizde bluetooth modülü bağlamak için 4 adet (erkek erkek ) kablo kullandık. Motorlarımızın arduinoya monte etmemiz için gerekli olan kabloları mevcuttur. KODLARI //------------------------------------------------------------------------------------------------------------------------------------//Basic Remote Control Car - Bill Tarpy - North East CoderDojo 17/01/2015 //Feel free to use this software as a basis for your own. #include <SoftwareSerial.h> //the library for seial communication #include <AFMotor.h> // the library for the Adafruit L293 Arduino Motor Shield int incomingByte = 0; // for incoming serial data int speed_min = 135; //the minimum “speed” the motors will turn - take it lower and motors don’t turn int speed_max = 255; //the maximum “speed” the motors will turn – you can’t put in higher int speed_left = speed_max; // set both motors to maximum speed int speed_right = speed_max; //as we added a Motor Shield Library we can just use the following code to define our M1 and M2 motors and their PWM frequency //the library takes care of all the complexity of the physical interface the Arduino uses to talk to the shield and the motor AF_DCMotor motor_left(1, MOTOR12_1KHZ); // create motor #1, 1KHz pwm AF_DCMotor motor_right(4, MOTOR12_1KHZ); // create motor #2, 1KHz pwm void setup() { Serial.begin(9600); // set up Serial library at 9600 bps this is the speed the serial interface will work at Serial.println(“Motor test!”);// display message for test purposes when connected to a serial monitor } void loop() { //this is our repeating loop - that will go round and round until we switch the Arduino off motor_left.setSpeed(speed_left); // minimum speed 135 max speed 255 motor_right.setSpeed(speed_right); // minimum speed 135 max speed 255 //first check if there is anything on the serial interface //we are using the Arduino’s default serial interface (pins 0 and 1)so no need to define these if (Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); } // if there is something on the serial interface it is read and assigned to incomingByte // we then use a SWITCH (case) statement which, depending on incomingByte, does different things // it runs the left and right motors to produce movement Forward, Backward, Left, Right or Stop //that’s all there is to it! switch(incomingByte) { case ‘S’: // stop all motors { motor_left.run(RELEASE); // stopped motor_right.run(RELEASE); // stopped Serial.println(“Stop\n”); //display message for test purposes when connected to a serial monitor incomingByte=’*’;} break; case ‘F’: // turn it on going forward { motor_left.run(FORWARD); Serial.println(“Forward\n”);//display message for test purposes when connected to a serial monitor incomingByte=’*’;} break; case ‘B’: // turn it on going backward { motor_left.run(BACKWARD); Serial.println(“Backward\n”);//display message for test purposes when connected to a serial monitor incomingByte=’*’;} break; case ‘R’: // turn right { motor_right.run(FORWARD); Serial.println(“Rotate Right\n”);//display message for test purposes incomingByte=’*’;} break; case ‘L’: // turn left { motor_right.run(BACKWARD); Serial.println(“Rotate Left\n”);//display message for test purposes incomingByte=’*’;} break; case ‘1’: // Put what you like in here - for example - change the motor speeds { speed_left = speed_min; // set both motors to minimum speed speed_right = speed_min; Serial.println(“Speed 1\n”);//display message for test purposes incomingByte=’*’;} break; case ‘2’: // Put what you like in here - for example - turn on some LED lights on the car { Serial.println(“Lights on\n”);//display message for test purposes //why not use the motor sheild’s spre motors - M3 and M4 - to turn lights on and off //you would need to define M3/4 in your program setup, and a few extra veriables to hold values //then FORWARD and BACKWARD would send a voltage one way then the other through the M3 and M4 terminals as you require } incomingByte=’*’;} break; } //----------------------------------------------------------------------------------------------------------------------
Benzer belgeler
E-Book Arduino - WordPress.com
//the library takes care of all the complexity of the physical interface the Arduino uses to talk to the shield and the motor AF_DCMotor motor_left(1, MOTOR12_1KHZ); // create motor #1, 1KHz pwm AF...
Detaylı