Difference between revisions of "Lua interface"
(→Example program) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
There is a motor control API available. To import the library, run: | There is a motor control API available. To import the library, run: | ||
require("motor") | require("motor") | ||
+ | |||
+ | ===Example program=== | ||
+ | require("motor") | ||
+ | |||
+ | --[=[ Set motor #3 to full speed forward for | ||
+ | the duration of the loops, so that it has something | ||
+ | interesting to do. ]=] | ||
+ | motor.set_speed(3, 255) | ||
+ | |||
+ | -- Set the servo, which sits on channel 2, to be a servo | ||
+ | motor.set_type(2, 's') | ||
+ | |||
+ | -- Rotate the servo clockwise, from 0° to 180° | ||
+ | for v = 0, 180, 1 do | ||
+ | motor.set_angle(2, v) | ||
+ | netv.sleep(0.05) | ||
+ | end | ||
+ | |||
+ | -- Now rotate it counterclockwise, from 180° to 0° | ||
+ | for v = 180, 0, -1 do | ||
+ | motor.set_angle(2, v) | ||
+ | netv.sleep(0.05) | ||
+ | end | ||
+ | |||
+ | -- Now, spin the motor backwards for a few seconds | ||
+ | motor.set_speed(3, -255) | ||
+ | netv.sleep(2) | ||
+ | |||
+ | -- Reset everything to 0 | ||
+ | motor.set_angle(2, 180) | ||
+ | motor.set_speed(3, 0) | ||
===Digital I/O=== | ===Digital I/O=== |
Latest revision as of 09:42, 16 December 2011
The primary language used to develop for NeTV is Lua. This language was chosen because it's both easy to work with and is very fast.
Contents
[hide]Motor control library API
There is a motor control API available. To import the library, run:
require("motor")
Example program
require("motor") --[=[ Set motor #3 to full speed forward for the duration of the loops, so that it has something interesting to do. ]=] motor.set_speed(3, 255) -- Set the servo, which sits on channel 2, to be a servo motor.set_type(2, 's') -- Rotate the servo clockwise, from 0° to 180° for v = 0, 180, 1 do motor.set_angle(2, v) netv.sleep(0.05) end -- Now rotate it counterclockwise, from 180° to 0° for v = 180, 0, -1 do motor.set_angle(2, v) netv.sleep(0.05) end -- Now, spin the motor backwards for a few seconds motor.set_speed(3, -255) netv.sleep(2) -- Reset everything to 0 motor.set_angle(2, 180) motor.set_speed(3, 0)
Digital I/O
motor.set_digital(v) - Sets the digital output pins to the value v. All pins are set at the same time.
Motor control
motor.set_type(m, t) - Sets the type of motor m to the type t. To switch to a servo, specify "s" for t. To switch to a motor, specify "m" for t. Note that you can only set channels 1 and 2 to servo.
motor.set_speed(m, v) - Sets the current speed of motor m to the speed v. The speed is specified from -255 to 255.
motor.set_angle(m, a) - Sets the angle of motor m to a degrees. The angle must be between 0 and 180.
Analog input
motor.get_adc(a) - Gets the current value from ADC a. There are 8 ADCs numbered 0-7. The return value is from 0 - 255.
Miscellaneous functions
netv.sleep(t) - Sleep for t seconds. t' is a Lua Number, and so may be non-integer, e.g. 0.5.