To make (almost) anything

About Me Assignments Final Project Fab lab 2019
Machine Design
Individual Assignment

actuate and automate your machine - document the group project and your individual contribution

Electronics

Wireless and communication part assigned to me .Apart from that mobile application part is also assined to me . Initially i faced problem of communication between app and HC-05 Bluetooth.I searched lot for app for our machine project.Finally I Found open source app from palystore and download that App.The problem that I faced is communication between app and HC-05 Bluetooth then I discuss this proble with my local instructor Sir Sohail Ahmed Somro and he helped me to sort out that problem. Another task is Assigned to me is to generate Barcode for the products and Cutted on Cutted on vinyl cut.


1.Arduino Loenardo

The Arduino Leonardo is a microcontroller board based on the ATmega32u4. It has 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. As we have made this leonardo in previous week of embeded programming so we are using this board which can also be seen at my colleague portfolio.

5 Terre

Pin Configuration of Leonardo Board

5 Terre

Leonardo Board used for machine


2.Servo Motors

Servo motors (or servos) are self-contained electric devices that rotate or push parts of a machine with great precision. Servos are found in many places from toys to home electronics to cars and airplanes. If you have a radio-controlled model car, airplane, or helicopter, you are using at least a few servos. In a model car or aircraft, servos move levers back and forth to control steering or adjust wing surfaces. By rotating a shaft connected to the engine throttle, a servo regulates the speed of a fuel-powered car or aircraft. Servos also appear behind the scenes in devices we use every day. We had to use six 360 degree servos which were not available in our fab inventory so we chanaged 180 degree servos to 360 degree servos. For making this happen we followed this youtube tutorial which explains well how to make 360 degree servo motors. Further more we needed servo cap which is also designed by our team mate Mr. Haider. The 3d printed servo cap can be seen below in figure (b). Since we have six servo motors so we repetatively 3d printed this part. Furthermore we made six separate coils for discharging chambers which can be seen in figure (c) and six servo motors used in machine are also shown in figure (d)

5 Terre

A transclucent 3d printed servo cap

5 Terre

Coils used for discharging chambers

5 Terre

Six servo motors used in discharging chambers


3.Bluetooth

Bluetooth technology is a short-range wireless communications technology to replace the cables connecting electronic devices, allowing a person to have a phone conversation via a headset, use a wireless mouse and synchronize information from a mobile phone to a PC, all using the same core system. The Bluetooth RF transceiver operates in the unlicensed ISM band centered at 2.4 gigahertz the same range of frequencies used by microwaves and Wi-Fi. The core system employs a frequency-hopping transceiver to combat interference and fading. In our machine we have used the hc 05 bluetooth module which can be seen below.

5 Terre

HC 05 bluetooth module integrated with small PCB


4.Liquid Crystal Display (LCD)

LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of applications. A 16x2 LCD display is very basic module and is very commonly used in various devices and circuits. These modules are preferred over seven segments and other multi segment LEDs. The reasons being: LCDs are economical, easily programmable, have no limitation of displaying special & even custom characters (unlike in seven segments), animations and so on. A 16x2 LCD means it can display 16 characters per line and there are 2 such lines. We have used this type of lcd for showing the information for example product's or any kind of display message which can be shown below in figure.

5 Terre

16x2 LCD is used in vending machine

Programming


#include
#define m1 6
#define m2 9
#define m3 10
#define m4 5
#define m5 13
#define m6 11
//SoftwareSerial mySerial(8, 9); // RX, TX

const int rs = 12, en = 8, d4 = A0, d5 = A1, d6 = A2, d7 = A3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

String data;
int barcode = 0;
//variable to store data received
void setup()
{

Serial.begin(9600);
Serial1.begin(9600);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(m3, OUTPUT);
pinMode(m4, OUTPUT);
pinMode(m5, OUTPUT);
pinMode(m6, OUTPUT);
lcd.print("hello, Welcome to FAB Lab Khairpur!");
lcd.setCursor(0, 1);
lcd.print("Maneged by Sukkur IBA Univeristy!");


}

//----------------------------start of the main program----------------------------

void loop()
{

for (int positionCounter = 0; positionCounter < 13; positionCounter++)
{

// scroll one position left:
lcd.scrollDisplayLeft();
// wait a bit:
delay(350);
}
if(Serial1.available())
{ // If anything comes in Serial1 (pins 0 & 1) lcd.clear();
data = Serial1.readString();
barcode = data.toInt();
Serial.println(barcode);
}
//------------------------------Lays-------------------------------

if(barcode == 120)
{

Serial.println(barcode);
analogWrite(m1, 230);
delay(2000);
analogWrite(m1, 0);
delay(50);
barcode = 0;
lcd.clear();
lcd.print("You have chose Lays of Worth Rs.20");
lcd.setCursor(0, 1);
lcd.print("Thank you for Shopping With us. Good Day!");
}
//------------------------------Biscuits-------------------------------

else if(barcode == 220)
{

//Serial.write(Serial1.read());
analogWrite(m2, 230);
delay(1500);
analogWrite(m2, 0);
delay(50);
barcode = 0;
lcd.clear();
lcd.print("You have chose Biscuits of Worth Rs.20");
lcd.setCursor(0, 1);
lcd.print("Thank you for Shopping With us. Good Day!");
}
//------------------------------Chocklets-------------------------------

else if(barcode == 320)
{
analogWrite(m3, 230);
delay(1500);
analogWrite(m3, 0);
delay(50);
barcode = 0;
lcd.clear();
lcd.print("You have chose Galaxy of Worth Rs.30");
lcd.setCursor(0, 1);
lcd.print("Thank you for Shopping With us. Good Day!");
}

//------------------------------Chocklets-------------------------------

else if(barcode == 430)
{

analogWrite(m4, 230);
delay(1500);
analogWrite(m4, 0);
delay(50
);
barcode = 0;

lcd.c
lear();
lcd.print
("You have chose Dairy Milk of Worth Rs.30");
lcd.setCursor(0, 1);
lcd.print("Thank you for Shopping With us. Good Day!");
}

//------------------------------Chocklets-------------------------------

else if(barcode == 520)
{ analogWrit
e(m5, 230);
delay(1500);
analogWrite(m5, 0);
delay(50);
barcode =
0;

lc
d.clear();
lcd.print
("You have chose KitKat of Worth Rs.20");
lcd.setCursor
(0, 1);
lcd.print("Thank yo
u for Shopping With us. Good Day!");
}
//------------------------------Chocklets-------------------------------

else if(barcode == 630){
analogWrite(m6, 230);
delay(1500);
analogWrite(m
6, 0);
delay(50);
barcode = 0;
lcd.clear();
lcd.print("You have chose Perk Chocklets of Worth Rs.30");
lcd.setCursor(0, 1);
lcd.print("Thank you for Shopping With us. Good Day!");
}
else{
analogWrite(m1, 0);
delay(500);
analogWrite(m2, 0);
delay(500);
analogWrite(m3, 0);
delay(500);
analogWrite(m4, 0);
delay(500);
analogWrite(m5, 0);
delay(500);
analogWrite(m6, 0);
delay(500);
lcd.clear();
//lcd.print("Sorry, Incorrect choise.");
//lcd.setCursor(0, 1);
//lcd.print("Please see the barcode menu if you need anything else. Thank you!");
}
//}
//----------------------------end of the main program----------------------------
}

Wireless and Mobile Application

In order to promote cashless payment in Pakistan we are adding e-payment feature in this vending machine. There are many problems regarding cash payment at food shops especialy in pakistan which are routinley observed and can be solved by adding this feature to made vending machine for example a user which does not have money in cash and wanted to buy an item, he may be in trouble to have that unless he find an atm machine near the shop. Furthermore if any user has cash which can not be changed by shopkeeper then he may be unable to buy that easily. Additionally, this machine could best be utilized in schools , colleges and universities where we have long lines of students with shortage of time awaiting to buy the snacks, candies and juices. So by installing this type of machine will not only reduce the tension of keeping change but also will save time and solve the issues of big lines waiting to buy single chocolate or ice cream. Now a days there is alot usage of smartphones in pakistan and it's increasing day by day so by taking that advantage we are using an especial type of application which shall be in user's cellphone that will read the barcode of specific item written outside of machine. For example If I need to buy the chocolate I will open the application and read that particular barcode of chocolate after that app will ask you to confirm the item you want to buy so if confirmed I will have my item. The method of transaction will be especial type of sim card issued by Jazz, a telecom operator available in pakistan. Initially the user has to credit his account in advance so that whenever he buy any item for example candy or chocolate he will be debited by that much amount and informed through a sms. In this machine we have weeded vinyl made barcodes which shall be scanned before purchasing any item. Vinyl made barcodes are shown in figure below.

5 Terre

Barcodes of items placed inside machinee

5 Terre

During putting barcodes on final surface

Future Work

Increased Capacity

Installment of machine at university cafeterias

Increased Security

Getting access from telecom operators

FIles

This is all for this week

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.