Servo click. PID: MIKROE 3133 Weight: 32 g

Similar documents
RGB Driver click. PID: MIKROE 3078 Weight: 28 g

LED Driver 5 click. PID: MIKROE 3297 Weight: 25 g

Brushless 5 click. PID: MIKROE 3032 Weight: 25 g

Microwave click PID: MIKROE Weight: 30 g

LED Driver 4 click. PID: MIKROE 3037 Weight: 25 g

Relay 3 Click. PID: MIKROE 3357 Weight: 42 g

AC Current click PID: MIKROE Weight: 27 g

EMG click PID: MIKROE-2621

GNSS 5 click PID: MIKROE Weight: 30 g

GNSS 5 click PID: MIKROE-2670

GSM/GNSS click PID: MIKROE Weight: 33 g. Condition: New product

I 2 C RedBot & DC Motor Servo Motor Control

ZKit-51-RD2, 8051 Development Kit

Arduino Microcontroller Processing for Everyone!: Third Edition / Steven F. Barrett

Ocean Controls KT-5221 Modbus IO Module

MINI-32. development board for PIC32MZ MINI ARM. PIC32 development board fitted in a DIP40 form factor, containing a powerful microcontroller.

3.3V regulator. JA H-bridge. Doc: page 1 of 7

TLE9879 EvalKit V1.2 Users Manual

Tarocco Closed Loop Motor Controller

Sten-Bot Robot Kit Stensat Group LLC, Copyright 2013

Adafruit 16-Channel Servo Driver with Arduino

Citrus Circuits Fall Workshop Series. Roborio and Sensors. Paul Ngo and Ellie Hass

Adafruit 16-channel PWM/Servo Shield

Bill of Materials: PWM Stepper Motor Driver PART NO

Counter/Timers in the Mega8

MiniProg Users Guide and Example Projects

DEMO MANUAL DC573A LTC Bit Micropower No Latency Delta Sigma ADC DESCRIPTION BOARD PHOTO

MEGAbitty Controller Board Programming & Usage (preliminary documentation) 7/6/2003

ACPL Data Sheet. Three-Channel Digital Filter for Sigma-Delta Modulators. Description. Features. Specifications.

Training Schedule. Robotic System Design using Arduino Platform

I2C Demonstration Board LED Dimmers and Blinkers PCA9531 and PCA9551

EVDP610 IXDP610 Digital PWM Controller IC Evaluation Board

QUICK START GUIDE FOR DEMONSTRATION CIRCUIT 1339 LOW NOISE, 500KSPS, 12-BIT ADC

B RoboClaw 2 Channel 30A Motor Controller Data Sheet

DMC-8 (SKU#ROB )

SC16A SERVO CONTROLLER

Adafruit 16-channel PWM/Servo Shield

B Robo Claw 2 Channel 25A Motor Controller Data Sheet

HAW-Arduino. Sensors and Arduino F. Schubert HAW - Arduino 1

Laboratory Exercise 1 Microcontroller Board with Driver Board

SGD 70-A 7 PanelPilotACE Compatible Display

MAX11300PMB1 Peripheral Module and Munich (USB2PMB1) Adapter Board Quick Start Guide

The NMIH-0050 H-Bridge

Series SPPM2 Graphical User Interface Panel Meter. Specifications - Installation and Operating Instructions MINI USB PORT

Introduction to the Arduino Kit

7I33 / 7I33TA MANUAL Quad analog servo amp interface

Application Note. Servo Overload Protection AN-CM-247

The Robot Builder's Shield for Arduino

LP3943/LP3944 as a GPIO Expander

Logosol AC/DC Intelligent Servo Drive for Coordinated Control LS-174WP

DEMO MANUAL DC1496A-A/B LTC2941/LTC2942: Battery Gas Gauge with I 2 C Interface [and 14-Bit ADC (DC1496A-B)] DESCRIPTION

DC Brushed Motor Controller Module EDP-AM-MC1

Mechatronics Engineering and Automation Faculty of Engineering, Ain Shams University MCT-151, Spring 2015 Lab-4: Electric Actuators

Jaguar Motor Controller (Stellaris Brushed DC Motor Control Module with CAN)

Specifications.

GAUSS High Power UHF Radio

ZKit-51-V664, 8051 Development Kit

The µbotino Microcontroller Board

ST25DV-PWM product presentation. July 2018

POLOLU DUAL MC33926 MOTOR DRIVER FOR RASPBERRY PI (ASSEMBLED) USER S GUIDE

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

Adafruit PCA9685 Library Documentation

CMU232 User Manual Last Revised October 21, 2002

Analog Servo Drive 30A8

Trademarks & Copyright

Adafruit 16-Channel Servo Driver with Arduino

Motor Control Development Kit

I2C Encoder. HW v1.2

Quick Start Guide. TWR-SHIELD Shield Adapter Module for the Tower System TOWER SYSTEM

Analog Servo Drive 20A20

ESP32 Utility Driver

DRV8801 Single Brushed DC Motor Driver Carrier

Activity 4: Due before the lab during the week of Feb

DEMO MANUAL DC1182A LTC2981: I 2 C Programmable Precision Reference with EEPROM DESCRIPTION

QUICK START GUIDE FOR DEMONSTRATION CIRCUIT BIT, 250KSPS ADC

Motor Driver HAT User Manual

Functional description of BSD-01v2 Module

NVA-R631 Radar Module

Adafruit 16-Channel PWM/Servo HAT & Bonnet for Raspberry Pi

Analog Servo Drive 25A20DD

Temperature Monitoring and Fan Control with Platform Manager 2

PIC ADC to PWM and Mosfet Low-Side Driver

LED controllers. Voltage-switch drivers, constant-current drivers, and Flash LED drivers

µchameleon 2 User s Manual

Models FSW-0010 FSW-0020

RB01 Development Platform Hardware

Adafruit 16-Channel PWM/Servo HAT for Raspberry Pi

Frequently Asked Questions DAT & ZX76 Series Digital Step Attenuators

NVA-R661 Radar Module

Analog Servo Drive 30A20AC

ECE 511: FINAL PROJECT REPORT GROUP 7 MSP430 TANK

Power Pulse Modulator A High Performance Versatile Square Pulse Generator

Analog Servo Drive 100A40

7I30 MANUAL Quad 100W HBridge

Controlling DC Brush Motor using MD10B or MD30B. Version 1.2. Aug Cytron Technologies Sdn. Bhd.

ESE 350 Microcontroller Laboratory Lab 5: Sensor-Actuator Lab

Touch Potentiometer Hookup Guide

DEMO MANUAL DC941A LTC Bit Σ ADC with Easy Drive Input Current Cancellation. Description. Quick Start Procedure

SGD 70-A 7 PanelPilotACE Compatible Display

S Demonstrates the Operation of MAX9926U Modes

Transcription:

Servo click PID: MIKROE 3133 Weight: 32 g Servo click is a 16-channel PWM servo driver with the voltage sensing circuitry. It can be used to simultaneously control 16 servo motors, each with its own programmable PWM signal. The frequency of the control PWM signal can be programmed in the range from 24 Hz to 1526 Hz, which is an ideal range for driving various types of servos. An accurate 16bit A/D converter is used to sample the voltage drop across the shunt resistor on each of the 16 channels, giving feedback on the servo current consumption. This way, Servo click is able to provide an information about the servo operation parameters, with no additional modifications of the servo itself.

The PWM control signal section itself is built around PCA9685, an integrated 12-bit, 16-channel PWM driver, which can be configured to either sink 25mA per channel or drive each channel sourcing up to 10mA. Each channel can have its duty cycle independently set from 0% to 100%. Driven by the I2C interface, it is really easy to operate. Offering 16 independent channels, each with its own PWM duty cycle and current sensing ability, this Click board represents a powerful servo controller, especially usable when a big number of servos needs to be controlled in a simple and easy way, such as in the movie or theater industry (animatronics), robotics, RC toys and similar How does it work? A common servo is typically controlled by a PWM signal with the variable duty cycle. The width of the pulse determines the position of the arm. The signal frequency can vary from 50Hz, up to 200Hz and more, depending on the model of the servo. The arm is moved by a small DC motor, with the help of gears with different transmission ratios. The arm is also internally connected to a small potentiometer, which provides a position feedback to the internal servo electronic circuitry. A typical servo does not provide any feedback to the external controller, so the controller has to assume that the arm of the servo is always at the given position. Servo click uses PCA9685, an integrated 12-bit, 16-channel PWM driver from NXP. This driver contains 12-bit fixed frequency PWM generator for each channel, clocked by the internal 25MHz clock generator. The output signal frequency is determined by the prescaler value, which is written to the appropriate register. The output channels can be set either in the open drain or in the push-pull configuration. In the first case, they will be able to sink

up to 25mA from up to 5.5V power supply, while in the second case, they will be able to both drive with up to 10mA or sink up to 25mA. This is more than enough to control the servo, which typically works with 4.8V signals at its PWM input. The PCA9685 device is originally designed as the LED driver, but the relatively low PWM frequency and limited current capabilities of its outputs make it a better choice as a servo controller. In fact, it is more than perfectly suited to drive servo arrays, due to its compact size and number of channels, which can be expanded even further, by simply changing the I2C slave address of each device. PWM channels are easily driven via the I2C interface. The device also offers Output Enable pin, routed to the mikrobus CS pin, labeled as the OE. A LOW logic level on this pin will set all the outputs to the predefined logic state, turning the PWM generators OFF. This may either leave the servo into the fixed position or turn it down completely, allowing it to free spin - depending on the servo model. The servo can be connected to any of the sixteen headers. Each header has three pins, two of which provide power, and third pin which is routed to the PCA9685, carrying PWM control signal. The power source for the servo DC motors can be selected between the mikrobus 5V and the external connector. The external connector can provide more power for servos that operate with heavier loads, therefore if using a large number of smaller servos or servos that demand more current, the SMD jumper labeled as VCC MOT should be at the EXT position. In this case, an external PSU which can provide more current can be used. If there is a force attempting to move the servo arm in one direction while it is set to a certain position, the servo will oppose to this force by draining more current from the power supply. Also, the current exponentially drops as the servo DC motor accelerates, so this can be utilized to sense an obstacle and correct the servo position accordingly. So, the servo current consumption can provide a form of feedback, that can be used in the software. Therefore, each header is equipped with a shunt resistor, which introduces a small voltage drop across the connected servo. This voltage drop is captured and converted by the LTC2497, a 16-Bit, 16-channel deltasigma ADC, with easy drive input current cancellation and I2C Interface, by Analog Devices (former Linear Technology). The ADC uses an accurate reference of 2.048V provided by a small onboard reference voltage regulator. An extremely low noise of this ADC IC and patented sampling scheme, coupled with the low reference voltage, allow very small voltage drops across the shunt resistor to be accurately converted. The Click board can operate with both 3.3V and 5V MCUs. The operating voltage can be selected by an onboard SMD jumper, labeled as the VCC SEL. There are two more SMD jumpers, labeled as the PWM and ADC, located at

the bottom of the Click board. These jumpers allow selection of the slave I2C address for each of the two onboard ICs. This way, several Servo clicks can be stacked, allowing control and driving of a large servo array. However, in such scenario, servos can pull a lot of current, so a special care should be taken not to overload the power supply and the Servo click connectors. Maximum current per servo channel is about 2A, but combined current from 16 servos should stay below 3.0 A Specifications Type Motion Applications Servo click is especially usable when a big number of servos needs to be controlled in a simple and easy way, such as in the movie or theater industry (animatronics), robotics, RC toys and similar applications On-board modules PCA9685, an integrated 12-bit, 16-channel PWM driver from NXP; LTC2497, a 16-Bit, 16-channel delta-sigma ADC, with easy drive input current cancellation and I2C Interface, by Analog Devices Key Features An accurate 12-bit PWM control signal on 16 different servo channels, with programmable frequency. Additional sense resistor on each channel allows current readings for each channel, offering extended servo feedback with no modifications of the actual servo Interface GPIO,I2C Input Voltage 3.3V or 5V Click board size L (57.15 x 25.4 mm)

Pinout diagram This table shows how the pinout on Servo click corresponds to the pinout on the mikrobus socket (the latter shown in the two middle columns). Notes Pin Pin Notes NC 1 AN PWM 16 NC NC 2 RST INT 15 NC Output Enable OE 3 CS RX 14 NC NC 4 SCK TX 13 NC NC 5 MISO SCL 12 SCL I2C Clock NC 6 MOSI SDA 11 SDA I2C Data Power supply 3.3V 7 3.3V 5V 10 5V Power supply Ground GND 8 GND GND 9 GND Ground Onboard settings and indicators Label Name Default Description PWR PWR - Power LED indicator VCC MOT VCC MOT Left Motor PSU source selection: left position external PSU, right position 5V from

VCC SEL VCC SEL Left Logic voltage level selection: left position 3.3V, right position 5V 1-16 1-16 - Servo motor connection headers (channels 1 to 16) Software support We provide a demo application for Servo click on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards. Library Description This library will allow you to control multiple servo motors at once. Key functions: void servo_init(uint8_t minposition, uint8_t maxposition, uint16_t lowresolution, uint16_t highresolution); - Main click board initialization routine. void servo_setmode(uint8_t mode,uint8_t _data); - Set's the operation mode of the click board. servo_sleep(); - The function needs to be set before setting the frequency. void servo_setfreq(uint16_t freq); - Used for setting the frequency. void servo_setposition(uint8_t motor, uint8_t position); - Set the position of the selected servo motor. Example description The application is composed of three sections: System Initialization - Initializes the I2C module and the CS pin as the output Application Initialization - Initializes the driver and the servo (setting the minimum and maximum servo motors position and resolutions). Default resolution is 1ms. The IC is set to Sleep mode in order to set the frequency, after which the working mode of the servo is set Application Task - (code snippet) - The servo motor is moved across three different positions: 0, 90, 180 - every two seconds. The current consumption is sampled while the servo transitions between these points

void applicationtask() { servo_setposition(_servo_motor_1, 0); Delay_ms( 2000 ); servo_setposition(_servo_motor_1, 90); Delay_ms( 1000 ); servo_setposition(_servo_motor_1, 180); Delay_ms( 2000 ); servo_setposition(_servo_motor_1, 90); Current = setvo_getcurrent(_servo_positive_ch0); IntToStr(Current, text); mikrobus_logwrite( "Current ", _LOG_TEXT ); mikrobus_logwrite( text, _LOG_TEXT ); mikrobus_logwrite( " ma", _LOG_LINE ); Delay_ms( 1000 ); } The full application code, and ready to use projects can be found on our Libstock page. Other MikroElektronika libraries used in the example: I2C Library UART Library Conversions Library C_String Library Additional notes and information Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message. mikrosdk This click board is supported with mikrosdk - MikroElektronika Software Development Kit. To ensure proper operation of mikrosdk compliant click board demo applications, mikrosdk should be downloaded from

the LibStock and installed for the compiler you are using. For more information about mikrosdk, visit the official page. https://www.mikroe.com/servo click 9 19 18