* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download robot_canarrange
Distributed control system wikipedia , lookup
Electric motor wikipedia , lookup
Immunity-aware programming wikipedia , lookup
Brushed DC electric motor wikipedia , lookup
Anastasios Venetsanopoulos wikipedia , lookup
Brushless DC electric motor wikipedia , lookup
Induction motor wikipedia , lookup
A ROBOT CAN ARRANGE Done by: Dania mohammad Abu Elown. Ruaa Tahseen Barakat. Supervisor: Dr. Raed Al-Qadi OUTLINES Introduction. Previous work. Hardware Software, libraries and languages Project features. Future work. Problems. Demo. INTRODUCTION We are making a robot arm that can identify letters and be able to make words of letters. Our project contains two parts, the image processing part which is responsible of recognizing the letters, and the second part is the control of the arm itself. Image processing uses BeagleBoard. Controls of the arm uses Ardiuno microcontroller. PREVIOUS WORK We are not the first to develop such this project. It was made before but without the image processing part which identifies the letters on the blocks, so it is a great feature to add. HARDWARE 1. 2. 3. 4. 5. 6. 1. 2. 3. 4. apparatus BeagleBoard-xm for the processing. Arduino Uno for Microcontrolling. Camera stepper motors. Servo motor. H-Bridge. The Model Consists of four parts: the base. Arm. Vertical axis moves up and down. Gripper. SOFTWARE 1. 2. 1. 1. 2. Applications: Arduino IDE. Gedit ( Linux text editor) Operating system Ubuntu (LXDE). Libraries Opencv Tesseract-OCR Engine 1. 2. Languages: C++ for programming the processor Arduino C for the Arduino microcontroller The Design FEATURES the base consists of stepper motor that can move 360 degrees. It hold the complete arm on. The arm connect with vertical axis that moves up and down using another stepper motor and at the end of the axis, there is a gripper which catches the wooden cubes. The processor connects all the components together, the BeagleBoars has 4 USB ports, one for the Arduino Uno, and one for the camera, Which provides communication between them through serial interface. The motors are connected to the microcontroller using H-Bridge, H-Bridge provides control for the operations of the motors. Hardware Costs Item Cost(NIS) Design 500 Sd Cards 180 Arduino 170 Servo motor 65 Gripper 60 Web Cam 45 Wireless adapter 60 Stepper motor 90 Power supply 20 H-bridges 70 Others 60 Total 1320 SYSTEM DESIGN Processor: the main part of the system which links all the components together, it is responsible for the processing and commands. The processor takes input from the camera , and gives the right commands to the micrcontroller. The microcontroller: used to control the motors and their rotation, and to send feedback to the processor. The robotic Arm : carries the components and used for movement. Camera: its feed is processed and the commands are issued based on the processor’s image processing output. WHT IS BEAGLEBOARD-XM Beagle boards are tiny computers with all the capability of today’s desktop machines, without the bulk, expense, or noise. The processor of the beagle board supports high-level operating systems such as: • Linux • Windows CE • QNX • Others Microcontroller • The microcontroller module is required to actually interpret the commands and control the motors. • The main task of the microcontroller system is to control the motors. It interprets the processors commands of going forward, backward, left or right. It controls the output pins that are connected to the H-Bridge module connected directly to the motors Arduino Arduino can be used to develop interactive objects, taking inputs from a variety of switches or sensors, and controlling a variety of lights, motors, and other physical outputs. Arduino projects can be stand-alone, or they can communicate with software running on your computer. WHAT IS THE ARDUINO-UNO Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz WHAT STEPPER MOTOR •A stepper motor is a digitally controlled motor that allows precise control over the position of the motor’s rotor. •Changes in the digital input rotate the motor’s rotor by a precise amount CONNECT MOTTOR TO H-BRIDGE AND ARDUINO WHAT IS SERVO MOTOR • A servo motor (or servo) is a package containing a DC motor connected via gears to a shaft. • It also contains a feedback circuit that precisely controls the shaft’s angle of rotation. The servo is connected to the arduino as shown in the picture. Power Sources • 5 volt for the beagle board. • 12 volt for the largest stepper motor. • 24 volt for the smaller stepper motor. Operating System Used • Beagleboard xm can operate wide list of operating systems starting from Android to Ubuntu and Angstrom. • In our project we tried several operating systems with different environments. 1. Angstrom : Angstrom Linux is an operating system developed specifically for small computers and embedded devices such as the BeagleBoard-xM. 2. Xubuntu : Xubuntu provides an easy to use distribution, based on Ubuntu, using Xfce as the graphical desktop, with a focus on integration, usability and performance. 3. LXDE: LXDE is a free and open source desktop environment for Unix. The goal of the project is to provide a desktop environment that is fast and energy efficient. 4. Ubuntu :Ubuntu is a Debian-based Linux operating system,with Unity as its default desktop environment.Ubuntu is the most popular desktop Linux distribution. • As for Angstrom it was quite fast to work with but it didn’t have as much resources as Ubuntu , and the terminal command are not the same as Ubuntu that we are familiar with. • As for Xubuntu and LXDE both were fast but they didn’t have a mouse pointer, so we ended up with using Ubuntu on beagleboard. • But then later we installed LXDE environment on Ubuntu since it is much faster. OPENCV OpenCV is the main part for dealing with camera and photos. OpenCV is free for both academic and commercial use. It has C++, C, Python and Java interfaces. supports Windows, Linux, Mac OS, iOS and Android. Written in optimized C/C++, TESSERACT-OCR ENGINE Tesseract is probably the most accurate open source OCR engine available. Combined with theLeptonica Image processing Library. it can read a wide variety of image formats and convert them to text in over 60 languages. Tesseract works on Linux, Windows and Mac OSX. It can also be compiled for other platforms, including Android and the iPhone. Image Processing In order to get the character from an image we did some steps on a photo: 1. Convert image to Gray. 2. Blur the image 3.Threshold 4.Crop the image IMAGE PROCESSING First filter is RGB2GRAY filter as shown in the photo. This is done using this code: The second filter is GaussianBlur. We used it to reduce the noise as in the photo. Then we used the threshold filter on the blured image. The image only contain white and black color. Finally we crop the interested region of the thresholded image and pass it to the tesseract library Problems 1. Completing the design 2. Type of SD Card. 3. Porting operating system on beagle. Future Work We hope to add voice recognition as an additional feature instead of getting the word serially.