RoboBuilder wCK series User Manual

RoboBuilder wCK series User Manual

Intelligent modular robot

Advertisement

Intelligent Modular Robot
wCK
series
User's Manual
Ver 1.07

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the wCK series and is the answer not in the manual?

Questions and answers

Summary of Contents for RoboBuilder wCK series

  • Page 1 Intelligent Modular Robot series User’s Manual Ver 1.07...
  • Page 2: Table Of Contents

    User’s Manual wCK series v1.07 TABLE OF CONTENTS 1. INTRODUCTION 1-1 Introduction 1-2 Model Listing 1-3 Main Specifications 1-4 Main Features 1-5 Control Scheme 1-6 Application 1-7 Part List 1-8 Mechanical Specifications 1-9 Electrical & Control Specifications 2. USING wCK MODULE...
  • Page 3: Introduction

    1-1 Introduction RoboBuilder’s wCK module is an intelligent robotic module with which users can build creative robots of various shapes and easily operate and control robots. It is the first block type robotic module in the world that has a joint insertion assembly structure. This quick and simple joint assembly scheme enables users to simply plug a plastic joint part into wCK modules to mechanically link two different wCK modules, which dramatically helps reduce building time.
  • Page 4: Model Listing

    User’s Manual wCK series v1.07 1-2 Model Listing [Figure 1-2a] Model Name Scheme The series name “ wCK” comes from the sound “Wingchick” that the actuator module makes when in motion. [Figure 1-2b] Model Listings 4/71...
  • Page 5: Main Specifications

    User’s Manual wCK series v1.07 1-3 Main Specifications Communication Multi drop Full Duplex UART serial communication Baud Rate 4,800bps ~ 921,600bps(8 levels) Extension Max 254 modules per channel(ID 0~253) Operating Voltage 6VDC ~ 10VDC(7.4VDC~8.4VDC recommended) Speed Max No Load Speed 0.15 sec/60˚(wCK-1108 under recommended voltage) Stall Torque Max 13kg·cm(wCK-1413 under recommended voltage)
  • Page 6 User’s Manual wCK series v1.07 Error Compensation Algorithm Special algorithm for position error compensation realized ±0.8˚ level of error with low resolution potentiometer feedback. Position Control, Speed Control, Torque Control Three different control modes help users apply wCK module to systems with various control requirements.
  • Page 7: Control Scheme

    A separate voltage translation circuit may be required when using a MCU or a PC to control a wCK module. RoboBuilder provides this separately as a voltage translator circuit board (refer to Appendix A-2 for detail).
  • Page 8: Application

    User’s Manual wCK series v1.07 [Figure 1-5b ] Using general-purpose MCU [Figure 1-5c ] Direct PC Control without external controller 1-6 Application The wCK module can be applied to various types of articulated robot platforms for purposes such as R&D, toys and entertainment, game and amusement, commercial, and educational purposes.
  • Page 9 User’s Manual wCK series v1.07 [Figure 1-6a] Application(Various Articulated Robots) 9/71...
  • Page 10: Part List

    User’s Manual wCK series v1.07 1-7 Part List [Figure 1-7a] Part List Part List 도 Part Name 1 EA wCK module Intelligent wCK robot module 1 EA Round Joint Transmit force of wCK module to external object 1 EA wCK Cable (4wire twisted)
  • Page 11: Mechanical Specifications

    User’s Manual wCK series v1.07 1-8 Mechanical Specifications Size 51.6 mm 27.1 mm 36.4 mm Weight 45g(wCK-1108), 49g(wCK-1111,1413) Stall Torque Max 13kg·cm(wCK-1413 under recommended input voltage) Mechanical Connection Method Quick & Simple Joint Insert Assembly Mechanical Connection Point 3 Junction Points(pentagon-shaped Junction, Axis Junction, Body Junction)
  • Page 12 User’s Manual wCK series v1.07 [Figure 1-8b] Dimension [Figure1-8c] Blow Up Picture 12/71...
  • Page 13: Electrical & Control Specifications

    User’s Manual wCK series v1.07 1-9 Electrical & Control Specifications Communication Multi drop Full Duplex UART serial communication Baud Rate 4,800bps ~ 921,600bps(8 levels) Extension Max 254 modules per channel(ID 0~253) DC motor type Precious metal brush DC motor Operation Voltage 6VDC ~ 10VDC(7.4VDC~8.4VDC recommended)
  • Page 14 User’s Manual wCK series v1.07 [Figure 2-1a] Joint Connection Scheme A variety of mechanical structures are available using the joints shown below in [Figure 2-1b]. When connecting a joint with the wCK module the junction is held tight even without screwing bolts, which is very effective and helpful for users to invent creative structures in designing a new robotic system.
  • Page 15 User’s Manual wCK series v1.07 Joints are grouped as below according to different points of connecting junction. Junction Point JOINT Pentagon-shaped Junction Axis Junction JOINT 2 Pentagon-shaped Junction Body Junction JOINT 3 Axis Junction Body Junction JOINT 1 JOINT 6...
  • Page 16 User’s Manual wCK series v1.07 [Figure 2-1d] Joint Type for Connection Styles JOINT 1 JOINT 2 JOINT 3 16/71...
  • Page 17 User’s Manual wCK series v1.07 JOINT 4 JOINT 5 JOINT 6 17/71...
  • Page 18 User’s Manual wCK series v1.07 JOINT 7 JOINT 8 JOINT 9 18/71...
  • Page 19 User’s Manual wCK series v1.07 JOINT 10 JOINT 11 JOINT 12 19/71...
  • Page 20: Electrical Connection

    User’s Manual wCK series v1.07 2-2 Electrical Connection Wiring Depending on the controller type, the electrical wiring structure is different as shown in below [Figure 2-1a] and [Figure 2-2b]. When using a MICOM it’s connected directly to When using a PC, it is connected TXD, RXD lines.
  • Page 21 User’s Manual wCK series v1.07 Connectors The wCK module has two built-in connectors on both sides of the body. The two connectors are electrically connected in parallel so the module is ready to communicate if either one of the two connectors are plugged. The other one is used to extend to another wCK module.
  • Page 22: Communication

    User’s Manual wCK series v1.07 2-3 Communication Protocol The wCK module adopted a dedicated communication protocol named “Multi drop Full Duplex UART two-way serial communication protocol”. Basically the communication is carried out in a repeated cycle of that Controller sends a Command Packet to the wCK module and then the wCK module sends back a Response Packet in return.
  • Page 23 User’s Manual wCK series v1.07 Summary of Protocol Commands Below is the summary of protocol commands required to control a wCK module. For detailed explanation of protocol commands, please refer to appendix [A-1Communication Protocol]. (1) Position Move Move Position Command...
  • Page 24 User’s Manual wCK series v1.07 Reset Time after Power Supply wCK module turns into “Stand By” status after 65msec during which no command is recognized. Communication Time Delay Command transmission through RS-232 inevitably generates a time delay if multiple wCK modules are connected together. So each wCK module receives commands at different time.
  • Page 25: Software

    User’s Manual wCK series v1.07 Baud Rate 4800 9600 38400 57600 115200 Command Position Move 13159 7083 2517 1354 1180 Position Read 13159 7083 2517 1354 1180 Passive wCK 13159 7083 2517 1354 1180 Break wCK 13159 7083 2517 1354...
  • Page 26 User’s Manual wCK series v1.07 [Figure 2-4a] wCK Programmer Screen Layout [Figure 2-4b] Setting & Programming Area 26/71...
  • Page 27: Control Functions

    User’s Manual wCK series v1.07 3 CONTROL FUNCTIONS 3-1 Position Control The Position Control of wCK module is achieved by users commanding a wCK module to go to a specific position(target position in the unit of control angle) then the wCK module moves to that specific position in response to that command. The actual physical displacement is different from the control angle depending on the control resolution in which wCK is operating.
  • Page 28 User’s Manual wCK series v1.07 Below are the response characteristics graphs that show the different response characteristics of wCK module when each method of P gain Control, PD gain Control, and PID gain Control is applied. • P gain Control...
  • Page 29 User’s Manual wCK series v1.07 • PD gain Control • PID gain Control 29/71...
  • Page 30: Synchronized Position Control

    User’s Manual wCK series v1.07 3-2 Synchronized Position Control Synchronized Position Control function is used to synchronize and control multiple wCK modules that are connected electrically on a same channel. A maximum of 31 wCK modules can be connected and controlled simultaneously so this function is very useful in motion controlling a multi-axis robotic systems.
  • Page 31: Break Mode

    User’s Manual wCK series v1.07 3-9 Break Mode Break Mode stops the motion of a wCK module and thus helps hold a system’s mechanical structure still without consuming electrical power by using dynamic break effect. Once break mode applied, all wCK modules connected on a single channel turn into Break Mode.
  • Page 32: Self-Running Motion

    User’s Manual wCK series v1.07 3-11 Self-running Motion wCK module’s self-running motion enables users to build a simple and compact stand alone system without using a separate external controller. The programming logics used in the “wCK programmer” when creating a self-running motion is shown in the table below.
  • Page 33: Initialization Of Wck Id And Baud Rate

    User’s Manual wCK series v1.07 3-12 Initialization of wCK ID and Baud rate While configuring or controlling a wCK module, the user may encounter a problem or a situation when they have to initialize the ID and baud rate of the wCK module, either by mistake or because of a product fault. Remove the cover of external I/O port first and use tweezers to apply electric current between point A and point B for more than 10 seconds, then the ID and baud rate will be initialized.(default initial values, ID=0, Baud rate=115,200)
  • Page 34: Appendix

    User’s Manual wCK series v1.07 A. APPENDIX A-1 Communication Protocol A-1-1 8 bit Command (1) Position Move “Position Move” command makes wCK module return the values of current load and current position to controller and then move to a specified target position.
  • Page 35 User’s Manual wCK series v1.07 (2) Synchronized Position Move “Synchronized Position Move” command makes multiple wCK modules move to a specified target position. Five torque levels are selectable for the movement. ▶ Command Packet 1byte 1byte 1byte 1byte 1byte 1byte...
  • Page 36 User’s Manual wCK series v1.07 ▶ Command Packet 1byte 1byte 1byte 1byte Header Data1 Data2 Checksum Header = 0xFF Data1 Mode(=5) ※ Mode: 5, ID : 0~30 Data2 = Arbitrary Value Checksum = (Data1 XOR Data2) AND 0x7F ▶ Response Packet...
  • Page 37 User’s Manual wCK series v1.07 Data1 Mode(=6) ※ Mode : 6, ID : 0~30 Data2 Mode(=1) Arbitrary Value Mode ※ Checksum = (Data1 XOR Data2) AND 0x7F ▶ Response Packet 1byte 1byte Data2 Position ※ Position : 0~254 e.g.)Command a wCK module with ID 0 to turn into Passive wCK mode...
  • Page 38 User’s Manual wCK series v1.07 ※ Mode: 6, ID : 0~30 Data2 회전방향 속도 ※ Direction : 3(CCW), 4(CW) ※ Speed : 0(stop), 1(min)~15(max) Checksum = (Data1 XOR Data2) AND 0x7F ▶ Response Packet 1byte 1byte No of Rotation Position ※...
  • Page 39 User’s Manual wCK series v1.07 Mode : 6 ※ Data2 Mode(=2) Arbitrary Value Mode : 2 ※ Checksum = (Data1 XOR Data2) AND 0x7F ▶ Response Packet 1byte 1byte Position ※ ID : 0~30, Position : 0~254 e.g.) Command a wCK module with ID 0 to turn into Break mode...
  • Page 40 User’s Manual wCK series v1.07 ※ Mode : 7, ID : 0~30 Data2 = 0x08 Data3 = 0(921600bps), 1(460800bps), 3(230400bps), 7(115200bps), 15(57600bps), 23(38400bps), 95(9600bps), 191(4800bps), Data4 = Data3 Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet...
  • Page 41 User’s Manual wCK series v1.07 Data3 = new P-gain (1~254 recommended) Data4 = new D-gain (0~254 recommended) Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet 1byte 1byte new P gain new D gain P gain : 1~254, new D gain : 0~254 ※...
  • Page 42 User’s Manual wCK series v1.07 ▶ Response Packet 1byte 1byte P gain D gain ※ P gain : 1~254, D gain : 0~254 e.g.) Command a wCK module with ID 0 to read its P gain and D gain. Command Packet...
  • Page 43 User’s Manual wCK series v1.07 e.g.) Set the I gain of a wCK module with ID 0 to 100. Command Packet 1byte 1byte 1byte 1byte 1byte 1byte 0xFF 0xE0 0x15 0x64 0x64 0x75 Response Packet 1byte 1byte 0x64 0x64 (11) I gain Read “I gain Read”...
  • Page 44 User’s Manual wCK series v1.07 Response Packet 1byte 1byte I-gain I-gain (12) Runtime P, D gain Set “Runtime P, D gain Set” command set the runtime P gain and D gain of a wCK module. When power cycled, the gains return to their original values.
  • Page 45 User’s Manual wCK series v1.07 1byte 1byte 0x64 0x64 (13) Runtime I gain Set “Runtime I gain Set” command set the runtime I gain of a wCK module. When power cycled, the gain returns to its original value. ▶ Command Packet...
  • Page 46 User’s Manual wCK series v1.07 (14) ID Set “ID Set” command sets the ID number of a wCK module. ▶ Command Packet 1byte 1byte 1byte 1byte 1byte 1byte Header Data1 Data2 Data3 Data4 Checksum Header = 0xFF Data1 Mode(=7) Mode : 7, ID : 0~30 ※...
  • Page 47 User’s Manual wCK series v1.07 ▶ Command Packet 1byte 1byte 1byte 1byte 1byte 1byte Header Data1 Data2 Data3 Data4 Checksum Header = 0xFF Data1 Mode(=7) ※ Mode : 7, ID : 0~30 Data2 = 0x0D Data3 = Speed(0~30) Data4 = Accel(20~100), Accel = acceleration range Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶...
  • Page 48 User’s Manual wCK series v1.07 Header = 0xFF Data1 Mode(=7) Mode : 7, ID : 0~30 ※ Data2 = 0x0E Data3 = Arbitrary Value Data4 = Arbitrary Value Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet...
  • Page 49 User’s Manual wCK series v1.07 Mode : 7, ID : 0~30 ※ Data2 = 0x17 Data3 = Speed(0~30) Data4 = Accel(20~100) Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet None e.g.) Set the runtime speed and acceleration range of a wCK module with ID 0 (Speed = 30, Accel = 100).
  • Page 50 User’s Manual wCK series v1.07 1000 1100 1200 1800 Data4 = Data3 Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet 1byte 1byte new overload new overload ※ new overload : 33~199 e.g.) Set the over load of a wCK module with ID 0 to 104(actual current is 1000mA).
  • Page 51 User’s Manual wCK series v1.07 Header = 0xFF Data1 Mode(=7) Mode : 7, ID : 0~30 ※ Data2 = 0x10 Data3 = Arbitrary Value Data4 = Data3 Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet...
  • Page 52 User’s Manual wCK series v1.07 Data2 = 0x11 Data3 = new Lower Boundary(0~254) Data4 = new Upper Boundary(0~254) Checksum = (Data1 XOR Data2 XOR Data3 XOR Data4) AND 0x7F ▶ Response Packet 1byte 1byte New Lower New Upper Boundary Boundary ※...
  • Page 53 User’s Manual wCK series v1.07 ▶ Response Packet 1byte 1byte Lower Bound Upper Bound new Upper Boundary : 0~254, new Lower Boundary : 0~254 ※ e.g.) Comand a wCK module with ID 0 to read its boundary values. Command Packet...
  • Page 54 User’s Manual wCK series v1.07 ▶ Response Packet 1byte 1byte D/O Value D/O Value ※ D/O Value = Data3 e.g.) Command a wCK module with ID 0 to write the D/O values (CH1 = 1, CH2 = 1). Command Packet...
  • Page 55 User’s Manual wCK series v1.07 ※ D/O Value structure Arbitrary Value e.g.) Command a wCK module with ID 0 to read its I/O data. Command Packet 1byte 1byte 1byte 1byte 1byte 1byte 0xFF 0xE0 0x65 0x00 0x00 0x04 Response Packet...
  • Page 56 User’s Manual wCK series v1.07 1byte 1byte Motion Count Motion Count Motion Count : 0 ~ 8 e.g.) Set a self-running motion to a wCK module with ID 0 (shuttle between position 82 and position 172). Command Packet 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte...
  • Page 57 User’s Manual wCK series v1.07 e.g.) Command a wCK module with ID 0 to read the line number of instructions. Command Packet 1byte 1byte 1byte 1byte 1byte 1byte 0xFF 0xE0 0x97 0x00 0x00 0x77 Response Packet 1byte 1byte Motion Count Motion Count...
  • Page 58 User’s Manual wCK series v1.07 ▶ Response Packet 1byte 1byte Position(H3) Position(L7) ※ Position(H3) + Position(L7) : 0~1023 e.g.) Command a wCK module with ID 0 to move to position 1000 at torque 0. Command Packet 1byte 1byte 1byte 1byte...
  • Page 59: Communication Voltage Translation Circuit Board

    User’s Manual wCK series v1.07 e.g.) Command a wCK module with ID 0 to read its position. Command Packet 1byte 1byte 1byte 1byte 1byte 1byte 0xFF 0xE0 0xC9 0x00 0x00 0x29 Response Packet 1byte 1byte Position(H3) Position(L7) A-2 Communication Voltage Translation Circuit Board An RS-232 communication voltage translation circuit board is used to adjust the signal level between wCK module and a controller.
  • Page 60: Baud Rate Setting For Independent Controller

    User’s Manual wCK series v1.07 Battery_pack POWER HEADER8B HEADER8B RX_of_PC Power_supply TX_of_PC MAX232 HEADER8B HEADER8B RX_of_PC TX_of_PC HEADER8B VOUT LP2985 10uF 10uF [Figure A-2b] Circuit Diagram of Communication Board A-3 Baud rate setting for Independent Controller In case of using a MCU to control a wCK module, it’s recommended that a user refer to the following information in tables to minimize communication error.
  • Page 61 User’s Manual wCK series v1.07 ●MCS51 family(using Timer 1 , Mode 1) Clock[Mhz] SMOD Baud Rate[bps] Error[%] 7.3728 4800 7.3728 4800 7.3728 9600 7.3728 9600 7.3728 38400 11.0592 4800 11.0592 4800 11.0592 9600 11.0592 9600 11.0592 57600 14.7456 4800 14.7456 4800 14.7456...
  • Page 62 User’s Manual wCK series v1.07 14.7456 8007 115200 14.7456 8003 230400 ●PIC family Clock[Mhz] BRGH SPBRG Baud Rate[bps] Error[%] 3.6864 4800 3.6864 9600 3.6864 57600 7.3728 4800 7.3728 9600 7.3728 38400 7.3728 57600 7.3728 115200 11.0592 4800 11.0592 9600 11.0592 57600 14.7456...
  • Page 63: Application Example

    User’s Manual wCK series v1.07 A-4 Application Example The following is an example C programs required and helpful for controlling a wCK module. Functions relating to serial communication may vary depending upon the type of MPU so add accordingly required functions for your MPU.
  • Page 64 User’s Manual wCK series v1.07 void main(void) char i, old_position; Initialize(); // Initialize peripheral devices(prepare for serial port) id = 0; old_position = ActDown(id); // Read the initial position of a wCK with ID 0 while(1) { now_position = ActDown(id); // Read current position // If position value decreased, rotate to ccw direction for 1 second and turn to passive mode for 1 second if(now_position<old_position) {...
  • Page 65 User’s Manual wCK series v1.07 /******************************************************************************/ /* Function that sends Set Command Packet(6 Byte) to wCK module /* Input : Data1, Data2, Data3, Data4 /* Output : None /******************************************************************************/ void SendSetCommand(char Data1, char Data2, char Data3, char Data4) char CheckSum;...
  • Page 66 User’s Manual wCK series v1.07 GetByte(TIME_OUT1); Position = GetByte(TIME_OUT1); return Position; /******************************************************************************/ /* Function that sends Passive wCK Command to wCK module /* Input : ServoID /* Output : Position /******************************************************************************/ char ActDown(char ServoID) char Position; SendOperCommand(0xc0|ServoID, 0x10); GetByte(TIME_OUT1); Position = GetByte(TIME_OUT1);...
  • Page 67 User’s Manual wCK series v1.07 SendOperCommand((6<<5)|ServoID, (ROTATE_CCW<<4)|SpeedLevel); else if(RotationDir==ROTATE_CW) { SendOperCommand((6<<5)|ServoID, (ROTATE_CW<<4)|SpeedLevel); RotNum = GetByte(TIME_OUT1); GetByte(TIME_OUT1); return RotNum; /*****************************************************************************/ /* Function that sends Synchronized Position Move Command to wCK module /* Input : LastID, SpeedLevel, *TargetArray, Index /* Return : None...
  • Page 68 User’s Manual wCK series v1.07 GetByte(TIME_OUT2); if(GetByte(TIME_OUT2)==NewBaud) return NewBaud; return 0xff; /*********************************************************************/ /* Function that sends Gain Set Command to wCK module /* Input : ServoID, *NewPgain, *NewDgain /* Return : 1 if succeed, 0 if fail /********************************************************************/ char GainSet(char ServoID, char *NewPgain, char *NewDgain) char Data1,Data2;...
  • Page 69 User’s Manual wCK series v1.07 *Dgain = GetByte(TIME_OUT1); if((*Pgain>0) && (*Pgain<51) && (*Dgain<101)) return 1; return 0; /**********************************************************************************/ /* Function that sends Over Load Set Command to wCK module /* Input : ServoID, NewOverCT /* Return : New Overcurrent Threshold if succeed, 0xff if fail...
  • Page 70: Default Parameter Settings

    User’s Manual wCK series v1.07 SendSetCommand((7<<5)|ServoID, 0x11, *NewLBound, *NewUBound); Data1 = GetByte(TIME_OUT2); Data2 = GetByte(TIME_OUT2); if((Data1==*NewLBound) && (Data2==*NewUBound)) return 1; return 0; /**************************************************************************/ /* Function that sends Boundary Read Command to wCK module /* Input : ServoID, *NewLBound, *NewUBound /* Return : 1 if succeed, 0 if fail...
  • Page 71 ■ wCK protocol definition Command Packet Response Packet Command byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte 9 byte 10 byte byte byte 1 byte 2 byte 1 … byte 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 header...

Table of Contents