[HTML/TEXT] Controlling a servo motor

[HTML/TEXT] Controlling a servo motor

Postby admin » Wed Nov 04, 2015 4:49 pm

We will go through an example to control a Tower Pro SG92R micro servo motor on a web page by using a PHPoC Blue.

Image

PHPoC Blue diagram
Image

Source Codes
1. index.php
Code: Select all

<?php
 
include_once 
"/lib/sd_340.php";
 
define
("PWM_PERIOD", 20000); // 20000us (20ms)
define("WIDTH_MIN", 600);
define("WIDTH_MAX", 2450);
 
$flags 
= 0;
$angle = 0;
 
um_read
(0, 0, $flags, 4); // read flags (offset 0, 32bit integer)
um_read(0, 4, $angle, 4); // read angle (offset 4, 32bit integer)
 
if(!$flags)
{
    ht_pwm_setup(0, (WIDTH_MIN + WIDTH_MAX) / 2, PWM_PERIOD, "us");
 
    $flags 
|= 0x00000001; // set init flag
    um_write(0, 0, int2bin($flags, 4)); // write flags (offset 0, 32bit integer)
 
    $angle 
= 90;
    um_write(0, 4, int2bin($angle, 4)); // write angle (offset 4, 32bit integer)
}
 
if(($cw = _GET("cw")))
    $delta = -(int)$cw; // clock wise
else
if((
$ccw = _GET("ccw")))
    $delta = (int)$ccw; // counter clock wise
else
    $delta = 0;
    
if($delta)
{
    um_read(0, 4, $angle, 4); // read angle (offset 4, 32bit integer)
 
    $angle 
+= $delta;
 
    if
($angle > 180)
        $angle = 180;
 
    if
($angle < 0)
        $angle = 0;
 
    um_write
(0, 4, int2bin($angle, 4)); // write angle (offset 4, 32bit integer)
 
    $width 
= WIDTH_MIN + (int)round($angle / 180.0 * (WIDTH_MAX - WIDTH_MIN));
 
    ht_pwm_width
(0, $width, PWM_PERIOD);
}
 
?>
<html>
<head>
<title>PHPoC / <?echo system("uname -i")?></title>
<meta name="viewport" content="width=device-width, initial-scale=0.7">
<style> body { text-align: center; }</style>
</head>
<body>
 
<h2>
 
HT / Tower Pro SG92R Micro Servo<br>
 
<br>
 
<a href="index.php?cw=45">-45'</a> 
<a href="index.php?cw=15">-15'</a>
 
<?php printf("CW  %d'  CCW", $angle);?>
 
<a href="index.php?ccw=15">+15'</a> 
<a href="index.php?ccw=45">+45'</a> 
 
</h2>
 
</body>
</html>



Please download a PSP (PHPoC Support Package) of libraries and examples from PHPoC, and upload it in the PHPoC Blue.



Video
phpBB [video]
admin
Site Admin
 
Posts: 167
Joined: Mon Jan 20, 2014 4:40 pm

Return to Example

Who is online

Users browsing this forum: No registered users and 1 guest