Please use this identifier to cite or link to this item: https://www.um.edu.mt/library/oar/handle/123456789/93614
Title: Design of a non-linear multi-function servo controller
Authors: Baldacchino, Saviour (1985)
Keywords: Servomechanisms
Remote control
Microprocessors
Issue Date: 1985
Citation: Baldacchino, S. (1985). Design of a non-linear multi-function servo controller (Bachelor's dissertation).
Abstract: The main objective of the project was to design a multi-servo controller, which provided the user with a set of functions through which non-linear, remote, servo control could be achieved manually or automatically through the use of a microprocessor. This was intended to operate a robotic arm with four degrees of freedom- It was found financially difficult to obtain an adequate mechanical arm, so four motors were rigged to represent a fairly close substitute. Such a multi-servo system could be applied in a number of situations were simultaneous control of various items is desirable. A dedicated keyboard was designed through which the functions could be implemented. The system was made up of a main controller (utilising the Nanocomputer), supported by a number of software subroutines, and a remote controller. A block diagram of the system is shown in figure 1.1. One of the functions of the remote controller was to interface the motors to a serial data link joining the two controllers. Serial information arriving from the main controller was converted to a parallel form and each pair of bits controlled a motor- Each motor was mechanically coupled to a transducer which provided an analogue voltage corresponding to the position of the motor- The four analogue voltage levels thus obtained, were then multiplexed so that only one of them was connected to the analogue to digital converter input at any one time. The digital output was then sent to the serial form through a parallel to main controller in a serial converter. A synchronising byte was inserted to identify each group of four position bytes. Two alarms were used to detect any failure of received or transmitted information. If any one failed, the alarm signal cut off power to the motors to avoid undesired movement. The main controller, on the other side of the link consisted of a hardware section and supporting software- The hardware section provided an interface between the data link and the CPU, enabled the user to communicate with the system via the keyboard and visual displays and provided the hardware delays required by the software using a Counter Timer Circuit (CTC). On system startup, the main programme first initialised the keyboard branching table and system variables. The CPU was then set in interrupt mode two, to enable vectored interrupts, and all peripheral devices were initialised. At this stage, the software was synchronised with the incoming feedback information- Control was then passed to the main programme loop. During this loop, the receiver buffer of the UART was polled. If it was found full, the received data was read, stored in the proper position buffer and processed. During processing, the motor control byte was set up or modified. The transmitter buffer was then polled and if found empty, the motor control word was written to it, and consequently sent to the remote controller. This sequence of events was repeated on subsequent reception of further feedback information. Interrupts were enabled in the initialisation stages and service could be requested by the peripheral controllers at any time during main programme operation- Interrupts could be originated from three sources: i) The keyboard ii) Timer-1 iii) Timer-2 When servicing was requested by the keyboard, it was first required to identify the code of the key entered and the keyboard level of operation. Thus, the address of the service required was obtained from the keyboard branching table. When the key was serviced, control was passed to the main programme. Timer-1 provided an auto-repeat facility to the keyboard. If a key was pressed and held down for a certain period, Timer-1 was enabled to generate regular interrupts which provided repeated servicing of the key pressed until it was released. During manual operation, the user could position the motors anywhere within the allowed range using the keyboard. The position of the motors at any instant could be memorised. If a sequence of positions are memorised a table is set up in memory and the sequence can be automatically repeated on request by the user. The system would then be operating in the automatic (auto) mode. Auto mode was initiated by starting Timer-2. The Its latter interrupted the CPU at regular intervals. service routine first checked that the previous destinations were reached by all motors. If it was so, the next destinations were assigned from the memorised sequence- The sequence was repeated continuously unless manual mode was opted for by the user. Stability of the servos was first achieved by heavily damping the motors (applying dynamic braking) when their current position lied within a defined tolerance from the required destination. An enhancement to this scheme was to reduce the power applied to the motors when the latter's position was within a region symmetric about the desired destination· Finally, semi-proportional control was implemented over a given range of motor travel, leading to non-linear servo operation resulting in an improvement of accuracy and response time.
Description: B.ENG.ELECTRICAL&ELECTRONIC
URI: https://www.um.edu.mt/library/oar/handle/123456789/93614
Appears in Collections:Dissertations - FacEng - 1968-2014
Dissertations - FacEngESE - 1970-2007

Files in This Item:
File Description SizeFormat 
BELECENG_Baldacchino_Saviour_1985.pdf
  Restricted Access
5.36 MBAdobe PDFView/Open Request a copy


Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.