Thumbnail

Lewansoul Servo

by LewanSoul

Control LewanSoul digital smart servos from the EZ-B UART or PC COM Serial Port

How to add the Lewansoul Servo robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Servo category tab.
  5. Press the Lewansoul Servo icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Lewansoul Servo robot skill.


How to use the Lewansoul Servo robot skill

Control the LewanSoul Digital smart Servos (i.e., LX-16A) with ARC. The servos must be powered appropriately and connected to the EZ-B v4 or IoTiny with the respective port. Visit the Config menu of this plugin to view the port configuration. This plugin will only operate on EZB Index #0.

Demonstrated with IoTiny using Software UART

Details

ARC's Virtual Ports (V1..V99) can be assigned to the LewanSoul servos.

  • This plugin requires the RX signal wire of the servo to be connected to the TX of the selected UART or digital port (if Software UART is selected) using a Dynamixel servo Cable provided by one of our hardware partners.

  • Hardware UART is available on the EZ-B v4 only and is recommended if using an EZ-B v4 with a Dynamixel servo Cable. View the EZ-B v4 datasheet to identify the UART ports (0, 1, or 2).

  • Software UART is available on both the EZ-B v4 and IoTiny. We only recommend using software UART on IoTiny and hardware UART on EZ-B v4.

  • The configuration menu also provides an option to select the Virtual Ports, which correspond with the ID's of the UBTech servos. If the LewanSoul servo ID #0 is connected, select V0. #1 = V1, #2 = V2, etc..

  • Default baudrate of LewanSoul servos is 115,200

Specify servo Port By servo ID

The servos are addressable, meaning they each have a unique address ID. The address ID is related to ARC's Vx servo (virtual servo). This means servo ID #1 is V1 in ARC. servo ID #5 is V5 in ARC. Etc. Specify the Vx ports to bind to using the configuration screen of this plugin. ID #1 (V1) is selected in the example image below. Any servo commands sent to V1 will move LewanSoul servo ID #1. You can choose as many Vx ports as necessary to bind in this plugin.

User-inserted image

Use USB/TTL Debug Board This option in the configuration is if you are using the optional TTL/USB debug board, which changes the communication to the servo. With this unchecked, the packet length includes the sent packet because the Rx & Tx are crossed. When checked (using the ttl board), the Rx & Tx will only include the return values. Keep this unchecked if you are not using a USB/TTL Debug Board.

Continuous Rotation (Motor) Mode

The servos can be configured for Continuous Rotation (i.e., Motor Mode) using the EZ-Script ControlCommand()...

ControlCommand("LewanSoul Servo", SetToContinuousMode, v1)

You can change the port (v1 in the above example) to whatever port you wish to be in continuous rotation mode. Once you do that, the servos will respond as regular, continuous rotation servos, where position 90 stops, 180 is fast in one direction, and 1 is fast in the other. The values further from 90 in either direction change the speed. This allows these servos to be used with the Continuous Rotation Movement Panel.

Servo Mode

If you switched the servo into Continuous rotation mode, you can use the ControlCommand() to change back to servo mode. This can be done with the following command...

ControlCommand("LewanSoul Servo", SetToServoMode, v1)

Reading servo Positions

If the servo is connected to the RX and TX of the selected hardware UART, the servo position can be read. This feature is available in both EZ-Script and Auto Position control. In EZ-Script, the GetServoRealtime() function will query the specified servo. Otherwise, the servos can be queried in the Auto Position config screen using the Realtime query button in the frame editor.

Servo Speed

The servo speed can be adjusted using any scripting servo Speed command or in any robot skill servo selection Advanced settings option. Check the servo section of your desired ARC scripting language in the support section for the servo Speed syntax. The value of the servo speed is between 0 and 30,000 in milliseconds. Setting the servo speed to 1000 will take 1 second to transition to the new position. Selecting the servo speed to 10,000 will take 10 seconds to transition to the new position.


ARC Pro

Upgrade to ARC Pro

Subscribe to ARC Pro, and your robot will become a canvas for your imagination, limited only by your creativity.

PRO
Synthiam
#41   — Edited

You must use the beta with the latest plugin update. Also, this update hasn’t been fully tested, as discussed in the other thread. Can you tell me if this is an existing project you’re loading? What causes the error?

User-inserted image

#42  

I just updated to the latest Beta, and can confirm the problem... I cannot safe the LewanSoul servo control, it gives me the same error message!!

I think it has something to do with the new Design GUI? It worked with the Beta Version that did not have the ne GUI...:)

Netherlands
#43  

the normal and the beta software have the same problem the GUI good be the problem .

Netherlands
#44  

DJ  i am working on a LOBOT Alienbot i like to use the ez brain to control this robot and play end test how it works en to day i instal the new lewansol software and nothing works anymore.

User-inserted image

#45  

I think it will be easy to fix for @DJSures you will have your servos up and running very soon!!:)

PRO
Synthiam
#46  

Try the latest version - it was just updated

#47  

Still not working, but the error message changed...

Version: 2019.06.25.00

System.ArgumentException: Der PortName darf nicht leer sein. Parametername: PortName bei System.IO.Ports.SerialPort.set_PortName(String value) bei LewanSoul_Servos.FormMain.initUART() in C:\My Documents\SVN\Developer - Windows\ARC skill plugins\Behavior_Control_LewanSoul_Servos\Kondo KRS Servo\FormMain.cs:Zeile 92. bei LewanSoul_Servos.FormMain.SetConfiguration(PluginV1 cf) in C:\My Documents\SVN\Developer - Windows\ARC skill plugins\Behavior_Control_LewanSoul_Servos\Kondo KRS Servo\FormMain.cs:Zeile 63. bei LewanSoul_Servos.FormMain.ucConfigurationButton1_Click(Object sender, EventArgs e) in C:\My Documents\SVN\Developer - Windows\ARC skill plugins\Behavior_Control_LewanSoul_Servos\Kondo KRS Servo\FormMain.cs:Zeile 207. bei System.Windows.Forms.Control.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.ButtonBase.WndProc(Message& m) bei System.Windows.Forms.Button.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Netherlands
#48  

same error i update all the parts.

Version: 2019.06.25.00

System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld. bij LewanSoul_Servos.FormConfig.setConfigurationValuesFromUser() in C:\My Documents\SVN\Developer - Windows\ARC skill plugins\Behavior_Control_LewanSoul_Servos\Kondo KRS Servo\FormConfig.cs:regel 90 bij LewanSoul_Servos.FormConfig.btnSave_Click(Object sender, EventArgs e) in C:\My Documents\SVN\Developer - Windows\ARC skill plugins\Behavior_Control_LewanSoul_Servos\Kondo KRS Servo\FormConfig.cs:regel 95 bij System.Windows.Forms.Control.OnClick(EventArgs e) bij System.Windows.Forms.Button.OnClick(EventArgs e) bij System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) bij System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bij System.Windows.Forms.Control.WndProc(Message& m) bij System.Windows.Forms.ButtonBase.WndProc(Message& m) bij System.Windows.Forms.Button.WndProc(Message& m) bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)