Development of Self-Governing Robot that Communicates

14357 words (57 pages) Dissertation

13th Dec 2019 Dissertation Reference this

Tags: TechnologyArtificial Intelligence

Disclaimer: This work has been submitted by a student. This is not an example of the work produced by our Dissertation Writing Service. You can view samples of our professional work here.

Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of


A social robot is a self-governing robot that cooperates and speaks with people or different self-governing physical specialists by taking after social practices and principles connected to its part. This definition proposes that a social robot must have a physical exemplification (screen characters would be barred).

Jarvis is a social robot that reacts to the orders entered by the client. It utilizes some inherent summons which are handled at backend by Google cloud Speech API. It is absolutely expand on Raspberry pi. It performs activities like essential walk, reaction to the given charges and so on. There are numerous robots which are expand on different supplies yet fabricating a robot utilizing Raspberry pi have many focal points as it is very adjustable, simplicity of control and so on. This model assists in building the robots with cutting edge highlights like multitasking and furthermore a portion of the elements of OS as we can run working framework in Raspberry pi. It makes utilization of the ideas of IoT and furthermore control the IoT based brilliant items with voice orders. There are many points of interest of this robot like individual help, performing huge figuring. The major diligent work of people can be supplanted. It is absolutely easy to use and responds as per the client. Python dialect is utilized to interpret the guidelines by client to control the developments of the robot and execution in light of the voice charges. As python is profoundly utilized and deciphered dialect, making utilization of it in Raspberry pi to control the equipment and programming is the best.














1.1 Motivation

The main aim of this project is to simulate the basic actions performed by humans like body movements, communication, basic processing etc. As we know, now-a-days there are many robots in the existence, which helps man in working huge tasks like machine designing, Nano material designing etc. Now our task is to build a mini robot which interacts with humans, process the queries given by the humans and finally responding to those queries with a suited answer. It also performs basic human action like walking.

Consider an example, of a person who is making communication with this robot. The communication with the robot will be in the form of voice. The analogue voice received by the mic of the robot will be converted to digital. Thus the digital voice is analysed by the robot, transfers it into its understandable language and process it. So if he/she asks the robot to say the temperature at that place, it process it the query in the language it was coded, and fetch the result from the global servers for the user.

  1. Problem Definition

Though the attempts and the research is done by the robot researchers to match the human intelligence but the result is not achieved. Most of the robots which are existing now still cannot see and are not flexible enough to do multiple functions simultaneously. To achieve the Efficient mechanism of the robotics it is very essential to prioritize the ineffectiveness associated in it. Though the wide use of robots will take way the human jobs and it will increase the unemployment in the society.

The initiation should be done in a systematic order as the use of robotics for every aspect will reduces the jobs for human being. The manufacturing of robots will help in various sectors like military, agriculture, health, education and so on. This will lead to robots as helpers in the work stations with some balance between the what is required and the greed. The society also should encourage for the improvements in the robotics technology as it will be benefited for the human being and for the various sectors of an economy.

Many tasks which are unable to perform by the human being can be performed with the help of robotics and plays a major role in the war by its operations. The improvement of robotic technology will take away the human jobs so to solve the issues which are related to this the usage of robots should be assigned only for the selected tasks and most preferably should be used where the human is not capable of performing the task.

Recently some robots are developed which uses a screen to display the robots head. Such type of machine is on the borderline of being a robot. If the body only performs the functions as a holder for the screen then it can’t be considered as a robot. In the event that the robot has some physical engine and the sensor capacities then it can be considered as a robot.

1.3 Objective of The Project

The main objective is to develop and enhance the science of Robotics and to educate about the responsible usage of a robot. Understanding and Identification of the risk in artificial intelligence is a very essential task at hand. This helps in resolving the problems at hand. Careful research and should have more dedication to resolve the programming errors and the cyber-attacks. To achieve the quality of software more attention should be played by the technology companies and the technology industries. Everything which have been created till now in this world is the result of the intelligence. The Artificial Intelligence will augment and empowers the human intelligence. We can help this human civilization if we are successful in keeping technology beneficial.

  • To eradicate poverty and hunger from human race.
  • Satisfies all the human needs.
  • Provides Interaction with the user to fulfil the user requirements through voice commands.
  1.  Limitations of The Project

Creation of robot requires more cost as they are very complex. The software in it should be frequently updated to cope up with the needs of the changing environment and the need for the robots to be smarter day by day. It requires long time to recover the codes and to re-install all the software when it undergoes a severe damage. The robots do not have feelings like human beings as it performs what is programmed in it and cannot make the argument of right or wrong. They are unable to take their own decisions when they come across a situation which is not familiar to them so they either process incorrectly or breakdown in such situations.

  • Manufacturing a robot requires huge cost as they are complex machines.
  • Robots do not have any emotions and moral values.
  • There will be no improvement with experience.
  • Originality of creative mind as human beings is not possible.
  • Destructs the creative mind of the human by high usage of robots.

It stores huge volumes of data but the way the data is accessed and used is very different from the human beings. They are unable to change their responses to the modifying environments. There is nothing like working whole heartedly as of human beings. There is no sense of human touch. They make fail to differentiate between the hardworking and inefficient individual. They can just help you to design and create but it does not match with the power of thinking as of human intelligence. Humans will become lazy as they prefer to do every task by robots and lose their creative thinking.

  1. Organization of Documentation

1.5.1 Feasibility Study

Feasibility study helps us to know how and so what extent the project will be useful for the organization. The Project will be evaluated based on the operation of the project. Whether the way the project operates are useful to organization. Next project will be based on the economy i.e.  the cost to be spend on the project, resources required for successful running of the project.

Based on the below mentioned types of feasibilities the feasibility study for the project will be done.  They are

  • Operational feasibility
  • Technical feasibility
  • Economic feasibility

1.5.2 Operational Feasibility

Under the operational feasibility how the project will be operated will be tested. From this we can know to what extent our projects will be operated and what are the important operations will be there in our project will be tested.

  • How the project interacts with user

Our project is very friendly with user. User only needs minimum English skills to     work with our project. If any error done by the user it will be shown to the user with an error message.

  • Reliability

The reliability of the project is very high. For every module completed it will be      visible to the user and if any error done will also visible to the user and by seeing this he/she can do the necessary modifications.

  • Security

Any user can use this project. But care is taken that he/she cannot modify the internal code or the dataset information.

  • Availability

The project works in offline mode. Hence it can be accessed at any time.

1.5.3. Technical Feasibility

Technical feasibility is mainly concentrated on the technologies used to develop the project. It mainly focuses on the platform used to develop the project. What are hardware and software that the project can run.

  • Do the technology used is available in the market?
  • Is the technology used can handle all the users working in the organization?
  • Whether the technology use is reliable to users?
  • If the number of users in the organization increases then do the technology used can be updated?
  • Can extra extensions be added to the present technology used?
  • Based on the changing time can the technology be updated?

1.5.4. Economic Feasibility

The economic feasibility helps the organization to find how effective the project is based on the economic principles. By the economic feasibility one can answer the following questions:

  • What are the economic resources used in the project?
  • By using which technology, we can reduce the cost of the project?









2.1 Existing System

In the existing system, the creation of robot requires huge cost. They need frequent updating in the software to cope up with the needs of the changing environment. In case of the severe breakdowns, the procedure to recover the lost codes and to re-install the system takes more time and cost. It cannot interact with the human beings and they are not yet perfected.

2.2 Disadvantages of Existing System

1. Huge cost

2. No replicating humans

3. No improvement with experience

2.3 Proposed System

In the proposed system, there is no need of software updating and it automatically get updated according to the changing environment. It can react with humans and responds to them to fulfil their requirements. They can their own decisions in case if they encounter any situation which is unfamiliar to them.










Requirements specification for a system is a complete description of the behaviour of a system to be developed. The requirement specification document enlists all necessary requirements that are required for the project development.

3.1 Hardware Requirements

  • Arduino Uno R3
  • Raspberry pi 3 model B
  • Bread Board
  • L293 or SN755410 motor driver chip
  • Jump cables
  • Servo motors
  • Power Source Power Bank

3.3 Hardware Requirements

3.3.1 Arduino UNO

The Arduino Uno is a microcontroller board in view of the ATmega328 (datasheet). It has 14 computerized input/output pins (of which 6 can be utilized as PWM outputs), 6 simple inputs, a 16 MHz crystal oscillator, a USB association, a power jack, an ICSP header, and a reset catch. It contains everything expected to bolster the microcontroller; just associate it to a PC with a USB link or power it with an AC-to-DC connector or battery to begin. The Uno contrasts from every single going before board in that it doesn’t utilize the FTDI USB-to-serial driver chip. Rather, it includes the Atmega8U2 modified as a USB-to-serial converter

Uno” implies one in Italian and was denoted the arrival of Arduino Software (IDE) 1.0. The Uno board and form 1.0 of Arduino Software (IDE) were the reference adaptations of Arduino, now advanced to more current discharges. The Uno board is the first in a progression of USB Arduino sheets, and the reference demonstrate for the Arduino stage; for a broad rundown of present, past or obsolete sheets see the Arduino list of sheets.




C:UsersMohanDesktopNew Picture.bmp

Components Used

  • Arduino UNO
  • Vibration Sensor
  • GPS Receiver
  • GSM Module
  • 12V Battery
  • 16*2 LCD module JHD 162A






Component Description

Technical Specifications

  1. Microcontroller   –  ATmega328
  2. Operating Voltage   – 5V
  3. Input Voltage (recommended)     – 7-12V
  4. Input Voltage (limits)               –  6-20V
  5. Digital I/O Pins         – 14 (of which 6 provide PWM output)
  6. Analog Input Pins        –      6
  7. DC Current per I/O Pin       – 40 mA
  8. DC Current for 3.3V Pin      – 50 mA
  9. Flash Memory         – 32 KB of which 0.5 KB used by boot loader
  10. SRAM                        – 2 KB
  11. EEPROM                  – 1 KB

Arduino Physical Structure

The Arduino Uno can be controlled by means of the USB association or with an outer power supply. The power source is chosen consequently. Outside (non-USB) power can come either from an AC-to-DC connector or battery. The connector can be associated by plugging a 2.1mm focus positive connect to the board’s power jack. Leads from a battery can be embedded in the Gnd and Vin stick headers of the POWER connector. The board can work on an outer supply of 6 to 20 volts. On the off chance that provided with under 7V, in any case, the 5V stick may supply under five volts and the board might be temperamental. In the event that utilizing more than 12V, the voltage controller may overheat and harm the board. The prescribed range is 7 to 12 volts. The power pins are as per the following:

• VIN. The input voltage to the Arduino board when it’s using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.

• 5V. The regulated power supply used to power the microcontroller and other components on the board. This can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.

• 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.

• GND. Ground pins.

Each of the 14 digital pins on the Uno can be used as an input or output, using pin Mode (), digital Write (), and digital Read () functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50K ohms. In addition, some pins have specialized functions:

• Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.

• External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attach Interrupt () function for details.

• PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analog Write () function.

• SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication, which, although provided by the underlying hardware, is not currently included in the Arduino language.

• LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it’s of There are a couple of other pins on the board: • AREF. Reference voltage for the analog inputs. Used with analog Reference (). • Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board.

3.3.2 Raspberry pi 3 model B

The Raspberry pi is a single computer board which is developed to encourage and aid the teaching of programming and computing. For the development of IoT projects it a good starting point. The board is accessible to all and have the lot of connectivity options in it. Raspberry pi is a perfect experimental tool which we can use it as a desktop computer, media centre, server or security device within your home. Linux based operating system can be run on raspberry pi board with having a plenty of access to free software and downloads. The power supply unit is not for general purpose power supply as it has a unique power supply from pi 3 power supply unit. You can get connected to it easily without the help of any external device. The pi 3 brings more processing capability and also saves your time with the development of your applications.

The Raspberry Pi 3 is the third generation Raspberry Pi. It replaced the Raspberry Pi 2 Model B in February 2016. Compared to the Raspberry Pi 2 it has:

  • A 1.2GHz 64-bit quad-core ARMv8 CPU
  • 802.11n Wireless LAN
  • Bluetooth 4.1
  • Bluetooth Low Energy (BLE)

Like the Pi 2, it also has:

  • 1GB RAM
  • 4 USB ports
  • 40 GPIO pins
  • Full HDMI port
  • Ethernet port
  • Combined 3.5mm audio jack and composite video
  • Camera interface (CSI)
  • Display interface (DSI)
  • Micro SD card slot (now push-pull rather than push-push)
  • Video Core IV 3D graphics core

The Raspberry Pi 3 has an identical form factor to the previous Pi 2 (and Pi 1 Model B+) and has complete compatibility with Raspberry Pi 1 and 2.

3.3.3 Bread Board

A breadboard is a construction base for prototyping of electronics. There are several rows of holes for components. It is a tool for holding the components of your circuit and connecting them together. The holes on the breadboard are separated by 0.1-inch spaces and are organized in many short rows in the centre and in two long rows down each side of the board.



3.3.4 L293

The L293 is a coordinated circuit engine driver that can be utilized for synchronous, bi-directional control of two little engines. Little means little. The L293 is constrained to 600 mA, however truly can just deal with much little streams unless you have done some genuine warmth sinking to hold the case temperature down. Uncertain about whether the L293 will work with your engine? Attach the circuit and run your engine while keeping your finger on the chip. On the off chance that it gets excessively hot, making it impossible to touch, you can’t utilize it with your engine. (Note to ME2011 understudies: The L293 ought to be OK for your little engine however is not OK for your rigging engine.)

The L293 arrives in a standard 16-stick, double in line coordinated circuit bundle. There is a L293 and a L293D part number. Pick the “D” variant since it has worked in flyback diodes to limit inductive voltage spikes. The L293D can be bought for somewhere close to $2 and $3

The pin out for the L293 in the 16-pin package is shown below in top view. Pin 1 is at the top left when the notch in the package faces up. Note that the names for pin functions may be slightly different than what is shown in the following diagrams.

Jump wires

A jump wire is an electrical wire or gathering of them in a link with a connector or stick at each end, which is ordinarily used to interconnect the parts of a breadboard or other model or test circuit, inside or with other hardware or segments, without binding. Singular jump wires are fitted by embeddings their “end connectors” into the openings gave in a breadboard, the header connector of a circuit board, or a bit of test hardware.



4 Software Requirements

Coding Languages  :   Python, Java, C

Operating System  :   Windows XP/8, Linux

API’s             :    Amazon Alexa API, Google Voice API

4.1 Python

Python is an open source general purpose programming language. It is dynamic, interpreted and object oriented programming language and has great interactive environment. There are no type declarations of variables, parameters, functions, or methods in the source code. This makes the code short and flexible, and you lose the compile-time type checking of the source code. Python tracks the types of all values at runtime and flags code that does not make sense as it runs. It was developed by Guido van Rossum during 1985- 1990. The source code is available in the GNU Public License (GPL).

Features of Python

1.Easy to learn: Python has some keywords, simple structure and a clearly structured syntax and this allows the learners to learn the language quickly.

2. Easy to read: Python code is more clearly defined and visible to the eyes.

3.Easy to maintain: It is very easy to maintain.

4. Broad Standard Library: Python’s library is very portable and cross platform on UNIX and windows.

5. Interactive mode: Python supports interactive mode which allows users interactive testing and debugging of snippets of code.

6. Portable: Python can run on a wide variety of hardware platforms and all the platforms has same interface.

7. Extendable: Low level modules can be added to the python interpreter. These modules make the programmers to add or to customize their tools to be more efficient.

8. Databases: It provides interfaces to all the major commercial databases.

9. GUI Programming: It supports GUI applications that can be created and ported to many system calls, libraries and windows systems.

10. Scalable: It provides a good structure and support for large programs than shell scripting.

Python Identifiers

Python Identifier is a name which is used to identify the variables, classes, functions, modules or other objects. It always starts with an alphabet from A to Z or from a to z or an underscore (_) followed by zero or more letters. It does not allow characters such as @, #, $ and %. Python is a case sensitive programming language.

Naming conventions for Python Identifiers

  • Class name should start with an uppercase letter. All other identifiers should start with lowercase letter.
  • Starting an identifier with an underscore specifies that the identifier is private.
  • Starting an identifier with two underscores specifies that the identifier is strongly private.
  • If an identifier ends with two underscores, the identifier is a language defined special name.









All the python keywords contain lower case letters only. There are thirty keywords in python.




























Basic program in Python

numb = 407

if numb > 1:

   # check for factors

   for I in range (2, numb):

       if (numb % I) == 0:

           print (numb, “is not a prime number”)




       print(numb,”is a prime number”)


# if input number is less than

# or equal to 1, it is not prime


print(num,”is not a prime number”)







Python CGI Programming

CGI is a common gateway interface which is a standard for external gateway programs to interface with information servers such as HTTP servers.

Web Browsing

For better understanding the concept of CGI, let us see what happens when we click a hyperlink to browse a particular web page or URL.

  • The browser contacts the http server and requests for the URL
  • The web server phrases the URL and searches for the particular filename. If the file is found then it sends back to the browser. If not it sends an error message specifying that you requested a wrong file.
  • The web browser receives response from the web server and displays either the received file or an error message.

CGI Architecture Diagram

Web server

Web Client

Server side script


Http Protocol

CGI Environmental Variables

1.CONTENT_TPYE: The data type of the content. It is used when the client sends an attached content to the server.

Example: File Upload

2.CONTENT_LENGHT: The length of the query information. It is available for POST requests.

3.HTTP_COOKIE: It returns the set cookies in the form of key and value pair.

4.HTTP_USER_AGENT: The request header in the User-Agent contains information about the user agent who is sending the request.

5.PATH_INFO: Provides path way for the CGI script.

6.QUERY_STRING: The encoded URL information that is sent with GET method request.

7.REMOTE_ADDR: It is the IP address of the remote host which is making the request. It is used for authentication.

8.REMOTE_HOST: It provides the qualified name of the host which is making the request and if that information is not available with it then it can be used to get IR address.

9.REQUEST_METHOD: This request method is used to make the request. Mostly used common request methods are GET and POST.

10.SCRIPT_FILENAME: It provides full path way to the CGI script.

11.SCRIPT_NAME: It provides the name of the CGI script.

12.SERVER_NAME: The host name or the IP address of the sever.

13.SERVER_SOFTWARE: The name and version of the software which the server is currently running.








Using Cookies in CGI

HTTP is a stateless protocol. For a commercial website, it is necessary to maintain session information among the different web pages. In most of the situations, using cookies is the most efficient method of remembering and tracking purchases, preferences, commissions and other information required for best visiting experience.

Cookies is a plain text data record of five variable length fields:

1.Expires: The expiry date of the cookie. If it is blank the cookie will expire when the  visitor exits from the browser.

2.Domain: The domain name of the site which are currently using.

3.Path: The directory to the page that sets the cookie. This maybe empty if you want  to retrieve the cookie from any directory.

4.Secure: If this field consists the word “secure”, then the cookie may only be  retrieved  with a secure server.

5.Name=Value: Cookies are set and retrieved in the form of key and value pairs.


4.2 C++


C++ is a middle level programming dialect introduced by Bjarne Stroustrup beginning in 1979 at bell Labs. C++ keeps running on an assortment of stages, for example, Windows, Macintosh OS, and the different renditions of UNIX.

C++ is a super set of C language and it is both structural and object oriented programming language. There are four oops concepts.

1. Encapsulation

2. Data Hiding

3. Inheritance

4. Polymorphism


Encapsulation is an idea that ties together the information and capacities that control the information, and that keeps both safe from outside obstruction and abuse. Information encapsulation prompted the imperative OOP idea of information stowing away.

Information Encapsulation is a component of packaging the information, and the capacities that utilization them and information deliberation is an instrument for uncovering just the interfaces and concealing the usage subtle elements from the client.

C++ bolsters the properties of embodiment and information stowing away through the formation of client characterized sorts, called classes. We as of now have concentrated that a class can contain private, ensured and open individuals. As a matter of course, all things characterized in a class are private.


      2. Data Hiding

Data Hiding is a product improvement procedure particularly utilized as a part  of question situated programming (OOP) to stow away inner protest points of interest               (information individuals). It up guarantees elite information access to class               individuals and secures question respectability by forestalling unintended or proposed               changes.

3. Inheritance

Acquiring the properties from parent class to child class is known as  Inheritance. Parent class is also called as Super Class and Child Class is also               known as Sub Class. It also means that deriving the features from one class to               another class.

4. Polymorphism

Polymorphism can be defined as one thing represented in many forms when  there is a hierarchy of classes. C++ polymorphism means that a call return to a               member function will cause a different function to be executed depending on the type               of  the object that invokes the function.

Standard Libraries





It consists of three parts.

  • The center dialect giving all the building blocks including factors, information sorts,  and literals, and so on.
  • The C++ Standard Library giving a rich arrangement of capacities controlling documents, strings, and so on.
  • The Standard Template Library (STL) giving a rich arrangement of strategies controlling information structures, and so forth.

ANSI Standard

The ANSI standard is an endeavour to guarantee that C++ is versatile – that code you compose for Microsoft’s compiler will assemble without mistakes, utilizing a compiler on a Macintosh, UNIX, a Windows box, or an Alpha.

The ANSI standard has been steady for some time, and all the major C++ compiler makers bolster the ANSI standard.

The essential thing to do when learning C++ is to concentrate on ideas and not lose all sense of direction in dialect specialized points of interest.

The reason for taking in a programming dialect is to improve as a software engineer; that is, to end up noticeably more compelling at planning and actualizing new frameworks and at keeping up old ones.


Basic C++ Architecture


 Local Environment Setup

Text Editor

This will be utilized to sort your program. Cases of couple of editors  incorporate Windows Scratch pad, OS Alter charge, Brief, Epsilon, EMACS, and vim               or vi.

Name and form of word processor can shift on various working frameworks. For  instance, Scratch pad will be utilized on Windows and vim or vi can be utilized on               windows and also Linux, or UNIX.

The documents you make with your proof reader are called source records and for  C++ they normally are named with the augmentation .cpp, .cp, or .c.

When we consider a C++ program, it can be characterized as an accumulation of articles that convey by means of conjuring each other’s strategies. Let us now quickly investigate what do class, object, methods and Instance variables mean.


Object − Objects have Properties and Practices.

Example: A puppy has Properties – shading, name, breed and additionally Practices – swaying, woofing, eating. A protest is an occurrence of a class.

Class − A class can be characterized as a layout/diagram that depicts the practices/expresses that protest of its sort bolster.

Methods − A Method is essentially a conduct. A class can contain numerous techniques. It is in techniques where the rationales are composed, information is controlled and every one of the activities are executed.

Instance Variables − Each object has its one of a kind arrangement of example factors. A protest’s state is made by the qualities relegated to these occasion factors.

C++ Identifiers

A C++ identifier is a name used to distinguish a variable, work, class, module, or some other client characterized thing. An identifier begins with a letter start to finish or beginning to end or an underscore (_) trailed by at least zero letters, underscores, and digits (0 to 9).

C++ does not permit accentuation characters, for example, @, $, and % inside identifiers. C++ is a case-delicate programming dialect. Hence, Labor and labor are two distinct identifiers in C++.





Primitive Built-in Types


Type Keyword
Boolean bool
Character char
Integer int
Floating point float
Double floating point double
Valueless void
Wide character wchar_t


Dev C++

Dev-C++ is a free full-included coordinated improvement condition (IDE) conveyed under the GNU Overall population Permit for programming in C and C++. It is composed in Delphi.

It is packaged with, and utilizes, the MinGW or TDM-GCC 64bit port of the GCC as its compiler. Dev-C++ can likewise be utilized as a part of blend with Cygwin or whatever other GCC-based compiler.

Dev-C++ is for the most part considered a Windows-just program, yet there are endeavours to make a Linux variant: header records and way delimiters are switchable between platforms.


An additional part of Dev-C++ is its utilization of DevPaks: bundled expansions on the programming condition with extra libraries, formats, and utilities. DevPaks regularly contain, however, are not restricted to, GUI utilities, including prevalent toolboxes, for example, GTK+, wxWidgets, and FLTK. Different DevPaks incorporate libraries for more propelled capacity utilize. Clients of Dev-C++ can download extra libraries, or bundles of code that expansion the degree and usefulness of Dev-C++, for example, design, pressure, liveliness, sound support and a great deal more. Clients can make Devpaks and host them for nothing on the site. Likewise, they are not constrained to use with Dev-C++ – the site says “A regular Devpak will work with any MinGW dispersion (with any IDE for MinGW)”.

Development Status

From February 22, 2005 to June 2011 the venture was not discernibly dynamic, with no news posted nor any refreshed forms discharged. In a 2006 gathering post, lead designer Colin Laplace expressed that he was occupied with genuine issues and did not have sufficient energy to proceed with improvement of Dev-C++.

There are two forks of Dev-C++ from that point forward: wxDev-C++ and the Orwell variant.

wxDev-C++ is an advancement group that has taken Dev-C++ and included new elements, for example, bolster for numerous compilers and a RAD planner for wxWidgets applications.

On June 30, 2011 an informal adaptation of Dev-C++ was discharged by Orwell (Johan Mes), an autonomous programmer, including the later GCC 4.5.2 compiler, Windows’ SDK assets (Win32 and D3D), various bugfixes, and enhanced steadiness. On August 27, following five years of formally being in a beta stage, rendition 5.0 was released. This variant additionally has its own different SourceForge page since adaptation, in light of the fact that the old designer isn’t reacting to joining demands. On July 2014, Orwell Dev-C++ 5.7.1 was discharged highlighting the later GCC 4.8.1 which underpins C++11.














Eclipse is an incorporated improvement condition (IDE) utilized as a part of PC programming and is the most generally utilized Java IDE. It contains a base workspace and an extensible module framework for modifying the earth. Eclipse is composed generally in Java and its essential utilize is for creating Java applications, however it might likewise be utilized to create applications in other programming dialects by means of modules, including Ada, ABAP, C, C++, COBOL, D, Fortran, Haskell, JavaScript, Julia, Tether, Lua, Common, Perl, PHP, Prolog, Python, R, Ruby (counting Ruby on Rails structure), Rust, Scala, Clojure, Sweet, Plan, and Erlang. It can likewise be utilized to create archives with LaTeX (through a TeXlipse module) and bundles for the product Mathematica. Advancement conditions incorporate the Obscuration Java improvement apparatuses (JDT) for Java and Scala, Overshadow CDT for C/C++, and Obscure PDT for PHP, among others.


The underlying codebase began from IBM VisualAge. The Eclipse programming advancement unit (SDK), which incorporates the Java improvement devices, is implied for Java engineers. Clients can expand its capacities by introducing modules composed for the Obscuration Stage, for example, advancement toolboxs for other programming dialects, and can compose and contribute their own module modules. Since Equinox, modules can be stopped halted powerfully and are named (OSGI) bundles.

Eclipse programming advancement pack (SDK) is free and open-source programming, discharged under the terms of the Shroud Open Permit, despite the fact that it is contradictory with the GNU Overall population License. It was one of the principal IDEs to keep running under GNU Classpath and it keeps running without issues under IcedTea.


Eclipse was enlivened by the D PCs based VisualAge group of incorporated advancement condition (IDE) products. Although genuinely fruitful, a noteworthy disadvantage of the VisualAge items was that created code was not in a part based programming designing model. Rather, all code for a venture was held in a compacted irregularity (to some degree like a compressed document yet in a restrictive configuration called .dat). Singular classes couldn’t be effortlessly gotten to, positively not outside the instrument. A group principally at the IBM Cary NC lab built up the new item as a Java-based replacement. In November 2001, a consortium was shaped with a leading group of stewards to promote the advancement of Eclipse as open-source programming. It is assessed that IBM had as of now contributed about $40 million by that time. The first individuals were Borland, IBM, Merant, QNX Programming Frameworks, Sound Programming, Red Cap, SuSE, TogetherSoft, and WebGain. The quantity of stewards expanded to more than 80 before the finish of 2003. In January 2004, the Overshadowing Establishment was created.

Eclipse 3.0 (discharged on 21 June 2004) chose the OSGi Benefit Stage determinations as the runtime architecture.

The Relationship for Processing Hardware perceived Shroud with the 2011 ACM Programming Frameworks Grant on 26 April 2012.


The Eclipse Public Liscense (EPL) is the basic permit under which Eclipse activities are released. A few tasks require double authorizing, for which the Eclipse Conveyance Permit (EDL) is accessible, in spite of the fact that utilization of this permit must be connected for and is considered on a case-by-case premise.

Eclipse was initially discharged under the Regular Open Permit, yet was later re-authorized under the Overshadowing Open Permit. The Free Programming Establishment has said that both licenses are free programming licenses, however are contrary with the GNU Overall population Permit (GPL).


Eclipse utilizes plugins to give all the usefulness inside and on top of the runtime framework. Its runtime framework depends on Equinox, an execution of the OSGi framework specification.

Notwithstanding permitting the Eclipse platform to be augmented utilizing other programming dialects, for example, C and Python, the plug-in framework permits the Eclipse platform to work with typesetting dialects like LaTeX and systems administration applications, for example, telnet and database administration frameworks. The module engineering bolsters composing any coveted augmentation to nature, for example, for setup administration. Java and CVS support is given in the Eclipse SDK, with support for other form control frameworks gave by outsider modules.

Except for a little run-time piece, everything in Eclipse is a module. Along these lines, each module created coordinates with Eclipse in an indistinguishable path from other modules; in this regard, all components are “made equal”.[citation needed] Eclipse gives modules to a wide assortment of elements, some of which are from outsiders utilizing both free and business models. Cases of modules incorporate for Brought together Displaying Dialect (UML), for Succession and other UML outlines, a module for DB Pioneer, and some more.

The Eclipse SDK incorporates the Eclipse Java improvement devices (JDT), offering an IDE with an inherent Java incremental compiler and a full model of the Java source records. This takes into consideration progressed refactoring methods and code investigation. The IDE likewise makes utilization of a workspace, for this situation an arrangement of metadata over a level filespace permitting outer record changes the length of the relating workspace asset is invigorated a while later.

Obscure executes the graphical control components of the Java toolbox called Standard Gadget Tool compartment (SWT), though most Java applications utilize the Java standard Dynamic Window Tool compartment (AWT) or Swing. Overshadowing’s UI likewise utilizes a middle of the road graphical UI layer called JFace, which streamlines the development of uses in light of SWT. Overshadowing was made to keep running on Wayland amid a Google Summer of Code (GSoC) Extend in 2014.

Starting at 2017, dialect packs being created by the Babel Extend give interpretations into more than 40 normal languages.

Rich Client Platform

Eclipse gives the Rich Client Platform (RCP) for creating universally useful applications. The accompanying parts constitute the rich customer stage:

  • Equinox OSGI – a standard bundling framework
  • Core platform – boot Eclipse, run plug-ins
  • Standard Widget Toolkit(SWT) – a portable widget toolkit
  • JFace – viewer classes to bring model view controller programming to SWT, file  buffers, text handling, text editors
  • Eclipse Workbench – views, editors, perspectives, wizards


  • Remote Component Environment
  • Attachmate-Novell NetIQ Designer for Identity Manager
  • IBM Notes 8 and 9
  • Apache Directory Studio



Server Platform

Eclipse supports advancement for Tomcat, GlassFish, and numerous different servers and is frequently fit for introducing the required server (for improvement) straightforwardly from the IDE. It supports remote investigating, permitting a client to watch factors and venture through the code of an application that is running on the connected server.


Web Tools Platform

The Eclipse Web Tools Platform (WTP) venture is an expansion of the Eclipse stage with devices for creating Web and Java EE applications. It incorporates source and graphical editors for an assortment of dialects, wizards and implicit applications to streamline advancement, and instruments and APIs to bolster conveying, running, and testing applications.


Modeling  Platform

The Modeling project contains all the official undertakings of the Eclipse Establishment concentrating on model-based advancement innovations. All are perfect with the Eclipse Displaying System made by IBM. Those activities are isolated in a few classifications: Show Change, Demonstrate Advancement Devices, Solid Language structure Improvement, Conceptual Punctuation Improvement, Innovation and Exploration, and Amalgam.

Display Change ventures utilizes Eclipse Modeling Framework (EMF) based models as an information and deliver either a model or content as a yield. Model to model change ventures incorporates ATLAS transformation Language (ATL), an open source change dialect and toolbox used to change a given model or to produce another model from a given EMF display. Model to content change ventures contains Acceleo, a usage of MOFM2T, a standard model to content dialect from the Object Management Group (OMG). The Acceleo code generator can produce any printed dialect (Java, PHP, Python, and so on.) from EMF based models characterized with any metamodel (Bound together Demonstrating Dialect (UML), Systems Modeling Language (SysML), and so on.). It is open-source.






4.3 IntelliJ IDEA

IntelliJ IDEA (articulated/ɪnˈtɛlɪdʒeɪ aɪˈdɪə/) is a Java incorporated improvement condition (IDE) for creating PC programming. It is produced by JetBrains (in the past known as IntelliJ), and is accessible as an Apache 2 Authorized people group edition, and in a restrictive business release. Both can be utilized for business advancement.

Overview of IntelliJ IDEA integration

Visual Paradigm empowers you to incorporate the visual demonstrating condition with IntelliJ IDEA, giving full programming improvement life cycle bolster. By planning your product framework in Visual Paradigm, you can create programming source code from class graph to an IntelliJ IDEA extend. Additionally, you can figure out your source code into class models in Visual Paradigm.

IntelliJ IDEA integration overview


The principal adaptation of IntelliJ IDEA was discharged in January 2001, and was one of the most readily accessible Java IDEs with cutting edge code route and code refactoring abilities integrated.

In a 2010 Infoworld report, IntelliJ got the most noteworthy test focus score out of the four top Java programming instruments: Overshadow, IntelliJ Thought, NetBeans and JDeveloper.

In December 2014, Google declared adaptation 1.0 of Android Studio, an open source IDE for Android applications, in light of the open source group version of IntelliJ IDEA. Other improvement conditions in view of IntelliJ’s structure incorporate AppCode, CLion, PhpStorm, PyCharm, RubyMine, WebStorm, and MPS.

System Requirements

Windows OS X Linux
OS Version Windows 10/8/7 x64 OS X 10.5 or higher, up to 10.11 (El Capitan) GNOME or KDE desktop
RAM 1 GB minimum; 4 GB or more recommended for Android development, or commercial production.
Disk space 300 MB hard disk space + at least 1 GB for caches
JDK Version JDK 1.8 since 2016.1[11]
Screen resolution 1024×768 minimum screen resolution



Coding support: Those IDE gives specific features similar to code fruition Toward dissecting the context, code route the place one camwood bounce should An class or revelation in the code directly, code refactoring and giving alternatives will settle inconsistencies by means of suggestions.

Built in tools and integration: The IDE provides to mix for build/packaging devices like grunt, bower, gradle, and SBT. It backs form control frameworks similar to GIT, Mercurial, Perforce, Also SVN. Databases like Microsoft SQL Server, ORACLE, PostgreSQL, Furthermore MySQL might be accessed straightforwardly starting with the IDE.

Plugin Ecosystem: IntelliJ helps plugins through which person might include extra purpose of the IDE. Particular case might download Also introduce plugins whichever starting with IntelliJ’s plugin repossess website alternately through IDE’s inbuilt plugin look Furthermore introduce characteristic. At present IntelliJ perfect Group version need 1495 plugins available, the place Concerning illustration the extreme release need 1626  plugins accessible.


4.4 PyCharm

PyCharm is an Integrated Development Environment used in computer programming, especially for python. It was developed by Czech company JetBrains. It provides code analysis, a graphical debugger, an integrated unit tester, integration with version control systems (VCSes), and supports web development with Django.

PyCharm is a cross-platform, with Windows, macOS and Linux versions. The Community Edition is released under the Apache License, and there is also Professional Editionreleased under a proprietary license – this has extra features.

Features of PyCharm

Coding support Furthermore Analysis, with code completion, syntax and error highlighting, linter integration, Furthermore fast fixes.

Project and code Navigation: particular venture views, document structure sees Furthermore fast bouncing between files, classes, routines What’s more usages.

Python Refactoring: including rename, extricate method, present variable, present constant, draw up, push down also how.

Help to web frameworks: Django, web2py Furthermore cup. Coordinated circuit Python debugger. Coordinated unit Testing, for line-by-line code scope. Google App motor Python advancement.

Adaptation control Integration: bound together client interface to Mercurial, Git, Subversion, Perforce and CVS for changelists Furthermore blend. It competes mostly with a number of different Python-oriented IDEs, including Eclipse’s PyDev, those All the more comprehensively concentrated Komodo IDE.


  • PyCharm Professional Edition has more license options, which differs in their features, price, and terms of use.
  • PyCharm Professional Edition is  free for open source projects and also for some educational uses.
  • An Academic license is discounted or free.
  • PyCharm Community Edition is distributed under Apache 2 license, with full source code available on GitHub.




4.5 Amazon Alexa API

The Alexa API allows the developers to voice-enable connected products with a speaker and micro phone. The built in capabilities of the Alexa are made accessible to the products. It consists of interfaces that correspond to client-functionality, like speech recognition volume control and audio playback. A login should be needed for the products along with access token to access to the Alexa API.

The Alexa Skills Kit is an accumulation of self-administration APIs, apparatuses, documentation and code tests that make it quick and simple for you to add aptitudes to Alexa. The greater part of the code keeps running in the cloud nothing is introduced on any client gadget. With the Alexa Skills Kit, you can make convincing, without hands voice encounters by adding your own particular aptitudes to Alexa. Clients can get to these new aptitudes on any Alexa-empowered gadget basically by asking Alexa a question or making a charge.

Alexa Voice Service (AVS) is a wise and versatile cloud benefit that adds voice-empowered encounters to any associated item. All you need is a mouthpiece and speaker. Clients can essentially converse with their Alexa-empowered items to play music, answer questions, get news and neighborhood data, control brilliant home items and that’s just the beginning. Furthermore, with the free Amazon Alexa application, clients can without much of a stretch control and deal with their items from anyplace. On the off chance that you are keen on adding rich and natural encounters to your items – Alexa is the correct decision for you.

The Alexa Fund named for Alexa, the cloud-based voice benefit that forces Amazon Echo- – gives up to $100 million in speculations to fuel voice innovation development. Regardless of whether that is making new Alexa capacities with the Alexa Skills Kit (ASK), building gadgets that utilization Alexa for new and novel voice encounters utilizing the Alexa Voice Service (AVS), or something else completely, in the event that you have a visionary thought, we’d love to converse with you.

History of Amazon Alexa

In November 2014, Amazon declared Alexa close by Echo. Alexa was propelled by the PC voice and conversational framework on board the starship Enterprise in sci-fi TV arrangement and motion pictures, starting with Star Trek TOS and Star Trek TNG. The name Alexa was picked because of the way that it has a hard consonant with the X and along these lines could be perceived with higher accuracy. The name is likewise guaranteed to be reminiscent of the Library of Alexandria. In June 2015, Amazon declared Alexa Fund, a program that would put resources into organizations making voice control abilities and innovations. The US$100M in assets has put resources into organizations including Ecobee, Orange Chef, Scout Alarm, Garageio, Toymail, MARA, and Mojio. In 2016 the Alexa Prize was reported to propel the innovation.



Architecture of Amazon Alexa

Amazon permits engineers to manufacture and distribute aptitudes for Alexa utilizing the Alexa Skills Kit. These abilities are outsider created voice encounters that add to the capacities of any Alexa-empowered gadget, (for example, the Echo). These aptitudes are accessible for nothing download utilizing the Alexa application. Cases of aptitudes incorporate the capacity to play music, answer general inquiries, set an alert, request a pizza, get a Uber, and that’s only the tip of the iceberg. Aptitudes are constantly being added to build the capacities accessible to the client.

The Alexa Skills Kit is a gathering of self-administration APIs, instruments, documentation and code tests that make it quick and simple for any engineer to add abilities to Alexa. Designers can likewise utilize the “Smart Home Skill API”, another expansion to the Alexa Skills Kit, to effortlessly show Alexa how to control cloud-controlled lighting and indoor regulator gadgets. The greater part of the code keeps running in the cloud – nothing is on any client gadget. An engineer can take after instructional exercises to figure out how to rapidly manufacture voice encounters for their new and existing applications

4.6 Google voice API

By applying powerful neural network models, Google Cloud Speech API enables the developers to convert from audio to text. The API recognizes over 80 languages and variants to support the global user base. You can transcribe the text of users dictating to an application’s microphone, enable command-and-control through voice or transcribe audio files among many other use cases.

Architecture of Google Voice API

Special features of  Google voice API

Speech to text conversion powered by machine learning

1.Automatic Speech Recognition

Automatic Speech Recognition (ASR) powered by deep learning neural networking to power your applications like voice search or speech transcription.

2.Global Vocabulary

Recognizes over 80 languages and variants with an extensive vocabulary.

3.Streaming Recognition

Returns recognition results while the user is still speaking.


4.Word Hints

Speech recognition can be modified to a particular setting by giving an arrangement of words and expressions that are probably going to be talked. Particularly helpful for adding custom words and names to the vocabulary and in voice-control utilize cases.

5.Real-time or Pre-recorded Audio Support

Audio input can be caught by an application’s amplifier or sent from a pre-recorded sound document. Various sound encodings are bolstered, including FLAC, AMR, PCMU and Linear-16.

6.Noise Robustness

Handles noisy audio from many environments without requiring additional noise cancellation.

7.Inappropriate Content Filtering

Filter inappropriate content in text results for some languages.


8.Integrated API

Audio files can be uploaded in the request or can be integrated with Google cloud storage.














5.Image Processing

In imaging science, picture preparing is handling of pictures utilizing numerical operations by utilizing any type of flag preparing for which the info is a picture, a progression of pictures, or a video, for example, a photo or video outline; the yield of picture handling might be either a picture or an arrangement of attributes or parameters identified with the picture. Most picture handling strategies include regarding the picture as a two-dimensional flag and applying standard flag preparing procedures to it. Pictures are likewise handled as three-dimensional signs with the third-measurement being time or the z-pivot.

Picture preparing for the most part alludes to advanced picture handling, yet optical and simple picture handling additionally are conceivable. This article is about general systems that apply to every one of them. The obtaining of pictures (creating the info picture in any case) is alluded to as imaging

Firmly identified with picture handling are PC design and PC vision. In PC design, pictures are physically produced using physical models of items, situations, and lighting, rather than being procured from characteristic scenes, as in most vivified motion pictures. PC vision, then again, is frequently viewed as abnormal state picture preparing out of which a machine/PC/programming plans to translate the physical substance of a picture or a succession of pictures.

In present day sciences and advancements, pictures likewise increase substantially more extensive degrees because of the steadily developing significance of logical perception. Cases incorporate microarray information in hereditary research, or ongoing multi-resource portfolio exchanging money


 UML Design

Identifiable object-oriented dialects started to show up between mid-1970 and the late 1980’s as different methodologists explored different avenues regarding diverse ways to deal with question situated examination and plan. The quantity of distinguished demonstrating dialects expanded from under 10 to more than 50 amid the period in the vicinity of 1989 and 1994. Numerous clients of OO techniques experienced difficulty finding complete fulfillment in any one demonstrating dialect, filling the “strategy wars”.

Prologue to UML

UML is a strategy for portraying the framework design in detail utilizing the diagram. UML speaks to an accumulation of best designing practices that have demonstrated fruitful in the displaying of huge and complex frameworks. The UML is essential parts of creating article arranged programming and the product advancement handle. The UML utilizes for the most part graphical documentations to express the plan of programming activities. Utilizing the UML ventures groups impart, investigate potential outlines, and approve the building plan of the product.Definition

The UML is a general purpose visual modelling language for

  • Visualizing
  • Specifying
  • Constructing
  • Documentation

UML is a dialect

It will give vocabulary and principles to correspondences and capacity on calculated and physical portrayal. So it is demonstrating dialect.

UML Specifying

Indicating implies building models that are exact, unambiguous and finish. Specifically, the UML address the determination of all the imperative examination, plan and execution choices that must be made in creating and showing a product concentrated framework.

UML Visualization

The UML incorporates both graphical and literary portrayal. It makes simple to picture the framework and for better understanding.



UML Constructing

UML models can be straightforwardly associated with an assortment of programming dialects and it is adequately expressive and free from any uncertainty to allow the immediate execution of models.

UML Documenting

UML gives assortment of archives furthermore crude executable codes.

Conceptual Model of UML

The three major elements of UML are,

  • The UML’s basic building blocks.
  • The rules that dictate how those building blocks may be put together.
  • Some common mechanisms that apply throughout the UML.

Goal of UML

The primary goals of UML in designing are,

  • Provides users with a ready to use, expressive visual modelling language so they can develop and exchange meaningful models.
  • Be independent of particular programming languages and development processes.
  • Encourage the growth of the OO tools market.
  • Integrate best practices.
  • Provide a formal basis for understanding the modelling language.
  • Support high-level development concepts such as collaborations, frameworks, patterns and components.

Rules of UML

The UML has semantic principles for

NAMES: It will call things, connections and diagrams.

SCOPE: The substance that gives indicates intending to a name.

VISIBILITY: How those names can be seen and utilized by others.

INTEGRITY: How things legitimately and reliably identify with another.

EXECUTION:  What it means is to run or reproduce a dynamic model.

Building squares of UML

The vocabulary of the UML incorporates 3 sorts of building pieces.

1. Things

2. Relationships

3. Diagrams


The bound together demonstrating dialect permits the product specialist to express an investigation show utilizing the displaying documentation that is administered by an arrangement of syntactic semantic and automatic ules. An UML framework is spoken to utilizing five unique perspectives the portray the framework from particularly alternate point of view. Each view is characterized by an arrangement of diagram, which is as take after,


This view speak to the framework from the clients point of view .The investigation portrayal depict an utilization from the end-clients viewpoint .


In this model the information and usefulness are landed from inside the framework .This model view models the static structurer.


It speak to the element of behavioral as parts of the framework ,delineating the interactions of accumulation between different basic components portrayed in the client display and auxiliary model view.


In this the auxiliary and behavioral as a component of the framework are spoken to as they are to be assembled.


In this the auxiliary and behavioral parts of nature in which the framework is to be execute are spoken to

UML is particularly developed through two unique areas they are:

UML Analysis displaying ,this spotlights on the client show and auxiliary model perspectives of the framework.

UML configuration demonstrating ,which centers n the behavioral displaying ,usage demonstrating and ecological model perspectives.

Utilize case diagram speak to the usefulness of the System from clients perspective . Utilize cases are utilized amid prerequisites elicitation and investigation to speak to the usefulness of the system.Use Case concentrate on the conduct of the framework from outer perspective.

Performing artists are outside substances that collaborate with the system.Examples of on-screen characters incorporate clients like manager ,bank client … and so forth., or another framework like focal database .Diagrams bunch the fascinating accumulations of things.

Things in UML:There are four kind things in the UML

1.Structural things

2.Behavioral things

3.Grouping things

4.Annotational things

These things are the basic objects oriented building blocks of the UML . They are used to write well-formed models.


UML Diagrams

UML stands for Unified Modelling Language. UML is a language for specifying, visualizing and documenting the system. This is the step while developing any product after analysis. The goal from this is to produce a model of the entities involved in the project which later need to be built.

There are various kinds of methods in software design. They are as  follows :

  • Use case Diagram
  • Sequence Diagram

Use case Diagrams

Use case diagrams model behavior within a system and helps the developers understand of what the user require. The stick man represented what’s called an actor. Use case diagram  can be useful for getting an overall view of the system and clarifying that can do and more importantly what they can’t do. Use case Diagram consists of use cases and actors and shows the interaction between the use case and actors.

  • The purpose is to show the interaction between the use case and actor.
  • To represent the system requirements from user’s perspective.
  • An actor could be the end-user of the system or an external system.

This use case diagram shows set of sequence of actions. It describes the behavior of taxpayer, administrator and employee. Taxpayer can login, view details, pay tax and so on. Employee can view user view user details and can verify. Administrator can view both details of user and employee.

user     Start_up_System


Reconfigure_system <<entend>> coshade_handler



<<include>> Robot



<<inclue>> Light_Sensor









Sequence Diagrams

Sequence diagrams and collaboration diagram are called INTERACTION DIAGRAMS. An interaction diagrams demonstrates an interaction, comprising of set of articles and their relationship including the informing that might be dispatched among them.

A sequence diagram is a presentation that understands time requesting of messages. Graphically a sequence diagram is a table that shows objects masterminded along the X-axis and messages requested in expanding time along the Y-axis.


Output controller

Reader middle ware agent

Input controller

Robot control agent

Added to queue

Controller ready to receive part

The piece will continue its on processing sequence



Ask Availability


request tag ouput

Conform input


 inform Confirm Output

Source Code

from pyimagesearch.shapedetector import ShapeDetector

from pyimagesearch.colorlabeler import ColorLabeler

import argparse

import imutils

import cv2

import os

# construct the argument parse and parse the arguments

ap = argparse.ArgumentParser()

ap.add_argument(“-i”, “–image”, required=True,

help=”path to the input image”)

args = vars(ap.parse_args())

# load the image and resize it to a smaller factor so that

# the shapes can be approximated better

image = cv2.imread(args[“image”])

resized = imutils.resize(image, width=300)

ratio = image.shape[0] / float(resized.shape[0])

# blur the resized image slightly, then convert it to both

# grayscale and the L*a*b* color spaces

blurred = cv2.GaussianBlur(resized, (5, 5), 0)

gray = cv2.cvtColor(blurred, cv2.COLOR_BGR2GRAY)

lab = cv2.cvtColor(blurred, cv2.COLOR_BGR2LAB)

thresh = cv2.threshold(gray, 60, 255, cv2.THRESH_BINARY)[1]

cv2.imshow(“Thresh”, thresh)

# find contours in the thresholded image

cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,


cnts = cnts[0] if imutils.is_cv2() else cnts[1]

# initialize the shape detector and color labeler

sd = ShapeDetector()

cl = ColorLabeler()

# Open a file in write mode

#fo = open(“/home/pi/Desktop/PiAUISuite/shape.txt”, “w”)

# loop over the contours

for c in cnts:

# compute the center of the contour

M = cv2.moments(c)

cX = int((M[“m10”] / M[“m00”]) * ratio)

cY = int((M[“m01”] / M[“m00”]) * ratio)

# detect the shape of the contour and label the color

shape = sd.detect(c)

color = cl.label(lab, c)

# multiply the contour (x, y)-coordinates by the resize ratio,

# then draw the contours and the name of the shape and labeled

# color on the image

c = c.astype(“float”)

c *= ratio

c = c.astype(“int”)

text = “{} {}”.format(color, shape)

cv2.drawContours(image, [c], -1, (0, 255, 0), 2)

cv2.putText(image, text, (cX, cY),

cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)


os.system(“tts ” + text)

cv2.imshow(“Image”, image)



import RPi.GPIO as GPIO

import time

import os

__author__ = ‘Gus (Adapted from Adafruit)’

__license__ = “GPL”

__maintainer__ = “”


#define the pin that goes to the circuit

pin_to_circuit = 7

def rc_time (pin_to_circuit):

count = 0

#Output on the pin for

GPIO.setup(pin_to_circuit, GPIO.OUT)

GPIO.output(pin_to_circuit, GPIO.LOW)


#Change the pin back to input

GPIO.setup(pin_to_circuit, GPIO.IN)

#Count until the pin goes high

while (GPIO.input(pin_to_circuit) == GPIO.LOW):

count += 1

return count

#Catch when script is interupted, cleanup correctly


# Main loop

while True:

print rc_time(pin_to_circuit)

if rc_time(pin_to_circuit) > 2000:

os.system(“fswebcam -r 640×480 –no-banner Desktop/out.png”)

os.system(“echo “”someone is at your door”” | mail -s “”alert”” [email protected]”)

except KeyboardInterrupt:






#Start companion service

cd /home/pi/Desktop/alexa-avs-sample-app/samples

cd companionService && npm start&

#Run the sample app

echo “Starting sample app.”

cd /home/pi/Desktop/alexa-avs-sample-app/samples

cd javaclient && mvn exec:exec&

echo “When finished ”

read -n1 -r -p “Press space to continue…” key

#Run the Wake Word Engine

cd /home/pi/Desktop/alexa-avs-sample-app/samples

cd wakeWordAgent/src && ./wakeWordAgent -e sensory




Cite This Work

To export a reference to this article please select a referencing stye below:

Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.

Related Services

View all

DMCA / Removal Request

If you are the original writer of this dissertation and no longer wish to have your work published on the website then please: