Seguilinea KP Taratura Ultrasuoni di Paolo Giovanni
Dependencies: HCSR04 X_NUCLEO_IHM12A1 mbed
Fork of Ilfunzionante by
Revision 1:0226a8d3c0d3, committed 2018-02-17
- Comitter:
- FrancescoCaiazzo
- Date:
- Sat Feb 17 11:27:05 2018 +0000
- Parent:
- 0:9bd4730782f9
- Commit message:
- Seguilinea PLT Paolo Giovanni di Marcianise
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sat Feb 17 11:05:43 2018 +0000
+++ b/main.cpp Sat Feb 17 11:27:05 2018 +0000
@@ -2,20 +2,18 @@
#include "MotorShieldIHM12A1.h"
#include "hcsr04.h"
-#define SPEED 50
+#define SPEED 40
+#define Kp 50
+#define offset 0
+#define sample 5
+
float DIR;
float mediaB = 0;
float mediaN = 0 ;
-float MediaT = 0;
-
-#define Kp 50
-#define offset 0
-#define C 5
+float mediaT = 0;
HCSR04 sensor(D10, D11);
-// Serial
Serial pc(USBTX, USBRX);
-//PwmOut mypwm(A0);
MotorShieldIHM12A1 ms;
AnalogIn lineaD(A5);
@@ -25,15 +23,9 @@
{
pc.baud(9600);
pc.printf("Here I am!\r\n");
- //ms.MotorStart();
- printf("start \r\n");
- // Main loop
- printf ("Val \r\n ");
+ printf("start Seguilinea.os\r\n");
-
-
-
-
+ printf ("Robot su Bianco\r\n ");
while (pulsante)
{
wait (0.1);
@@ -46,9 +38,26 @@
wait(0.1);
}
- mediaB /= C;
- printf ("%f \n\r", mediaB);
- printf("Bianco \r\n");
+ mediaB /= sample;
+ printf("Bianco: %f\r\n",mediaB);
+
+ printf ("Robot su Nero\r\n ");
+ while (pulsante)
+ {
+ wait (0.1);
+ }
+ wait(0.1);
+
+ for (int i=0; i<sample; i++)
+ {
+ mediaN += lineaD.read();
+ wait(0.1);
+ }
+ mediaN /= sample;
+ printf("Nero: %f\r\n",mediaN);
+
+ mediaT =(mediaB+mediaN) / 2;
+ printf("Offset: %f\r\n",mediaT);
while (pulsante)
{
@@ -56,37 +65,25 @@
}
wait(0.1);
- for (int i=0; i<C; i++)
- {
- mediaN += lineaD.read();
- wait(0.1);
- }
- mediaN /= C;
- printf ("%f \n\r", mediaB);
- printf("Nero \r\n");
- MediaT =(mediaB+mediaN) / 2;
- while (pulsante) {
- wait (0.1);
- }
- wait(0.1);
while(true)
{
- // Avvia un impulso della durata di 10us sul pin di trigger
- sensor.start();
-
- // Aspetta prima della prossima lettura
- wait_ms(300);
-
- // Stampa sulla seriale la misura della distanza in cm
- pc.printf("%dcm\r\n", sensor.get_dist_cm());
-
- if (sensor.get_dist_cm() > 20) {
-
- ms.turn((lineaD.read()-MediaT)*Kp,40);
- }
- else {
- ms.turn(0,0);
+ // Avvia un impulso della durata di 10us sul pin di trigger
+ sensor.start();
+
+ // Aspetta prima della prossima lettura
+ wait_ms(300);
+
+ // Stampa sulla seriale la misura della distanza in cm
+ pc.printf("%dcm\r\n", sensor.get_dist_cm());
+
+ if (sensor.get_dist_cm() > 20)
+ {
+ ms.turn((lineaD.read()-mediaT)*Kp,SPEED);
+ }
+ else
+ {
+ ms.turn(0,0);
}
}
