Skip to content

Instantly share code, notes, and snippets.

@Pygmalion69
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Pygmalion69/7356f28100b91d9a9d46 to your computer and use it in GitHub Desktop.
Save Pygmalion69/7356f28100b91d9a9d46 to your computer and use it in GitHub Desktop.
Pi Rover: send POST data to Python script, http://goo.gl/tRcYrB
<?php
/* Pi Rover: Send POST data to Python script */
/* http://goo.gl/tRcYrB */
const MINIMAL_SPEED = 65;
const DELTA_SPEED = 75;
const STOP = 0;
const FORWARD = 1;
const BACKWARD = 2;
const FORWARD_LEFT = 3;
const FORWARD_RIGHT = 4;
const BACKWARD_LEFT = 5;
const BACKWARD_RIGHT = 6;
const ROTATE_LEFT = 7;
const ROTATE_RIGHT = 8;
const SPEED_LEFT = 9;
const SPEED_RIGHT = 10;
$send = '/home/helfrich/send.py';
error_reporting(E_ALL);
//header('Content-type: application/json');
//echo json_encode($_POST);
$command = $_POST['command'];
$speed = $_POST['data'];
echo $command;
switch ($command) {
case STOP:
exec($send . " 194 0 >/dev/null &");
exec($send . " 202 0 >/dev/null &");
break;
case FORWARD:
exec($send . " 194 " . $speed . " >/dev/null &");
exec($send . " 202 " . $speed . " >/dev/null &");
break;
case BACKWARD:
exec($send . " 193 " . $speed . " >/dev/null &");
exec($send . " 201 " . $speed . " >/dev/null &");
break;
case FORWARD_LEFT:
$speed = rotation_speed($speed);
$speed_right = $speed;
$speed_left = $speed - DELTA_SPEED;
if ($speed_left < 0) {
$speed_left = 0;
}
//print $speed_right . PHP_EOL;
//print $speed_left . PHP_EOL;
exec($send . " 194 " . $speed_right . " >/dev/null &");
exec($send . " 202 " . $speed_left . " >/dev/null &");
break;
case FORWARD_RIGHT:
$speed = rotation_speed($speed);
$speed_right = $speed - DELTA_SPEED;
if ($speed_right < 0) {
$speed_right = 0;
}
$speed_left = $speed;
exec($send . " 194 " . $speed_right . " >/dev/null &");
exec($send . " 202 " . $speed_left . " >/dev/null &");
break;
case BACKWARD_LEFT:
$speed = rotation_speed($speed);
$speed_right = $speed;
$speed_left = $speed - DELTA_SPEED;
if ($speed_left < 0) {
$speed_left = 0;
}
exec($send . " 193 " . $speed_right . " >/dev/null &");
exec($send . " 201 " . $speed_left . " >/dev/null &");
break;
case BACKWARD_RIGHT:
$speed = rotation_speed($speed);
$speed_right = $speed - DELTA_SPEED;
if ($speed_right < 0) {
$speed_right = 0;
}
$speed_left = $speed;
exec($send . " 193 " . $speed_right . " >/dev/null &");
exec($send . " 201 " . $speed_left . " >/dev/null &");
break;
case ROTATE_LEFT:
$speed = rotation_speed($speed);
exec($send . " 194 " . $speed . " >/dev/null &"); // right
exec($send . " 201 " . $speed . " >/dev/null &"); // left backwards
break;
case ROTATE_RIGHT:
$speed = rotation_speed($speed);
exec($send . " 193 " . $speed . " >/dev/null &"); // right backwards
exec($send . " 202 " . $speed . " >/dev/null &"); // left
break;
case SPEED_LEFT:
if ($speed > 0) {
exec($send . " 202 " . $speed . " >/dev/null &");
} else {
$speed = - $speed;
exec($send . " 201 " . $speed . " >/dev/null &");
}
break;
case SPEED_RIGHT:
if ($speed > 0) {
exec($send . " 194 " . $speed . " >/dev/null &");
} else {
$speed = - $speed;
exec($send . " 193 " . $speed . " >/dev/null &");
}
break;
}
function rotation_speed($speed) {
$speed = $speed + 10;
if ($speed > 100) {
$speed = 100;
}
return $speed;
}
function stop() {
global $send;
exec($send . " 194 0 >/dev/null &");
exec($send . " 202 0 >/dev/null &");
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment