30120140506004

150
-1

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
150
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

30120140506004

  1. 1. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 36 A DIFFERENT APPLICATIONS OF ARDUINO Maha M. Lashin Mechanical Engineering Department, Shoubra Faculty of Engineering, Banha University, Egypt ABSTRACT Arduino is a rapid electronic prototyping platform composed by the Arduino board, and IDE and it is used because it is an open-source project, flexible, easy to use, and unexpensive. Arduino are growing online community. A robotic scrub nurse has been developed here to assist human scrub nurses (also called delivery scrub nurses) during surgical interventions. The developed system in this work depended on Arduino as a control system to equipped with a speech recognition module to recognize the requested surgical instrument; Siri-Bot locates this element on a storage tray using computer vision and pattern recognition and picks the element from the tray placing it on an interchange tray where the human scrub nurse can finally use this tool. KEYWORDS: Microcontroller- Arduino- Scrub Nurse Robot. INTRODUCTION The Arduino is as in [1] an open-source microcontroller development board. It is consists of both a physical programmable circuit board and a piece of software, or Integrated Development Environment running computer to write and upload computer code to the physical board. Arduino also can be defining as a small computer on a single integrated circuit containing a processor core, memory, and programmable input/ output peripherals. The Arduino used to read sensors and control things like motors and lights. It allowed to upload programs to this board which interact with things in the real world. The Arduino can operate independently like robot which connected to a computer the computer access to sensor data from the outside world and providing feedback, connected to other Arduino’s, or other electronic devices and controller chips. Arduino programming language uses a simplified version of C++. INTERNATIONAL JOURNAL OF MECHANICAL ENGINEERING AND TECHNOLOGY (IJMET) ISSN 0976 – 6340 (Print) ISSN 0976 – 6359 (Online) Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME: www.iaeme.com/ijmet.asp Journal Impact Factor (2014): 7.5377 (Calculated by GISI) www.jifactor.com IJMET © I A E M E
  2. 2. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 37 ARDUINO STRUCTURE Arduino structure depends on two branches hardware and software branch. Hardware is an open-source circuit board with a microprocessor and input/output (I/O) pins for communication and controlling physical objects (LED, servos, buttons, etc.). The board will typically be powered via USB or an external power supply which in turn allows it to power other hardware and sensors. Arduino also has an open-source software component which is similar to C++. The Arduino integrated development environment allows writing code, compiling it, and then uploading it to Arduino for standalone use in prototyping and projects. ARDUINO TYPES The Arduino comes in a variety of different types that allows for flexibility in choosing the perfect solution as following; Arduino Uno The Uno as in figure 1 is an Arduino type which works with almost every shield available. It is meant to be used as a permanent fixture in projects or with breadboards for testing. FIG.1: Arduino Uno Type Arduino Nano As in figure 2 the Nano is almost feature for feature the same as the Arduino Uno, but it is about 1/3 the size and cannot use shields easily. FIG.2: Arduino Nano Type
  3. 3. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 38 Arduino Lilypad The Lilypad as in figure 3 has a unique design that can be sewn into fabrics for wearable projects or art. FIG.3: Arduino Lilypad Type Arduino Mega 2560 The Mega 2560 has more memory and more I/O pins than any other Arduino. This is the biggest and best Arduino can get as figure 4 shown. FIG.4: Arduino Mega 2560 Type Netduino The Netduino is the cousin of the Arduino. It is as in figure 5 still an open source hardware hacking and prototyping solution. But the Netduino runs net micro framework for its software base. It is pin compatible with Arduino shields, but some may require drivers to run. FIG.5: Arduino Netduino Type
  4. 4. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 39 Arduino Shield Arduino shields make adding functionality to the Arduino very easy. The shields have pins that push right into the top of the Arduino and then it can immediately take advantage of whatever the shield can do. A multiple shields can be added at a time. Arduino shields using hardware components interfaced over different types of protocols such as SPI, I2C,1-Wire or serially over a UART are generally good candidates for a Netduino adaptation because the .NET Micro framework supports these protocols natively and can do bulk I/O transfers, yielding good performance. AREA OF ARDUINO APPLICATIONS Arduino as in [2] is a good device for developing interactive objects, taking inputs from a variety of switches or sensors and controlling a variety of lights, motors and other outputs. Arduino projects can be stand-alone or they can be connected to a computer using USB. The Arduino will be seen by the computer as a standard series interface. The Arduino board is a microcontroller board, which is a small circuit that contains a whole computer on a small chip. ROBOT SCRUB NURSE As Mithun George [3], Anna Kochan [4], Wachs [5], and Joelle [6] the robotic nurse can used to make the tasks of human nurse with high quality. Their robotic nurses used another type of control systems to interface with this robots. But in that work (scrub nurse robot) the Arduino used as a new control system to make the deal with this robotic nurse so easy. As in figure 6 scrub nurse robot will discuss as a new application of Arduino. The main idea of the scrub nurse robot is to make the same required tasks like human nurse with more accurate, fast, and also with no feel tired. FIG.6: Robot Scrub Nurse The work of the scrub nurse robot begging when the surgeon required a certain tool from the robot then, the surgeon voice input to the robot through a speech recognition shield for Arduino as in figure 7, the voice will detection and recognition by the Arduino software.
  5. 5. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 40 FIG. 7: Speech Recognition Shield After that the surgical tools image capture by image acquisition device as a webcam, then the image processing and template matching go ahead by the image processing program (visual studio2010 C++). The output of all process is the moving of robot arms in X, Y directions to catch the required tool and move it towards to surgeon. Figure 8 describe the flow chart of the scrub nurse robot process. FIG.8: Scrub Nurse Flow Operation ROBOTIC SCRUB NURSE STRUCTURE The scrub nurse robot consists of hardware and software systems. These systems can be explained as following; Hardware System Scrub nurse robot hardware has three branches. The first branch is the mechanical branch or manipulator which contain two arms, four joints, two basics (one moving and other stationary), and gripper as in figure 9.
  6. 6. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 41 FIG.9: Scrub Nurse Robot’s Manipulator The electrical branch consists of the image acquisition device (webcam) which connected computer cable as in figure10. FIG.10: Scrub Nurse Robot’s Camera
  7. 7. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 42 As in figure 11 four DC motors with 6V and 0.16/60 degree speed used for moving base around its centre line (Y-axis), moving arm1 to front or back at X-axis direction, moving arm2 to up or down at Y-axis direction, and open-closed the gripper. Also a switched mode power supply with 20 KHz frequency used for the DC motors and Arduino board. FIG.11: DC Motor and the Switched Power supply The final branch is the controlling branch which contained an Arduino Mega microcontroller board based on ATmega1280 with 54 I/O Pins with 40mA DC current for each pin, 6V power, and 128 flash memory as in figure12. The final part in the control system is the speech recognition and image processing shields for Arduino as shown in figure7. FIG.11: Arduino Mega Microcontroller Board Software System The software system in Arduino which controlled on each components and each process at the scrub nurse robot. The programming language used for ATmega1280 is the C++ language. The different controlling cods written by C++ language and then a certain communication by USB has don between Arduino board and the computer to sent cods to Arduino memory. Arduino software includes a serial monitor which allows simply textual data to b sent to and from the Arduino board. The hardware and software systems flow chart show in figure12.
  8. 8. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 43 FIG.12: General Flow Chart for the Scrub Nurse Robot’s Hardware and Software CONTROLLING CODES As explained before Arduino controlling unit board has programmed by C++ language to create the controlling codes. A sample of these codes will appear as following; SPEECH RECOGNITION CODE staticvoidSpeechRecognitionWithChoices() GrammarBuildergrammarBuilder = newGrammarBuilder(); //grammarBuilder.Append("I"); // add "I" grammarBuilder.Append(newChoices("Forceps", "Clamp", "Scissors")); _recognizer.RequestRecognizerUpdate(); _recognizer.LoadGrammar(newGrammar(grammarBuilder)); // load grammar try _recognizer.SetInputToDefaultAudioDevice(); // set input to default audio device _recognizer.RecognizeAsync(RecognizeMode.Multiple); // recognize speech catch publicvoidspeechRecognitionWithChoices_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) //MessageBox.Show(e.Result.Words[0].Text); SetDirection(e.Result.Words[0].Text); manualResetEvent.Set(); publicvoidSetDirection(string Direction) //MessageBox.Show(Direction); textBox1.Text = Direction;
  9. 9. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 44 IMAGE PROCESSING CODE privatevoidRecognizeTools() Centers_X.Clear(); Centers_Y.Clear(); flowLayoutPanel1.Controls.Clear(); Dictionary = newDictionary<string, Point>(); double[] VerticalProjections = GetVerticalProjections((Bitmap)pictureBox1.Image); LocateTools((Bitmap)pictureBox1.Image, VerticalProjections); foreach (string filename infnames) Bitmap mask = newBitmap(Image.FromFile(filename)); intwhitePixelsCount = 10000; PointDetectedCenter = newPoint(0, 0); for (int i = 0; i <Centers_X.Count; i++) intfalsePixelsCount = Anding((Bitmap)pictureBox1.Image, mask, Centers_X[i], Centers_Y[i]); if (falsePixelsCount<whitePixelsCount) whitePixelsCount = falsePixelsCount; DetectedCenter.X = (int)Centers_X[i]; DetectedCenter.Y = (int)Centers_Y[i]; intstartIndx = filename.IndexOf(''); intendIndx = filename.IndexOf('.'); string substring = filename.Substring(startIndx + 1, endIndx - (startIndx + 1)); Dictionary.Add(substring, DetectedCenter); listBox1.Items.Add(substring + " : Center( " + DetectedCenter.X.ToString() + "," + DetectedCenter.Y.ToString() + ")"); publicBitmapMeanAvg(Bitmap b1) BitmapbSrc = newBitmap(b1.Width, b1.Height); // GDI+ still lies to us - the return format is BGR, NOT RGB. BitmapDatabmData = b1.LockBits(newRectangle(0, 0, b1.Width, b1.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); BitmapDatabmSrc = bSrc.LockBits(newRectangle(0, 0, bSrc.Width, bSrc.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); int stride = bmData.Stride; System.IntPtr Scan0 = bmData.Scan0; System.IntPtr SrcScan0 = bmSrc.Scan0;
  10. 10. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 45 List<int>pixlval = newList<int>(); unsafe byte* p = (byte*)(void*)Scan0; byte* pSrc = (byte*)(void*)SrcScan0; intnOffset = stride - b1.Width * 3; boolremoveMe = false; for (int y = 2; y < b1.Height-2; y++) for (int x = 2; x < b1.Width-2; x++) if (p[0] == 255) for (int s = (-1 * stride); s <= (stride); s += stride) for (int t = (-3); t <= ( 3); t += 3) //if ((p + s + t)[0] == 255) // removeMe = true; pixlval.Add((p + s + t)[0]); pixlval.Sort(); pSrc[0] = (byte)(pixlval[5]); pSrc[1] = (byte)(pixlval[5]); pSrc[2] = (byte)(pixlval[5]); //if(removeMe) //{ // pSrc[0] = pSrc[1] = pSrc[2] = (byte)(0); //} p += 3; pSrc += 3; pixlval.Clear(); p += nOffset; pSrc += nOffset; b1.UnlockBits(bmData); bSrc.UnlockBits(bmSrc); returnbSrc; publicBitmap Negative(Bitmap b) // GDI+ still lies to us - the return format is BGR, NOT RGB. BitmapDatabmData = b.LockBits(newRectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); int stride = bmData.Stride;
  11. 11. International Journal of Mechanical Engineering and Technology (IJMET), ISSN 0976 – 6340(Print), ISSN 0976 – 6359(Online), Volume 5, Issue 6, June (2014), pp. 36-46 © IAEME 46 CONCLUSION This paper describes how a robotic scrub nurse has been developed to assist human scrub nurses (also called delivery scrub nurses) during surgical interventions. The developed system in this work is equipped with a speech recognition module to recognize the requested surgical tools; Arduino control system used to locates this element on a storage tray using computer vision and pattern recognition and picks the element from the tray placing it on an interchange tray where the surgeon can finally use this tool. The robotic scrub nurse gave a good example as a new application of Arduino microcontroller board. REFERENCES [1]. Alan G. Smith, “Introduction to Arduino”, September 30, 2011. [2]. Amit Saha, “Learning to Program the Arduino”, Linux journal, Mar 26, 2012. [3]. Mithun George Jacob, Yu-Ting Li, etl, “Collaboration with a Robotic Scrub Nurse”, Communications of the ACM, May 2013. Vol.56, No.5, Pages 68-75. [4]. Anna Kochan, “Robots offer significant advantages for white goods manufacturers”, Industrial Robot: An International Journal, Vol. 32 Iss: 3, pp. 223-225, 2005. [5]. Wachs, J.P., Kolsch, etl, “Future surgeons may use robotic nurse, ‘gesture recognition” Communications of the ACM Vol. 54 No. 2, pg. 60-71, February 4, 2011. [6]. Joelle Pineaua, Michael Montemerloa, etl,” Towards robotic assistants in nursing homes: Challenges and results” ELSEVIER, Robotics and Autonomous Systems 42 (2003) 271–281. [7]. Documentation and demos of C++. [8]. Sajid M. Sheikh and Tshoganyetso Mangadi, “An Arduino Based Building Lights Management System”, International Journal of Electrical Engineering & Technology (IJEET), Volume 4, Issue 6, 2013, pp. 45 - 59, ISSN Print : 0976-6545, ISSN Online: 0976-6553. [9]. Srushti H. Bhatt, N. Ravi Prakash and S. B. Jadeja, “Modelling of Robotic Manipulator Arm”, International Journal of Mechanical Engineering & Technology (IJMET), Volume 4, Issue 3, 2013, pp. 125 - 129, ISSN Print: 0976 – 6340, ISSN Online: 0976 – 6359. [10]. Hameedah Sahib Hasan and Dr. P.Ramesh Babu, “Analysis and Control of Mobile Robot for Pipe Line Inspection”, International Journal of Mechanical Engineering & Technology (IJMET), Volume 4, Issue 5, 2013, pp. 1 - 9, ISSN Print: 0976 – 6340, ISSN Online: 0976 – 6359. [11]. Saifuldeenabed Jebur, Prabhat Kumar Sinha and Ishan Om Bhargava, “Advancement and Stimulation of Five Degree of Freedom Robot Lever Arm”, International Journal of Mechanical Engineering & Technology (IJMET), Volume 5, Issue 3, 2014, pp. 20 - 30, ISSN Print: 0976 – 6340, ISSN Online: 0976 – 6359.

×