top of page

Project Date: 

March 11, 2021

When conveyor belts are embedded with rollers and the function of those rollers is to move items and high speeds and very reliably, the rollers themselves must be functioning correctly.  It's a frequent occurance that rollers stop functioning optimally (think a stuck label or spilled dried coke) and this condition may go undetected for weeks while a machine is mis-sorting or just generally malfunctioning.


I've created a fully automated non-contact sensor array that can measure roller motion while the conveyor is moving at nearly full speed.  I utilized a ADNS-3080 optical flow sensor from Avago and a long focal length lens that allows the imager to focus at about 1cm from the lens surface.  This sensor is typically used in optical mice and the focal length is usually much shorter.


The data from this sensor is available via Serial Peripheral Interface (SPI).  Using an Arduino Due, data are read from all the sensors (current design uses 16 sensors) at about 500Hz.  The sensors return an exposure value, surface quality (SQUAL), and x and y translation.  The Arduino buffers this data and then communicates to a higher level control system using an EasyCAT shield from AB&T.  This shield allows you to create a fully EtherCAT Technology Group (ETG) compliant EtherCAT slave device out of any Arduino... cool!


Running TwinCAT 3.1 on a Beckhoff CX-5120, the values from the optical flow sensors is read at 1 kHz.  The exposure value is used to determine when rollers are present under the sensor due to absorptivity of the roller material.  A voting system determines when all the sensors should be seeing rollers or not seeing rollers.  Then x and y translations are measured to determine the roller deflection angle.  If the deflection angle measured is not within a certain tolerance level, the roller is flagged as defective based on its location in the belt which is tracked as the system runs.  Maintenance personnel can quickly and easily determine where the defective roller is.

bottom of page