Professional Documents
Culture Documents
The internship opportunity I had with AMSA Embedded Solutions was a great chance for learning
and professional development. Therefore, I consider myself as a very lucky individual as I was provided
with an opportunity to be a part of it. I am also grateful for having a chance to meet so many wonderful
people and professionals who led me though this internship period.
Bearing in mind previous I am using this opportunity to express my deepest gratitude and special thanks to
the MD of AMSA Embedded Solutions who in spite of being extraordinarily busy with her/his duties, took
time out to hear, guide and keep me on the correct path and allowing me to carry out my project at their
esteemed organization and extending during the training.
I express my deepest thanks to Vinayak Dhongadi, Trainer for taking part in useful decision & giving
necessary advices and guidance and arranged all facilities to make life easier. I choose this moment to
acknowledge his contribution gratefully.
It is my radiant sentiment to place on record my best regards, deepest sense of gratitude to Mr. Sagar K
[Co-Executive], Mr. Pramod K, [Co-Executive], Mr. Vinayak Dhongadi [Marketing Manager], for their careful
and precious guidance which were extremely valuable for my study both theoretically and practically.
I perceive as this opportunity as a big milestone in my career development. I will strive to use gained skills
and knowledge in the best possible way, and I will continue to work on their improvement, in order to
attain desired career objectives. Hope to continue cooperation with all of you in the future,
Sincerely,
Name:SOUMYA K UDUPI
Place: BAGALKOTE
1|Page
ABSTRACT
Today, there are billions of embedded system devices used across many industries including medical and
industrial equipment, transportation systems, and military equipment. Many consumer devices from digital
watches to kitchen appliances and automobiles also feature them. Embedded systems are small, fast,
powerful, and designed for very specific use cases. While general purpose systems can perform multiple
functions, they can be too costly for many applications, and may also fail to measure up to embedded
systems’ reliability, low power consumption, minimal size, and other functional and performance features.
Arduino: An Arduino is an open-source computer hardware and software company, project, and user
community that designs and manufactures single-board microcontrollers and microcontroller kits for
building digital devices and interactive objects that can sense and control objects in the physical world. The
project’s products are distributed as open-source hardware and software, which are licensed under the GNU
Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the
manufacture of Arduino boards and software distribution by anyone. Arduino boards are available
commercially in preassemble form or as-do-it yourself kits.
Embedded System: An embedded system is a computer system with a dedicated function within a larger
mechanical or electrical system, often with real-time computing constraints. It is embedded as part of a
complete device often including hardware and mechanical parts. Embedded systems control many devices in
common use today. Ninety-eight percent of all microprocessors are manufactured as components of
embedded systems. An embedded system is a self-contained, microprocessor-based computer system
typically implemented as a component of a larger electrical or mechanical system. At the core of the
embedded system is an integrated circuit that performs computational tasks. Also included are hardware and
software, both of which are designed to execute a specific, dedicated function. Embedded systems can be
highly complex or relatively simple, depending on the task for which they were designed. They may include
a single microcontroller or a suite of processors with linked peripherals and networks. They may have no
interface or highly intricate GUIs. Embedded systems programming instructions are stored in read-only
memory or flash memory chips.
2|Page
Contents
Acknowledgement i
Abstract ii
Contents iii
Chapter 4 Conclusions 33
Chapter 5 References 33
Chapter-1
ABOUT THE COMPANY
3|Page
Introduction:
AMSA embedded solution is an embedded solution provide with
a vision to develop industrial and educational projects with a
specific approach on the customer focus and needed. It has been
started with the professional approach to problem identification
analysis and solving our motto is to render new technologies in
the period of electronic word and to become the master in
embedded industry. we are presently into training development
and act as service provider. We have our own sourcing unit to
undertake engineering project from various field like embedded, wireless communication,
MATLAB, android, and web designing. Students are thought and trained from the fundamentals
such as electronics and computer software languages. The training is conducted in our premises
Our students have the opportunity to participate in hands on embedded system, industries specific
project exposing them global organization real world issues and software /hardware used in global
market place.
Customer centricity is at the core of Amsa Embedded Solution in Unkal, Hubli and it is this belief
that has led the business to build long-term relationships. Ensuring a positive customer experience,
making available goods and/or services that are of top-notch quality is given prime importance.
India’s leading B2B market place, Jd Mart ensures engaging in business activities is a seamless
process for small and medium enterprises as well as large businesses. In a wake to enable these
businesses to reach their audience, this portal lets them showcase their offerings in terms of the
products and/or services through a digital catalogue. This business has a wide range of product
offerings and the product/catalogue list includes Embedded Design and Development, Embedded
Design Services, Embedded Hardware, Embedded Product Design, Embedded Product Designing
Services etc.
Location:
Amsa Embedded Solution in Unkal, Hubli is known to satisfactorily cater to the demands of its
customer base. It stands located at Baligar Building, Unkal Cross Stop, Vidyanagar, Shirur Park
Road, Unkal-580031. It has earned 100 reviews and aspires to develop a loyal customer base. The
business strives to make for a positive experience through its offerings.
Services Provided:
4|Page
1. Electronics and Communication
Learning about basic electronics and creating your own projects is a lot easier than you may think.
we have something for everyone. Amsa embedded team has electronic and electrical lab setup for
engineering /MTech/diploma student to build their own innovative project by hands on
training,You will then learn about schematic diagrams and how they are used to design and build
circuits. And finally, you will come up with basic electronic and embedded knowledge.
Chapter-2
TASKS PERFORMED
5|Page
Weekly Overview of Internship Activities
Name of the Industry: AMSA Embedded Solutions Department: Embedded System Design
Chapter-3
KEY LEARNINGS
The Arduino UNO is a standard board of Arduino. Here UNO means 'one' in Italian. It was named as UNO
to label the first release of Arduino Software. It was also the first USB board released by Arduino. It is
considered as the powerful board used in various projects. Arduino.cc developed the Arduino UNO board.
Arduino UNO is based on an ATmega328 microcontroller. It is easy to use compared to other boards, such
as the Arduino Mega board, etc. The board consists of digital and analog Input/Output pins (I/O), shields,
and other circuits.
The Arduino UNO includes 6 analog pin inputs, 14 digital pins, a USB connector, a power jack, and an
ICSP (In-Circuit Serial Programming) header. It is programmed based on IDE, which stands for Integrated
7|Page
Development Environment. It can run on both online and offline platforms.The IDE is common to all
available boards of Arduino.
o ATmega328 Microcontroller- It is a single chip Microcontroller of the Atmel family. The processor
code inside it is of 8-bit. It combines Memory (SRAM, EEPROM, and Flash), Analog to Digital
Converter, SPI serial ports, I/O lines, registers, timer, external and internal interrupts, and oscillator.
o ICSP pin - The In-Circuit Serial Programming pin allows the user to program using the firmware of
the Arduino board.
o Power LED Indicator- The ON status of LED shows the power is activated. When the power is OFF,
the LED will not light up.
o Digital I/O pins- The digital pins have the value HIGH or LOW. The pins numbered from D0 to D13
are digital pins.
o TX and RX LED's- The successful flow of data is represented by the lighting of these LED's.
o AREF- The Analog Reference (AREF) pin is used to feed a reference voltage to the Arduino UNO
board from the external power supply.
o Reset button- It is used to add a Reset button to the connection.
o USB- It allows the board to connect to the computer. It is essential for the programming of the
Arduino UNO board.
o Crystal Oscillator- The Crystal oscillator has a frequency of 16MHz, which makes the Arduino UNO
a powerful board.
o Voltage Regulator- The voltage regulator converts the input voltage to 5V.
o GND- Ground pins. The ground pin acts as a pin with zero voltage.
8|Page
o Vin- It is the input voltage.
o Analog Pins- The pins numbered from A0 to A5 are analog pins. The function of Analog pins is to
read the analog sensor used in the connection. It can also act as GPIO (General Purpose Input
Output) pins.
int led=8;
void setup() {
pinMode(led,OUTPUT);
void loop() {
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
int led=4;
int button1=2;
int button2=7;
void setup() {
pinMode(led,OUTPUT);
pinMode(button1,INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);
}
void loop() {
if(digitalRead(button1)==0 &&digitalRead(button2)==0){
digitalWrite(led,LOW);
}
else if(digitalRead(button1)==1 &&digitalRead(button2)==0){
9|Page
digitalWrite(led,HIGH);
}
else if(digitalRead(button1)==0 &&digitalRead(button2)==1){
digitalWrite(led,HIGH);
}
else if(digitalRead(button1)==1 &&
digitalRead(button2)==1){
digitalWrite(led,HIGH);
}
}
// Code for increasing and decreasing light intensity depending on the count
int led=3;
int inc=2;
int count=0;
void setup() {
pinMode(led,OUTPUT);
pinMode(inc,INPUT_PULLUP);
}
void check_status(){
if (digitalRead(inc)==0){
delay(100);
if(digitalRead(inc)==0){
while(digitalRead(inc)==0);
count++;
if (count>5)
count=0;
}
}
}
void led_control(float val){
analogWrite(led,val);
}
void led_status(){
10 | P a g e
if(count>0 && count<2)
led_control(63.75);
if(count>1 && count<3)
led_control(127.5);
if(count>2 && count<4)
led_control(191.25);
if(count>3 && count<5)
led_control(255);
if (count>5)
led_control(0);
}
void loop(){
check_status();
led_status(); }
11 | P a g e
used to connect a microcontroller unit pin and obtains either 0 or 1(0 = data mode, and 1 =
command mode).
Pin5 (Read/Write/Control Pin): This pin toggles the display among the read or writes operation,
and it is connected to a microcontroller unit pin to get either 0 or 1 (0 = Write Operation, and 1 =
Read Operation).
Pin 6 (Enable/Control Pin): This pin should be held high to execute Read/Write process, and it is
connected to the microcontroller unit & constantly held high.
Pins 7-14 (Data Pins): These pins are used to send data to the display. These pins are connected in
two-wire modes like 4-wire mode and 8-wire mode. In 4-wire mode, only four pins are connected
to the microcontroller unit like 0 to 3, whereas in 8-wire mode, 8-pins are connected to
microcontroller unit like 0 to 7.
Pin15 (+ve pin of the LED): This pin is connected to +5V
Pin 16 (-ve pin of the LED): This pin is connected to GND.
//Code
Int sensor=A1;
Int temp;
Float voltage;
Int Celsius;
Void setup(){
Serial.begin(9600);
}
Void loop(){
Temp=analogRead(sensor);
Voltage=(Temp*5)/1023;
12 | P a g e
Celsius= Voltage*100;
String bff=”Temperature is”+ string(celsius)+”C”;
Serial.println(buff);
Delay(500);
}
Serial Communication:
Serial communication is the process of sending data one bit at a time, sequentially, over a communication
channel or computer bus. This is in contrast to parallel communication, where several bits are sent as a
whole, on a link with several parallel channels.
13 | P a g e
Synchronous Serial Protocols
The synchronous type of serial protocols such as SPI, I2C, CAN and LIN are used in different projects
because it is one of the best resources for onboard peripherals. Also these are the widely used protocols in
major applications.
SPI Protocol
The Serial Peripheral Interface (SPI) is a synchronous interface which allows several SPI microcontrollers to
be interconnected. In SPI, separate wires are required for data and clock line. Also the clock is not included
in the data stream and must be furnished as a separate signal. The SPI may be configured either as master or
as a slave. The four basic SPI signals (MISO, MOSI, SCK and SS), Vcc and Ground are the part of data
communication. So it needs 6 wires to send and receive data from slave or master. Theoretically, the SPI can
have unlimited number of slaves. The data communication is configured in SPI registers. The SPI can
deliver up to 10Mbps of speed and is ideal for high speed data communication.
USB
USB (Universal Serial Bus) is widely protocol with different versions and speeds. A maximum of 127
peripherals can be connected to a single USB host controller. USB acts as "plug and play" device. The USB
are used in almost devices such as keyboards, printers, media devices, cameras, scanners and mouse. It is
designed for easy installation, faster data rated, less cabling and hot swapping. It has replaced the bulkier
and slower serial and parallel ports. USB uses differential signalling to reduce interference and allow high-
speed transmission over a long distance.
A differential bus is built with two wires, one of represents the transmitted data and the other its
complement. The idea is that the 'average' voltage on the wires does not carry any information, resulting in
less interference. In USB, the devices are allowed to draw a certain amount of power without asking the
host. USB uses only two wires to for data transfer and are faster than the serial and parallel interface.
CAN
The Controller Area Network (CAN) is used in e.g. automotive to allow communication between ECUs
(Engine Control Units) and sensors. The CAN protocol is robust, low-cost and message based and covers in
many applications - e.g. cars, trucks, tractors, industrial robots. The CAN bus system allows for central error
diagnosis and configuration across all ECUs. CAN messages are prioritized via IDs so that the highest
14 | P a g e
priority IDs are non-interrupted. Each ECU contains a chip for receiving all transmitted messages, decide
relevance and act accordingly - this allows easy modification and inclusion of additional nodes (e.g. CAN
bus data loggers). The applications include start/stop of vehicles, collision avoidance systems. The CAN bus
systems can provide speed up to 1Mbps.
UART
UART is a hardware communication protocol that uses asynchronous serial communication with
configurable speed. Asynchronous means there is no clock signal to synchronize the output bits from the
transmitting device going to the receiving end.
I2C
I2C combines the best features of SPI and UARTs. With I2C, you can connect multiple slaves to a single
master (like SPI) and you can have multiple masters controlling single, or multiple slaves. This is really
useful when you want to have more than one microcontroller logging data to a single memory card or
displaying text to a single LCD.
Simple serial data transfer program
String Name;
void setup() {
Serial.begin(9600);
}
void loop() {
while(Serial.available())
{
char data=Serial.read();
Name+= data;
Serial.print(Name);
Serial.println(Name);
Name="";
delay(100);
if(Serial.available()>0){
Serial.write(Serial.read());
}
}
15 | P a g e
Sending a data frame with serial comunication in Arduino
“NAMESOUMYAUSN2BA19EC097PNO625367484959#”
String MainString;
String Name,usn,pno;
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
while(Serial.available()>0){
char data=Serial.read();
MainString+=data;
delay(10);
}
}
if(MainString.length()>0){
int val1=0,val2=0;
val1=MainString.indexOf("Name");
val2=MainString.indexOf("usn");
Name=MainString.substring(val1+4,val2-1);
val1=val2=0;
val1=MainString.indexOf("usn");
val2=MainString.indexOf("pno");
usn=MainString.substring(val1+3,val2-1);
val1=val2=0;
val1=MainString.indexOf("pno");
val2=MainString.indexOf("#");
pno=MainString.substring(val1+3,val2-1);
val1=val2=0;
Serial.println("candidatename"+Name);
Serial.println("candidateUSN"+usn);
Serial.println("candidatePHONEno"+pno);
}}
16 | P a g e
Password verification and implementing using IOT Trainer Kit.
String Key="1234";
String password,input;
int buzz=2;
void setup() {
pinMode(buzz,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
while(Serial.available()>0){
char data=Serial.read();
input+=data;
delay(10);
}
}
if(input.length()>0){
int start=0,End=0;
start=input.indexOf("*");
End=input.indexOf("&");
password=input.substring(start+1,End);
start=0;End=0;
Serial.println("password"+password);
if(password==Key)
digitalWrite(buzz,HIGH);
else
beep();
}
}
void beep(){
for(int c=0;c<20;c++){
digitalWrite(buzz, HIGH);
delay(100);
digitalWrite(buzz, LOW);
17 | P a g e
delay(100); } }
Motor Driver
The L293D is designed to provide bidirectional drive currents of up to 600-mA at voltages from 4.5 V to 36
V. Both devices are designed to drive inductive loads such as relays, solenoids, DC and bipolar stepping
motors, as well as other high-current/high-voltage loads in positive-supply applications.
H-bridge 1 can control one motor, and H-bridge 2 can control another motor.
18 | P a g e
Output 1: power for H-bridge 1 motor
Output 2: power for H-bridge 1 motor
Output 3: power for H-bridge 2 motor
Output 4: power for H-bridge 2 motor
Vcc 1: 5V supply for the L293D chip
Vcc 2: power supply for the motors (4.5V to 36V DC)
Enable 1, 2: turns ON/OFF H-bridge 1 (HIGH enables, LOW disables)
Enable 3, 4: turns ON/OFF H-bridge 2 (HIGH enables, LOW disables)
Input 1: motor control signal for H-bridge 1
Input 2: motor control signal for H-bridge 1
Input 3: motor control signal for H-bridge 2
Input 4: motor control signal for H-bridge 2
XBee S2C is a RF module designed for wireless communication or data exchange and it works on ZigBee
mesh communication protocols that sit on top of IEEE 802.15.4 PHY. The module provides wireless
connectivity to end-point devices in any ZigBee mesh networks including devices from other vendors.
Please note that XBee is a module designed by ‘DiGi’ and ZigBee is the name of the protocol followed by
19 | P a g e
XBee modules for establishing wireless communication. With a few of these modules the user can setup
their own ZigBee network up-and-running in a matter of minutes.The XBee RF Module is compatible with
other units that use ZigBee technology. These include other XBee modules, Connect Ports gateways, XBee
and XBee-PRO Adapters, XBee Sensors and other products that are designated with “ZB” product name.
XBee S2C is a 20-pin module as given in XBee S2C pinout diagram and the description for each pin is
given below.
20 | P a g e
6 RSS PWM /DIO10 RX Signal Strength Indicator pin / GPIO
10 GND Ground
button
#include "SoftwareSerial.h”
21 | P a g e
SoftwareSerialXBee(2,3);
int under=4;
int over1=5,over2=6,over3=7;
int drySensor=8;
void setup()
{
pinMode(under,INPUT_PULLUP);
pinMode(over1,INPUT_PULLUP);
pinMode(over2,INPUT_PULLUP);
pinMode(over3,INPUT_PULLUP);
Serial.begin(9600);
XBee.begin(9600);
}
void loop()
{
if(digitalRead(drySensor)==0){
if(digitalRead(under)==1)
{
XBee.write('0');
Serial.println("led off");
}
else if(digitalRead(under)==0){
checklevel();
}
}
}
void checklevel(){
if(digitalRead(over1)==0){
Serial.println("led off");
XBee.write('0');
}
else if(digitalRead(over2)==0){
XBee.write('1');
Serial.println("led on");
22 | P a g e
}
else if(digitalRead(over3)==0){
XBee.write('1');
Serial.println("led on");
}
}
#include<SoftwareSerial.h>
int led = 5;
int received = 0;
SoftwareSerialXBee(2,3);
void setup()
{
pinMode(led, OUTPUT);
XBee.begin(9600);
Serial.begin(9600);
}
void loop()
{
if (XBee.available()>0)
{
received = XBee.read();
if (received == 0)
{
Serial.println("Turning off LED");
digitalWrite(led, LOW);
}
else if (received == 1) {
Serial.println("Turning on LED");
digitalWrite(led, HIGH); } }}
// Code for Water level management using Arduino
int under=2;
23 | P a g e
int over1=4, over2=5,over3=6;
int drySensor=1;
int motor=7;
void setup() {
pinMode(under,INPUT_PULLUP);
pinMode(over1,INPUT_PULLUP);
pinMode(over2,INPUT_PULLUP);
pinMode(over3,INPUT_PULLUP);
pinMode(motor,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(digitalRead(drySensor)==0){
if(digitalRead(under)==1)
digitalWrite(motor,LOW);
else if(digitalRead(under)==0){
checklevel();
}
}
}
void checklevel(){
if(digitalRead(over1)==0){
digitalWrite(motor,LOW);
}
else if(digitalRead(over2)==0){
digitalWrite(motor,HIGH);
}
else if(digitalRead(over3)==0){
digitalWrite(motor,HIGH);
}
}
PCB Designing:
24 | P a g e
Printed circuit board (PCB) design brings your electronic circuits to life in the physical form. Using layout
software, the PCB design process combines component placement and routing to define electrical
connectivity on a manufactured circuit board. Breadboards are great for prototyping circuits, but they aren’t
so good for actually using the thing you’re building. At some point, you’ll probably want to make
a project more permanent. The best way to do that is to put it on a PCB.
PCB Layout is a high-level engineering tool for board design featuring smart manual routing of high-speed
and differential signals, shape-based autorouter, advanced verification, and wide import/export
capabilities. Design requirements are defined by net classes, class-to-class rules, and detailed settings by
mechanical object types for each class or layer. Dip Trace features design process with real-time DRC,
which reports errors on the fly before actually making them. The board can be previewed in 3D and
exported for CAD modelling. Design Rule Check with in-depth detailing, Net Connectivity
verification.DipTrace is a software that allows you to create simple and complex Printed Circuit Boards
from schematic diagrams to layouts. It is a user friendly EDA software.
Led
Rectifier
25 | P a g e
Op-Amp
26 | P a g e
Atmega
27 | P a g e
Arduino
28 | P a g e
Mini Project
Abstract: This project is based on a pair of infrared sensors that detects interrupt when it
detects an obstacle. The pair of IR sensors can detect the visitor from both directions, i.e.
the number of entering visitors and the number of exiting visitors. When the total number of
people is zero then the room light is turned off. When even a single person is found inside
the room, the light turn, depending on people inside the room light intensity control.
29 | P a g e
Components used:
Trainer Kit
30 | P a g e
IR Sensor 2 Diode LED
//Code
31 | P a g e
#include <LiquidCrystal.h>
int buzz=7;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
lcd.begin(16, 2);
pinMode(buzz,OUTPUT);
lcd.clear();
Serial.begin(9600);
}
void loop() {
int inputvoltage = analogRead(A0);
float voltage = inputvoltage * (300.0 / 1023.0);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(voltage);
lcd.print("V");
int i;
float current,maximum=0;
uint32_t starttime = millis();
while((millis()-starttime) < 1000)
{
current=analogRead(A1);
if(current>maximum){
maximum=current;
}
}
Serial.println(maximum);
float volt= (maximum*5.0)/1023.0;
float val1 = (volt /200.0) *1000.0;
float I = val1 * 0.707;
lcd.setCursor(9,0);
lcd.print(I);
lcd.print(" A");
32 | P a g e
float power=I*voltage;
if(power>55){
digitalWrite(buzz,HIGH);
lcd.setCursor(2,1);
lcd.print("Power: HIGH");
}
else{
lcd.setCursor(1,1);
lcd.print("Power: MODERATE");
}
delay(1000);
}
CONCLUSION
In a nutshell, this internship has been an excellent and rewarding experience. I can conclude that there
have been a lot I’ve learnt from my Internship at AMSA Embedded Solutions. Needless to say, the
technical aspects of the work I’ve done are not flawless and could be improved provided enough time. As
someone with no prior experience with Embedded System Design whatsoever I believe my time spent in
research and discovering it was well worth it and contributed to finding an acceptable solution to build a
fully functional web service. Two main things that I’ve learned the importance of are time-management
33 | P a g e
REFERENCES
https://solael.gitbooks.io
https://www.electronicsmedia.infosystem
https://create.arduino.cc/projecthub/projects/tags/embedded
https://www.tutorialspoint.com/embedded_systems
https://www.techtarget.com/iotagenda/definition/embedded-system
34 | P a g e