手势控制器
小车完成图
贴代码!!!!!
手势控制器代码:
#include<SoftwareSerial.h>
#include<JY901.h>
SoftwareSerial WIFISerial(10,11); // RX,TX //模拟一个软串口
float b[3];
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(11, OUTPUT);
int i=0;
WIFISerial.begin(9600);
// WIFISerial.println("AT");
// delay(100);
// WIFISerial.println("AT+RST");
// delay(100);
// WIFISerial.println("AT+CWJAP=\"kxk\",\"296097205\"");
// delay(1000);
// WIFISerial.println("AT+CWMODE=1");
// delay(100);
// WIFISerial.println("AT+CIPMUX=0");
// delay(100);
// WIFISerial.println("AT+CIPMODE=1");
// delay(100);
//WIFISerial.println("AT+CIPSTART=\"TCP\",\"192.168.43.56\",8080");
// delay(1000);
//WIFISerial.println("AT+CIPSEND=0,14");
}
void loop()
{
int i = 0;
b[0]=(float)JY901.stcAngle.Angle[0]/32768*180;b[1]=(float)JY901.stcAngle.Angle[1]/32768*180;b[2]=(float)JY901.stcAngle.Angle[2]/32768*180;
WIFISerial.print(b[0]);WIFISerial.print("");WIFISerial.print(b[1]);WIFISerial.print("");WIFISerial.println(b[2]);
WIFISerial.println(" ");
delay(500);
if (WIFISerial.available())
{
Serial.write(Serial.read());
}
while (Serial.available())
{
JY901.CopeSerialData(Serial.read()); //CallJY901 data cope function
}
}
void serialEvent() {
while (Serial.available()) {
char inChar =(char)Serial.read();WIFISerial.print(inChar); //Output Original Data, use thiscode
}
}
小车代码:
#include"JY901.h"
#include <Wire.h>
#include <math.h>
#include <SoftwareSerial.h>
SoftwareSerial WIFISerial(10,11);
#define IN1 6
#define IN2 7
#define IN3 4
#define IN4 5
String comdata="";
String numdata="";
float b[3];
void setup()
{
Serial.begin(9600);
while (!Serial)
{
;
}
WIFISerial.begin(9600);
}
void initCar(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void turnLeft(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void turnRight(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void go(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void back(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void stopCar(){
initCar();
}
void loop(){
int i=0,j=0,t=0,n=0,k=0;
float num;
char str;
while(WIFISerial.available()!=0)
{
comdata+=char(WIFISerial.read());
delay(2);
}
Serial.println(comdata);
for(i=12;i<comdata.length();i++)
{
if(comdata[i]>='0'&&comdata[i]<='9'||comdata[i]=='-')
{
while(comdata[i]!=' ')
{
numdata+=comdata[i++];
}
for(j=0;j<numdata.length();j++)
{
t=n=numdata.length();
if(numdata[j]=='-')
{
j++;
}
if(numdata[j]=='.')
{
t=j;
j++;
}
if(numdata[j]==' ') break;
num+=numdata[j]-'0';
num=num*10;
}
num=num/pow(10,n-t+3);
if(numdata[0]=='-')
{
num=0-num;
}
b[k]=num;
k++;
num=0;
}
numdata="";
}
comdata="";
if(abs(b[1])>=25)
{
if(b[1]>=25)
{
if(b[1]>=70){initCar();}
else if(abs(b[0])<=25){initCar();}
else if(b[0]>25) {turnRight();}
else {turnRight();}
}
else
{
if(b[1]<=-70) {initCar();}
else if(abs(b[0])<=25) {initCar();}
else if(b[0]>25) {turnLeft();}
else {turnLeft();}
}
}
else if(abs(b[0])>=25)
if(b[0]>=25) {go();}
else{back();}
else {initCar();}
}
校赛告一段落 ,之后就要找工作啦 ,可能省赛 不会太上心,不过一定会认真做的!!!!
哈哈哈感谢一起学习的学弟,你们都是最可爱的朋友。