OverviewFilesCommitsIssuesDocsReleasesPeers

cthuloid / LightArm / readme

53 lines · text ref:
An ethernet-enabled LED spotlight robot with Dynamixel servos and 3D printed parts.

The controller for this robot listens for TCP/IP connections on port 1337, supports multiple connections, and speaks a human-readable protocol with instructive error messages. It runs on an Arduino Mega and communicates with Dynamixel servos via USART.

Blender is used as a modeling and simulation environment. The robot can be animated or controlled in real-time. To do this, you must put the IP address of the robot in the model name, run the robot_panel.py script, and then turn Animation mode.

Controlling the robot is as simple as telneting to it. IP properties are settable and stored in EEPROM. Mac address is assigned based on the IP address. DHCP is not supported only because of the difficulties of not using static IPs.

In this repo:
android - a simple android program to control movement of two LightArms
blender - Blender models and python integration for controlling LightArms
python - useful standalone scripts
LED MOSFET board.fzz - a schematic of the LED driver

(firmware is located in /Arduino)

Components:
- 2 Dynamixel servos
- 100 Watt LED, heatsink, and fan
- custom LED driver
- Arduino Mega and ethernet module
- 12 Volt power supply (Wattage?)
- step-up power converter (to 33 Volts)

Getting Started:
- telnet to the lightarm on port 1337. Default IPv4 address is 10.0.2.255; see /Arduino/LightArm/LightArm.ino. There is no greeting upon connection, due to the nature of the Arduino ethernet library. Once connected, type the following commands and hit enter after each one.
- r
- p <1-5>
- pwm <0-65535>

Commands:
plevel - see or change the amount of text sent in response to a command
pwm - change LED brightness
v - check first servo voltage
r - report servo positions
s - change servo positions
p - choose preset position of servos
speed - see or change servo speed
relax - relax servos so they can be manually positioned
torq - un-relax some or all servos
circle - perform a circle in the plane perpendicular to neutral
id - change an internal servo ID
ip - change static IP address
gateway - change gateway address
port - change listening port
restart - restart network module to use new settings
clear - clear saved settings (just network settings for now)

TODO:
- modify ethernet library to greet client upon connection
- support DHCP and figure out how to identify individual robots
- add option for network security (so a person cannot just telnet into the robot)