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: DigitDisplay Motor PID Ping mbed millis
Fork of DagonFly__RoadToJapan_15Mei_Ultimate by
Revision 40:5b937cac959a, committed 2017-02-18
- Comitter:
- gustavaditya
- Date:
- Sat Feb 18 03:24:05 2017 +0000
- Parent:
- 39:11358f3f61ff
- Child:
- 41:336a19289c2d
- Commit message:
- Update 18 Februari 2017 Pk. 10.24 terbaru;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Ping.lib Sat Feb 18 03:24:05 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/rosienej/code/Ping/#6996f66161d7
--- a/Servo.lib Sat Feb 18 00:37:33 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://developer.mbed.org/teams/KRAI-2017/code/Joystick_OrdoV5/#3778327a0102
--- a/main.cpp Sat Feb 18 00:37:33 2017 +0000
+++ b/main.cpp Sat Feb 18 03:24:05 2017 +0000
@@ -41,10 +41,9 @@
#include "mbed.h"
#include "JoystickPS3.h"
#include "Motor.h"
-#include "Servo.h"
#include "encoderKRAI.h"
#include "millis.h"
-
+#include "Ping.h"
/***********************************************/
/* Konstanta dan Variabel */
/***********************************************/
@@ -67,6 +66,8 @@
const float pwmPowerUp = 0.7;
const float pwmPowerDown = -0.9;
+
+float jarak_ping=0;
// Variable Bawah
float Vt;
@@ -87,6 +88,7 @@
unsigned long int previousMillis2 = 0; // PID launcher
unsigned long int currentMillis2;
unsigned long int previousMillis3 = 0; // Pneumatik
+unsigned long int previousMillis4 = 0; // Ping
/* Variabel Stick */
//Logic untuk masuk aktuator
@@ -132,10 +134,12 @@
DigitalOut pneumatik(PB_3, PullUp);
/*Dekalrasi Limit Switch */
-DigitalIn infraAtas(PC_9, PullUp);
+//DigitalIn infraAtas(PC_9, PullUp);
DigitalIn limitTengah(PB_10, PullUp);
DigitalIn limitBawah(PC_8, PullUp);
+/*deklarasi PING ultrasonic*/
+Ping pingAtas(PC_9);
/****************************************************/
/* Deklarasi Fungsi dan Procedure */
@@ -227,21 +231,6 @@
errorP = 0;
return (float)Kp*errorP;
}
-/*
-void init_speed (){
- if (speed>maxSpeed){
- speed = maxSpeed;
- }
- if (speed<minSpeed){
- speed = minSpeed;
- }
- if (speed2>maxSpeed){
- speed2 = maxSpeed;
- }
- if (speed2<minSpeed){
- speed2 = minSpeed;
- }
-}*/
void setCenter(){
// Fungsi untuk menentukan center dari robot
@@ -348,8 +337,8 @@
{
// Power Screw Up
//powerScrew.speed(pwmPowerUp);
- //ReloadOn = !ReloadOn;
- powerScrew.speed(pwmPowerUp);
+ ReloadOn = !ReloadOn;
+ //powerScrew.speed(pwmPowerUp);
break;
}
case (12) :
@@ -362,7 +351,7 @@
{
motorDpn.brake(1);
motorBlk.brake(1);
- if(isReload){
+ /* if(isReload){
powerScrew.speed(pwmPowerDown);
if(!limitBawah){
isReload = false;
@@ -374,12 +363,12 @@
}
else{
powerScrew.brake(1);
- }
+ }*/
}
} // End Switch
}
-/*void reloader()
+void reloader()
{
if(ReloadOn){
if(isReload){
@@ -392,17 +381,20 @@
else if(!limitTengah){
isReload = true;
}
- else if(!infraAtas){
- powerScrew.brake(1);
+ else if(jarak_ping > 4){
+ powerScrew.speed(pwmPowerUp);
+ }
+ else if(jarak_ping < 3) {
+ powerScrew.speed(pwmPowerDown);
}
else{
- powerScrew.speed(pwmPowerUp);
+ powerScrew.brake(1);
}
}
else{
powerScrew.brake(1);
}
-}*/
+}
void launcher()
@@ -478,12 +470,26 @@
joystick.setup();
pc.baud(115200);
wait_ms(1000);
+
+ // initializing encoder
setCenter();
wait_ms(500);
+
+ //initializing PING
+ pingAtas.Send();
+
pc.printf("ready....");
startMillis();
while(1)
- {
+ {
+ // interupsi pembacaan PING setiap 30 ms
+ if(millis() - previousMillis4 >= 30){
+ jarak_ping = pingAtas.Read_cm()/2;
+
+ pingAtas.Send();
+ previousMillis4 = millis();
+ }
+
// Interrupt Serial
joystick.idle();
if(joystick.readable())
@@ -496,7 +502,7 @@
case_joy = case_joystick();
aktuator();
launcher();
- //reloader();
+ reloader();
if ((millis()-previousMillis3 >= 425)&&(flag_Pneu)){
pneumatik = 1;
flag_Pneu = false;
