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...
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.
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...
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.
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).
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.
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)
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...
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.
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.
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...
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.
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.
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.
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)
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 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 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 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 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...
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.
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.
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...
Need help?
Do you have a question about the wCK series and is the answer not in the manual?
Questions and answers