Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: QEI Motordriver ros_lib_melodic
Diff: main.cpp
- Revision:
- 11:35809512ec11
- Parent:
- 10:be9de79cf6b0
- Child:
- 12:817da876ae2f
- Child:
- 14:08047fde54f6
diff -r be9de79cf6b0 -r 35809512ec11 main.cpp
--- a/main.cpp Tue Nov 12 13:55:17 2019 +0000
+++ b/main.cpp Wed Nov 13 15:59:06 2019 +0000
@@ -33,78 +33,43 @@
Sensor sensor_right(I2C_SDA, I2C_SCL, S7);
// Motors
-Motor motor_left(PC_6, PB_15, PB_13);
-Motor motor_right(PA_15, PC_7, PB_4);
-
-/*
-void avoidObstacle(const std_msgs::Empty& avoid_obstacle_msg)
-{
- // When obstacle ahead
- if (sensor_forward.getIsObstacle())
- {
- if ( (sensor_right.getIsObstacle()) && (sensor_left.getIsObstacle()) )
- {
- //Turn backward
- while(!sensor_back.getIsObstacle())
- {
- motor_left.moveForward();
- motor_right.moveBackward();
- }
- }
- if (sensor_left.getIsObstacle())
- {
- //Turn to the right
- motor_left.moveForward();
- motor_right.moveBackward();
- }
- else
- {
- // By default : turn to the left
- motor_left.moveBackward();
- motor_right.moveForward();
- }
- }
- // No obstacle
- else
- {
- motor_left.moveForward();
- motor_right.moveForward();
- }
-}
-*/
+QEI wheel_A (PB_12, PA_4, NC, 3576, QEI::X4_ENCODING); //counts per rev = 12 * 298:1, use quadrature encoding
+QEI wheel_B (PB_5, PB_3, NC, 3576, QEI::X4_ENCODING); //counts per rev = 12 * 298:1, use quadrature encoding
+Motor motor_left(PC_6, PB_15, PB_13, wheel_A);
+Motor motor_right(PA_15, PC_7, PB_4, wheel_B);
-/*
-TODO REMOVE COMMENT WHEN CUSTOM MSGS READY
void controlMotor(const std_msgs::Int32& motor_dir)
{
- switch (motor_dir)
- {
+ switch(motor_dir.data) {
+ // Stop motor
+ case 0:
+ motor_left.moveForward(0);
+ motor_right.moveForward(0);
+ break;
+
// Move forward
case 1:
- motor_left.moveForward();
- motor_right.moveForward();
+ motor_left.moveForward(5691);
+ motor_right.moveForward(5691);
break;
// Move left
case 2:
- motor_left.moveBackward();
- motor_right.moveForward();
+ motor_left.moveLeft(0.5);
+ motor_right.moveLeft(-0.5);
break;
// Move right
case 3:
- motor_left.moveForward();
- motor_right.moveBackward();
+ motor_left.moveRight(-0.5);
+ motor_right.moveBackward(0.5);
break;
}
}
-*/
-/*
-TODO REMOVE COMMENT WHEN CUSTOM MSGS READY
// ROS subscriber for motors control
ros::Subscriber<std_msgs::Int32> motor_sub("motor_control", &controlMotor);
-*/
+
int main()
{
@@ -114,16 +79,9 @@
// ROS publisher for sensor readings
mbed_custom_msgs::lidar_msg int_lidar_msg;
ros::Publisher lidar_pub("lidar_reading", &int_lidar_msg);
- /*
- std_msgs::Int32 int_msg;
- ros::Publisher lidar_pub("lidar_reading", &int_msg);
- */
+
nh.advertise(lidar_pub);
-
- /*
- TODO REMOVE COMMENT WHEN CUSTOM MSGS READY
nh.subscribe(motor_sub);
- */
// load settings onto VL6180X sensors
sensor_forward.init();
@@ -152,11 +110,6 @@
int_lidar_msg.sensor_left = sensor_left.read();
lidar_pub.publish(&int_lidar_msg);
-
- /*
- int_msg.data = sensor_forward.read();
- lidar_pub.publish(&int_msg);
- */
/*
int range;