Skip to content

Commit eee87aa

Browse files
committed
fixed and tested arm blocks
1 parent f48c2f1 commit eee87aa

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

camera.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,6 @@ def find_color(self, s_color):
332332
return [dist, angle]
333333

334334
def sleep(self, elapse):
335-
logging.debug("sleep: " + elapse)
335+
logging.debug("sleep: " + str(elapse))
336336
time.sleep(elapse)
337337

coderbot.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
PIN_RIGHT_FORWARD = 4
99
PIN_RIGHT_BACKWARD = 17 # NOT USED FOR SERVOS
1010
PIN_PUSHBUTTON = 18
11-
PIN_SERVO_3 = 9
11+
PIN_SERVO_3 = 9 # ARM PIN
1212
PIN_SERVO_4 = 10
1313

14-
PWM_FREQUENCY = 500 #Hz
15-
PWM_RANGE = 100 #0-100
14+
PWM_FREQUENCY = 50 #Hz
15+
PWM_RANGE = 2000 #100-200 duty cycle operating range for servos
1616

1717
def coderbot_callback(gpio, level, tick):
1818
return CoderBot.get_instance().callback(gpio, level, tick)
@@ -112,15 +112,20 @@ def _servo_motor(self, speed_left=100, speed_right=100, elapse=-1):
112112

113113
def _servo_motor_control(self, pin, speed):
114114
self._is_moving = True
115-
#speed = ((speed + 100) * 50 / 200) + 52
116-
speed = 50 + speed/2
115+
116+
# transform speed value from -100 to +100 range
117+
# to servo duty cycle range: 100 to 200
118+
speed = 150 + speed/2
117119
print "duty cycle: ", speed
118120
self.pi.set_PWM_range(pin, PWM_RANGE)
119121
self.pi.set_PWM_frequency(pin, PWM_FREQUENCY)
120122
self.pi.set_PWM_dutycycle(pin, speed)
121123

122124
def _servo_control(self, pin, angle):
123-
duty = ((angle + 90) * 100 / 180) + 25
125+
126+
# assuming angle range is 0 to 120
127+
# transform from angle range to servo duty cycle range (100 to 200)
128+
duty = angle + 90 # (90-210)
124129
self.pi.set_PWM_range(pin, PWM_RANGE)
125130
self.pi.set_PWM_frequency(pin, PWM_FREQUENCY)
126131
self.pi.set_PWM_dutycycle(pin, duty)

data/program_arm_test.data

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"dom_code": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"controls_repeat_ext\" id=\"97\" inline=\"true\" x=\"75\" y=\"76\"><value name=\"TIMES\"><block type=\"math_number\" id=\"98\"><field name=\"NUM\">4</field></block></value><statement name=\"DO\"><block type=\"coderbot_armRaise\" id=\"3\"><next><block type=\"coderbot_sleep\" id=\"22\" inline=\"false\"><value name=\"ELAPSE\"><block type=\"math_number\" id=\"23\"><field name=\"NUM\">1.0</field></block></value><next><block type=\"coderbot_armLower\" id=\"44\"><next><block type=\"coderbot_sleep\" id=\"66\" inline=\"false\"><value name=\"ELAPSE\"><block type=\"math_number\" id=\"67\"><field name=\"NUM\">1.0</field></block></value></block></next></block></next></block></next></block></statement></block></xml>", "code": "for count in range(4):\n get_prog_eng().check_end()\n get_bot().servo3(60)\n get_cam().sleep(1)\n get_bot().servo3(120)\n get_cam().sleep(1)\n", "name": "arm_test"}

static/js/blockly/blocks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -783,12 +783,12 @@ Blockly.Blocks['coderbot_armRaise'] = {
783783

784784
Blockly.JavaScript['coderbot_armRaise'] = function(block) {
785785
// Generate JavaScript for raising the arm
786-
return 'get_bot()..servo3(' + CODERBOT_ARM_ANGLE_RAISED + ');\n';
786+
return 'get_bot().servo3(' + CODERBOT_ARM_ANGLE_RAISED + ');\n';
787787
};
788788

789789
Blockly.Python['coderbot_armRaise'] = function(block) {
790790
// Generate Python code for raising the arm
791-
return 'get_bot()..servo3(' + CODERBOT_ARM_ANGLE_RAISED + ')\n';
791+
return 'get_bot().servo3(' + CODERBOT_ARM_ANGLE_RAISED + ')\n';
792792
};
793793

794794
Blockly.Blocks['coderbot_armLower'] = {

0 commit comments

Comments
 (0)