Compare commits
3 Commits
d7c9724412
...
4657551eaa
| Author | SHA1 | Date |
|---|---|---|
|
|
4657551eaa | |
|
|
f8195c3f37 | |
|
|
c0f3ed1191 |
|
|
@ -0,0 +1,94 @@
|
|||
//#include "MeOrion.h"
|
||||
#include <MeMCore.h>
|
||||
#include <Wire.h>
|
||||
|
||||
MeGyro gyro;
|
||||
MeDCMotor motor3(M1);
|
||||
MeDCMotor motor4(M2);
|
||||
|
||||
uint8_t motorSpeed = 200;
|
||||
MeUltrasonicSensor ultraSensor(PORT_3);
|
||||
|
||||
double rWheel = 6.5;
|
||||
double dWheel = 11.5;
|
||||
|
||||
double Pos[4][1];
|
||||
|
||||
double angularError = 10;
|
||||
double posError = 10;
|
||||
|
||||
double angle1;
|
||||
double angle2;
|
||||
double dist;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
gyro.begin();
|
||||
|
||||
Pos[0][0] = 0;
|
||||
Pos[0][1] = 0;
|
||||
Pos[1][0] = 25;
|
||||
Pos[1][1] = 0;
|
||||
Pos[2][0] = 25;
|
||||
Pos[2][1] = 25;
|
||||
Pos[3][0] = 0;
|
||||
Pos[3][1] = 25;
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
Serial.println("Start Loop");
|
||||
int i;
|
||||
int j;
|
||||
Serial.read();
|
||||
for(i=0;i<4;i++){
|
||||
Serial.print("Beggin angular adjustment for i: ");
|
||||
Serial.println(i);
|
||||
//angle adjustment
|
||||
gyro.update();
|
||||
|
||||
angle1=gyro.getAngleZ();
|
||||
angle2=atan( (Pos[i+1][1]-Pos[i][1])/ (Pos[i+1][0]-Pos[i][0]) );
|
||||
motorSpeed = 70;
|
||||
Serial.print("angle1: ");
|
||||
Serial.print(angle1);
|
||||
Serial.print(" angle2: ");
|
||||
Serial.println(angle2);
|
||||
|
||||
while(angle1-angle2+360 > angularError) {
|
||||
gyro.update();
|
||||
angle1=gyro.getAngleZ();
|
||||
angle2=atan( (Pos[i+1][0]-Pos[i][0])/ (Pos[i+1][1]-Pos[i][1]) );
|
||||
Serial.println("i: ");
|
||||
Serial.println(i);
|
||||
Serial.print(" angle1: ");
|
||||
Serial.print(angle1);
|
||||
Serial.print(" angle2: ");
|
||||
Serial.println(angle2);
|
||||
if(angle2+180<angle1+180){
|
||||
motor3.run(-motorSpeed);
|
||||
motor4.run(-motorSpeed);
|
||||
} else {
|
||||
motor3.run(motorSpeed);
|
||||
motor4.run(motorSpeed);
|
||||
}
|
||||
delay(200);
|
||||
}
|
||||
motor3.stop();
|
||||
motor4.stop();
|
||||
//translation
|
||||
dist=sqrt( pow(Pos[i+1][0]-Pos[i][0],2)+pow(Pos[i+1][1]-Pos[i][1],2) );
|
||||
motorSpeed = 0.2/rWheel;
|
||||
for(j = 0;j<5;j++) {
|
||||
motor3.run(motorSpeed);
|
||||
motor4.run(-motorSpeed);
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
motor3.stop();
|
||||
motor4.stop();
|
||||
delay(1000);
|
||||
}
|
||||
delay(100);
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
/**
|
||||
* \par Copyright (C), 2012-2016, MakeBlock
|
||||
* @file GyroRotation.ino
|
||||
* @author MakeBlock
|
||||
* @version V1.0.0
|
||||
* @date 2015/09/09
|
||||
* @brief Description: this file is sample code for MeGyro device.
|
||||
*
|
||||
* Function List:
|
||||
* 1. void MeGyro::begin(void)
|
||||
* 2. void MeGyro::update(void)
|
||||
* 3. double MeGyro::angleX(void)
|
||||
* 4. double MeGyro::angleY(void)
|
||||
* 5. double MeGyro::angleZ(void)
|
||||
*
|
||||
* \par History:
|
||||
* <pre>
|
||||
* <Author> <Time> <Version> <Descr>
|
||||
* Mark Yan 2015/09/09 1.0.0 rebuild the old lib
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
#include "MeOrion.h"
|
||||
#include <Wire.h>
|
||||
|
||||
MeGyro gyro;
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
gyro.begin();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
gyro.update();
|
||||
Serial.read();
|
||||
Serial.print("X:");
|
||||
Serial.print(gyro.getAngleX() );
|
||||
Serial.print(" Y:");
|
||||
Serial.print(gyro.getAngleY() );
|
||||
Serial.print(" Z:");
|
||||
Serial.println(gyro.getAngleZ() );
|
||||
delay(10);
|
||||
}
|
||||
Loading…
Reference in New Issue