Bluetooth Solar Bot
Bluetooth controlled solar robot
Components and supplies
1
Battery Holder, 18650 x 2
1
Rocker Switch, SPST
1
Arduino UNO
1
Development Board, Motor Control Shield
2
Solar Panel, 2.5 W
1
Android device
1
Jumper wires (generic)
4
Maker Essentials - Micro-motors & Grippy Wheels
2
5 mm LED: Red
4
High Brightness LED, White
1
HC-05 Bluetooth Module
4
DC Motor, 12 V
1
18650 Lion battery
Tools and machines
1
Plier, Long Nose
1
Multitool, Screwdriver
Apps and platforms
1
Arduino IDE
Project description
Code
Code
arduino
1// Bluetooth Controlled Solar Bot // 2// by Mohd Sohail // 3// https://www.youtube.com/channel/UCaXI2PcsTlH5g0et67kdD6g // 4 5// Subscribe the channel // 6 7#include <AFMotor.h> 8 9AF_DCMotor motor1(1, MOTOR12_1KHZ); 10AF_DCMotor motor2(2, MOTOR12_1KHZ); 11AF_DCMotor motor3(3, MOTOR34_1KHZ); 12AF_DCMotor motor4(4, MOTOR34_1KHZ); 13int whiteled = A5; 14int redled = A4; 15 16char command; 17 18void setup() 19{ 20 Serial.begin(9600); 21 pinMode(whiteled, OUTPUT); 22 pinMode(redled, OUTPUT); 23} 24 25void loop(){ 26 if(Serial.available() > 0){ 27 command = Serial.read(); 28 Stop(); 29 30 switch(command){ 31 case 'F': 32 forward(); 33 break; 34 case 'B': 35 back(); 36 break; 37 case 'L': 38 left(); 39 break; 40 case 'R': 41 right(); 42 break; 43 case 'S': 44 Stop(); 45 break; 46 case 'O': 47 on(); 48 break; 49 case 'P': 50 off(); 51 break; 52 } 53 } 54} 55 56void forward() 57{ 58 motor1.setSpeed(150); //Define maximum velocity 59 motor1.run(FORWARD); //rotate the motor clockwise 60 motor2.setSpeed(150); //Define maximum velocity 61 motor2.run(FORWARD); //rotate the motor clockwise 62 motor3.setSpeed(150);//Define maximum velocity 63 motor3.run(FORWARD); //rotate the motor clockwise 64 motor4.setSpeed(150);//Define maximum velocity 65 motor4.run(FORWARD); 66 digitalWrite(redled , LOW);//rotate the motor clockwise 67} 68 69void back() 70{ 71 motor1.setSpeed(150); //Define maximum velocity 72 motor1.run(BACKWARD); //rotate the motor anti-clockwise 73 motor2.setSpeed(150); //Define maximum velocity 74 motor2.run(BACKWARD); //rotate the motor anti-clockwise 75 motor3.setSpeed(150); //Define maximum velocity 76 motor3.run(BACKWARD); //rotate the motor anti-clockwise 77 motor4.setSpeed(150); //Define maximum velocity 78 motor4.run(BACKWARD); //rotate the motor anti-clockwise 79digitalWrite(redled , HIGH); 80} 81 82void left() 83{ 84 motor1.setSpeed(150); //Define maximum velocity 85 motor1.run(BACKWARD); //rotate the motor anti-clockwise 86 motor2.setSpeed(150); //Define maximum velocity 87 motor2.run(BACKWARD); //rotate the motor anti-clockwise 88 motor3.setSpeed(150); //Define maximum velocity 89 motor3.run(FORWARD); //rotate the motor clockwise 90 motor4.setSpeed(150); //Define maximum velocity 91 motor4.run(FORWARD); //rotate the motor clockwise 92 digitalWrite(redled , LOW); 93} 94 95void right() 96{ 97 motor1.setSpeed(150); //Define maximum velocity 98 motor1.run(FORWARD); //rotate the motor clockwise 99 motor2.setSpeed(150); //Define maximum velocity 100 motor2.run(FORWARD); //rotate the motor clockwise 101 motor3.setSpeed(150); //Define maximum velocity 102 motor3.run(BACKWARD); //rotate the motor anti-clockwise 103 motor4.setSpeed(150); //Define maximum velocity 104 motor4.run(BACKWARD); //rotate the motor anti-clockwise 105 digitalWrite(redled , LOW); 106} 107 108void Stop() 109{ 110 motor1.setSpeed(0); //Define minimum velocity 111 motor1.run(RELEASE); //stop the motor when release the button 112 motor2.setSpeed(0); //Define minimum velocity 113 motor2.run(RELEASE); //rotate the motor clockwise 114 motor3.setSpeed(0); //Define minimum velocity 115 motor3.run(RELEASE); //stop the motor when release the button 116 motor4.setSpeed(0); //Define minimum velocity 117 motor4.run(RELEASE); //stop the motor when release the button 118 digitalWrite(redled , LOW); 119} 120 121void on() 122{ 123 digitalWrite(whiteled , HIGH); 124} 125 126void off() 127{ 128 digitalWrite(whiteled , LOW); 129} 130
Code
arduino
1// Bluetooth Controlled Solar Bot // 2// by Mohd Sohail // 3// https://www.youtube.com/channel/UCaXI2PcsTlH5g0et67kdD6g 4 // 5 6// Subscribe the channel // 7 8#include <AFMotor.h> 9 10AF_DCMotor 11 motor1(1, MOTOR12_1KHZ); 12AF_DCMotor motor2(2, MOTOR12_1KHZ); 13AF_DCMotor 14 motor3(3, MOTOR34_1KHZ); 15AF_DCMotor motor4(4, MOTOR34_1KHZ); 16int whiteled 17 = A5; 18int redled = A4; 19 20char command; 21 22void setup() 23{ 24 25 Serial.begin(9600); 26 pinMode(whiteled, OUTPUT); 27 pinMode(redled, OUTPUT); 28 29} 30 31void loop(){ 32 if(Serial.available() > 0){ 33 command = Serial.read(); 34 35 Stop(); 36 37 switch(command){ 38 case 'F': 39 forward(); 40 41 break; 42 case 'B': 43 back(); 44 break; 45 case 'L': 46 47 left(); 48 break; 49 case 'R': 50 right(); 51 break; 52 53 case 'S': 54 Stop(); 55 break; 56 case 'O': 57 on(); 58 59 break; 60 case 'P': 61 off(); 62 break; 63 } 64 } 65} 66 67void 68 forward() 69{ 70 motor1.setSpeed(150); //Define maximum velocity 71 motor1.run(FORWARD); 72 //rotate the motor clockwise 73 motor2.setSpeed(150); //Define maximum velocity 74 75 motor2.run(FORWARD); //rotate the motor clockwise 76 motor3.setSpeed(150);//Define 77 maximum velocity 78 motor3.run(FORWARD); //rotate the motor clockwise 79 motor4.setSpeed(150);//Define 80 maximum velocity 81 motor4.run(FORWARD); 82 digitalWrite(redled , LOW);//rotate 83 the motor clockwise 84} 85 86void back() 87{ 88 motor1.setSpeed(150); //Define 89 maximum velocity 90 motor1.run(BACKWARD); //rotate the motor anti-clockwise 91 92 motor2.setSpeed(150); //Define maximum velocity 93 motor2.run(BACKWARD); //rotate 94 the motor anti-clockwise 95 motor3.setSpeed(150); //Define maximum velocity 96 97 motor3.run(BACKWARD); //rotate the motor anti-clockwise 98 motor4.setSpeed(150); 99 //Define maximum velocity 100 motor4.run(BACKWARD); //rotate the motor anti-clockwise 101digitalWrite(redled 102 , HIGH); 103} 104 105void left() 106{ 107 motor1.setSpeed(150); //Define maximum 108 velocity 109 motor1.run(BACKWARD); //rotate the motor anti-clockwise 110 motor2.setSpeed(150); 111 //Define maximum velocity 112 motor2.run(BACKWARD); //rotate the motor anti-clockwise 113 114 motor3.setSpeed(150); //Define maximum velocity 115 motor3.run(FORWARD); //rotate 116 the motor clockwise 117 motor4.setSpeed(150); //Define maximum velocity 118 motor4.run(FORWARD); 119 //rotate the motor clockwise 120 digitalWrite(redled , LOW); 121} 122 123void 124 right() 125{ 126 motor1.setSpeed(150); //Define maximum velocity 127 motor1.run(FORWARD); 128 //rotate the motor clockwise 129 motor2.setSpeed(150); //Define maximum velocity 130 131 motor2.run(FORWARD); //rotate the motor clockwise 132 motor3.setSpeed(150); //Define 133 maximum velocity 134 motor3.run(BACKWARD); //rotate the motor anti-clockwise 135 136 motor4.setSpeed(150); //Define maximum velocity 137 motor4.run(BACKWARD); //rotate 138 the motor anti-clockwise 139 digitalWrite(redled , LOW); 140} 141 142void Stop() 143{ 144 145 motor1.setSpeed(0); //Define minimum velocity 146 motor1.run(RELEASE); //stop 147 the motor when release the button 148 motor2.setSpeed(0); //Define minimum velocity 149 150 motor2.run(RELEASE); //rotate the motor clockwise 151 motor3.setSpeed(0); //Define 152 minimum velocity 153 motor3.run(RELEASE); //stop the motor when release the button 154 155 motor4.setSpeed(0); //Define minimum velocity 156 motor4.run(RELEASE); //stop 157 the motor when release the button 158 digitalWrite(redled , LOW); 159} 160 161void 162 on() 163{ 164 digitalWrite(whiteled , HIGH); 165} 166 167void off() 168{ 169 digitalWrite(whiteled 170 , LOW); 171} 172
Downloadable files
Circuit
Circuit

Comments
Only logged in users can leave comments