Tuesday, 26 March 2013

Accelerometer Selection

A three axis acclerometer is required to measure the orientation of the ultrasound probe and compensate the force applied onto the patient.
Analogue is in favored upon digital as the output is simply a voltage proportional to the gravity change and can be load into the microcontroller through one of the Analogue input ports of DB28020. Whereas if a digital accelerometer is used, an additional timer component is required to count the cycles in order to convert number of digital high square waves into acceleration.
A as large as possible dynamic range and sensitivity would be advantageous whereas a bandwidth of a couple of hundreds HZ could be sufficient.

Through the searching process, I have found a accelerometer from Analog Devices that supports sampling, since it is free, I have made a application, it will be shipped from Austria on 4th April. It is able to withstand 10000g of shock, with a measurement range of 200g and a typical sensitivity of 6.5mV/g at 3V. The active range of input voltage varies from 1.8V to 3.6V. There is an evaluation board priced at £23.27 based on this component. According to the technical information provided by Analog Devices on this product, I have capacitors that would give me a bandwidth of 500Hz when connected with the sample.

Monday, 25 March 2013

Stepper Motor Driver


DRV8825 Stepper Motor Driver Carrier


This driver could drive the stepper motor in 6 microstep resolutions from full step to 1/32th. It is able to supply as high as 47V to the motor (our motor had ratings lised when supplied with 48V), although the output current is only 0.75A/phase, it could still fulfill what is required for our motor (0.67A/phase). 0.7V is the highers Input Low Voltage while Input High is from 2.2V to 5.25V. The internal current control PWM frequency is 30kHz. 

The driver needs to be programmed with Arduino, which is an open-sourced C based language. I have contacted ICT for administration right to install it on the PC I am using at mid-day, wish I will get a reply by Tuesday.

Friday, 22 March 2013

Limit Switch

Two limit switches or alike will be used to indicate the extreme has been reached during the operation of motor. The intention was to search for a small and cost effective switch that is able be stand a maximum of around 15N(may not be accurate that needs to be justified). The search had also been limited onto vertical switches with a push button.

During the search, the term "slow action" came up frequently. It is characterized by a release position that is the same as the operating position. The switch actuator's speed directly conditions the travel speed of contacts.

Another form of contacting mechanism is Snap Action that is characterized by a release position that is distinct from the operating position (differential travel). Snap breaking of moving contacts is independent of the switch actuator's speed and contributes to regular electric performance even for slow switch actuator speeds.


Info from http://www05.abb.com/global/scot/scot209.nsf/veritydisplay/bfff30eb0da19bd385257615007532ca/$file/1sxu000023c0202_09_general_tech_data.pdf

Possible choises:
http://uk.farnell.com/bernstein/600-8104-025/limit-switch-1no-1nc-slow-make/dp/3204728 - 10N
http://uk.farnell.com/honeywell-s-c/gldb-01b/limit-switch-pin-plunger/dp/560390 - 16N
And the Honeywell GLL Series

However, the sizes of these switches are still a lot larger than ideal (min height around 50mm), thus other possibilities may need to be considered.

Thursday, 21 March 2013

Stepper Motor Driver

In order to keep power loss low, two methods are used. A simple and popular solution is to give only as much voltage as needed, utilizing the resistance (RL) of the winding to limit the current. A more complicated but also more efficient and precise solution is the inclusion of a current generator, to achieve independence from the winding resistance. However, the supplied power required is also higher. 

Power delivered by the motor is proportional to the current in the winding. In the dynamic working order a stepper motor changes poles of the winding current in the same stator winding after two steps. The speed with which the current changes its direction in the form of an exponential function depends on the specified inductance, the coil resistance and on the voltage. Figure below shows that at a low step rate the winding current IL reaches its nominal value VL/RL before the direction is changed. However, if the poles of the stator windings are changed more often, which corresponds to a high step frequency, the current no longer reaches its saturating value because of the limited change time ; the power and also the torque diminish clearly at increasing number of revolutions.
Running a stepper motor in half-step allows its position resolution to be increased by a factor of 2. It also avoids disturbance by the motor resonance, as the course covered by the rotor is only half as long and the
system is less stimulated. These may be so strong that the motor has no more torque in certain step frequency ranges and looses completely its position. This is due to the fact that the rotor of the motor, and the changing magnetic field of the stator forms a springmass-system that may be stimulated to vibrate. In practice, the load might deaden this system, but only if there is sufficient frictional force.On the down side, the half-step system needs twice as many clock-pulses (twice clock frequency) as the full-step system, and it is only able to deliver half of the torque of the full-step. It is also possible to turn the motor in small microsteps by controlling current at each motor phase precisely. Advantages of microstepping includes better positional resolution, less resonance issues and loser audible noise.

Commands driving the motor comes from a connected microcontroller. In its simplest form, a full-step control needs only two rectangular signals in quadrature. According to which phase is leading, the motor axis rotates clockwise or counter-clockwise, whereby the rotation speed is proportional to the clock frequency. In the half-step system the situation becomes more complicated. The minimal two control signals become four control signals. In some conditions as many as six signals are needed.

A typical control circuit that reduce the number of outputs required from a microprocessor from the 6 required to 3 static and dynamic control line is shown below, 
information obtained from http://users.ece.utexas.edu/~valvano/Datasheets/Stepper_ST.pdf

The stepper motor I have is L2818S0604-T5X5 from Nanotec with a resolution of 0.025mm per step and is able to deliver a maximum thrust of 30N. Matching driver is available to purchase, there are also a variety of similar products available in the market. The maximum current/phase of the motor is 0.95A. The Cytron 3-40V, 2A Unipolar / Bipolar Stepper Motor Controller from http://www.robotshop.com/cytron-3-40v-2a-unipolar-bipolar-stepper-motor-controller.html could be an option. I have also sent e-mails to suppliers of Allegro MicroSystems in the UK to ask if a free sample could be delivered.

Wednesday, 20 March 2013

Load Cell

Load Cell Connections,
Red: + Excitation (10V nominal)
Black: -Excitation (Ground)
Green: + Signal
White: -Signal
Change in voltage difference detected between + and  - Signals representing force applied. It is then amplified and maybe conditioned if required.

Shielding rule: Avoid continuous ground loops; a system should not be grounded at multiple points. This may occur, for example, if the shield of the load cell cable is connected to earth at both ends.


IDC header connector: http://uk.rs-online.com/web/p/pcb-sockets/6058819/
Something to extend preferably just one of the analogue input ports in order to weld the load cell circuitry on. The item above is a row of 8 pins that would cover one row out of the 16-pin IDC header. Single connector can not be found, wonder if these can be devide into individual ones.

Monday, 18 March 2013

Operational Amplifier

An amplifier is required to magnify the voltage output by the load cell. There are a number of amplifiers that could work, a simply inverting amplifier is chosen.

Vout = -Vin ( Rf/Rin )

Interconnector


ICM-3300 Interconnect Module
The ICM-3300 attaches directly to the CDS-3310 and breaks out the 37-pin D-sub connector into convenient screw terminals allowing for quick and easy connection to system elements.The ICM-3300 also provides optical isolation for inputs and outputs with the exception of the following signals: brake output, output compare, reset input and digital input 8.
Outputs 1 through 4 are high-side, 500 mA drives.The maximum common voltage for the I/O is 28 VDC. The ICM-3300 includes a high density 15-pin D-sub connector which allows direct connection to Galil’s BLM-N23 brushless servo motor.

Tuesday, 12 March 2013

CDS3310


Analog Inputs
The CDS-3310 has two analog inputs configured for the range between 0V and 5V. The inputs are decoded by a 12-bit A/D decoder giving a voltage resolution of approximately 1 mV (a 16-bit A/D is available on the DB-28040). The impedance of these inputs is effectively infinite. The analog inputs are read with @AN[x] where x is a number 1 thru 2.

Digital Inputs
The general use inputs are TTL and are labeled DGTL IN 1 to DGTL IN 8 on the silkscreen on the
sheet metal. These inputs can be interrogated with the use of the command TI (Tell Inputs), the
operand _TI, and the function @IN[n] (see Chapter 7, Mathematical Functions and Expressions).
Digital input 8 can accept a differential (two-wire) signal. To connect a single-ended (one wire) signal, connect to DGTL IN 8+ and leave DGTL IN 8- disconnected.

Analog Output
The CDS-3310 has one analog output configured for the range between -10V and 10V. The output is driven by a 16-bit D/A converter giving a voltage resolution of approximately 300 μV. The analog output is set with AO command.

Communication Protocols
Ethernet communication transfers information in ‘packets’. The packets must be limited to 470 data bytes or less. Larger packets could cause the controller to lose communication. Communication protocols are necessary to dictate how these packets are sent and received. Although UDP/IP is more efficient and simple, Galil recommends using the TCP/IP protocol. TCP/IP insures that if a packet is lost or destroyed while in transit, it will be resent. When using TCP/IP, each master or slave uses an individual Ethernet handle. The term “Master” is equivalent to the internet “client”. The term “Slave” is equivalent to the internet “server”.

Controller Response to Commands
Instructions are sent in ASCII, and the CDS-3310 decodes each ASCII character (one byte) one at a time. It takes approximately 0.5 msec for the controller to decode each command. After the instruction is decoded, the CDS-3310 returns a response to the port from which the command was generated. If the instruction was valid, the controller returns a colon (:) or a question mark (?) if the instruction was not valid. For example, the controller will respond to commands which are sent via the main RS-232 port back through the RS-232 port, and to commands which are sent via the Ethernet port back through the Ethernet port.
For instructions that return data, such as Tell Position (TP), the CDS-3310 will return the data followed by a carriage return, line feed and colon. It is good practice to check for : after each command is sent to prevent errors.

Command Syntax – ASCII
CDS-3310 instructions are represented by two ASCII upper case characters followed by applicable arguments. A space may be inserted between the instruction and arguments. A semicolon or <return> is used to terminate the instruction for processing by the CDS-3310 command interpreter. Commands will not be processed until an <return> command is given.

Programming Motion
Independent Axis Positioning
Absolute or relative positioning where each axis is independent and follows prescribed velocity profile.
The user specifies the desired absolute position (PA) or relative position (PR), slew speed (SP),
acceleration ramp (AC), and deceleration ramp (DC), for each axis.
The speed (SP) and the acceleration (AC) can be changed at any time during motion, however, the deceleration (DC) and position (PR or PA) cannot be changed until motion is complete. Remember, motion is complete when the profiler is finished, not when the actual motor is in position. The Stop command (ST) can be issued at any time to decelerate the motor to a stop before it reaches its final position. An incremental position movement (IP) may be specified during motion as long as the additional move is in the same direction. Here, the user specifies the desired position increment, n. The new target is equal to the old target plus the increment, n. Upon receiving the IP command, a revised profile will be generated for motion towards the new end position. The IP command does not require a BG.

Independent Jogging
Velocity control where no final endpoint is prescribed, speed, direction and acceleration can be changed during motion. Motion stops on Stop command. An instant change to the motor position can be made with the use of the IP command. Upon receiving this command, the controller commands the motor to a position which is equal to the specified increment plus the current position.

Position Tracking
Supports changing the target of an absolute position move on the fly. New targets may be given in the same direction or the opposite direction of the current position target. The controller will then calculate a new trajectory based upon the new target and the acceleration, deceleration, and speed parameters that have been set.

Contour Mode
Allows the user to generate custom profiles by updating the reference position at a specific time rate. In this mode, the position can be updated randomly or at a fixed time rate, but the velocity profile will always be trapezoidal with the parameters specified by AC, DC, and SP. Updating the position target at a specific rate will not allow the user to create a custom profile.

Dual Loop (Auxiliary Encoder)
The most common use for the second encoder is backlash compensation, position encoders are mounted on both the motor and the load. The continuous dual loop combines the two feedback signals to achieve stability. This method requires careful system tuning, and depends on the magnitude of the backlash. However, once successful, this method compensates for the backlash continuously.
The second method, the sampled dual loop, reads the load encoder only at the end point and performs a correction. This method is independent of the size of the backlash. However, it is effective only in point-to-point motion systems which require position accuracy only at the endpoint.

Motion Smoothing
The CDS-3310 controller allows the smoothing of the velocity profile to reduce the mechanical vibration of the system.
Trapezoidal velocity profiles have acceleration rates which change abruptly from zero to maximum value. The discontinuous acceleration results in jerk which causes vibration. The smoothing of the acceleration profile leads to a continuous acceleration profile and reduces the mechanical shock and vibration.