Finally, the day had come! Alhamdulilah I managed to finish my final year project.! First and foremost, I would like to express my heartily gratitude to my supervisor, Madam Siti Afifah binti Mohshim for the guidance and enthusiasm given throughout the progress of this project. My appreciation also goes to my family who has been so tolerant and supports me all these years. Thanks for their encouragement, love and emotional supports that they had given to me. In preparing this report, I was in contact with many people, researches, academicians and practitioners. They have contributed towards my understanding and thoughts.
Sunday, November 18, 2012
Industry Day.
Assalamualaikum w.b.t.
Finally, the day had come! Alhamdulilah I managed to finish my final year project.! First and foremost, I would like to express my heartily gratitude to my supervisor, Madam Siti Afifah binti Mohshim for the guidance and enthusiasm given throughout the progress of this project. My appreciation also goes to my family who has been so tolerant and supports me all these years. Thanks for their encouragement, love and emotional supports that they had given to me. In preparing this report, I was in contact with many people, researches, academicians and practitioners. They have contributed towards my understanding and thoughts.
Finally, the day had come! Alhamdulilah I managed to finish my final year project.! First and foremost, I would like to express my heartily gratitude to my supervisor, Madam Siti Afifah binti Mohshim for the guidance and enthusiasm given throughout the progress of this project. My appreciation also goes to my family who has been so tolerant and supports me all these years. Thanks for their encouragement, love and emotional supports that they had given to me. In preparing this report, I was in contact with many people, researches, academicians and practitioners. They have contributed towards my understanding and thoughts.
Final Touch Up
Assalamualaikum w.b.t
its 2 days more before the industry day. so for today I have to complete all the frameworks. because of fully concentration I forgot to snap all the steps. after finished the projects then i realized that i did not snap any single pictures! huuu.. i'm so careless.. my bad.
its 2 days more before the industry day. so for today I have to complete all the frameworks. because of fully concentration I forgot to snap all the steps. after finished the projects then i realized that i did not snap any single pictures! huuu.. i'm so careless.. my bad.
the final touch up.
Result
Assalamualaikum w.b.t
Besides
the programming, this study also examines how the ultrasonic sensors functions.
All the data are gathered presented in Table 3. The table shows analysis of the
ultrasonic Sensor analog voltage value between the calculation value and
measurement value. Figure 24 illustrate the concepts of the calculation which
is followed with the formulas.
Table
3: Result of analyzing the ultrasonic sensor
No
|
Range
(cm)
|
Calculation
(mV) 1 inch= 10mV
|
Measured
(mV)
|
Error
%
|
1
|
0
|
0
|
0
|
0
|
2
|
5
|
50
|
42
|
16
|
3
|
10
|
100
|
94
|
6
|
4
|
15
|
150
|
142
|
5.3
|
5
|
20
|
200
|
193
|
3.5
|
6
|
25
|
250
|
245
|
2.0
|
7
|
30
|
300
|
296
|
1.3
|
8
|
35
|
350
|
346
|
1.1
|
9
|
40
|
400
|
396
|
1.0
|
Figure 24: Square Wave Oscillation
Figure
24 shows the usual square wave. In each time interval, the waves repeat
regularly because they are stable. The waves commute between V- and V+, stop at
every stage of running time (Ta or Tb). Therefore, t is the addition of Ta and
Tb.
T
= Ta + Tb
Where
T is the period of the square wave
Ta is the interval between T1 and T2
Tb is the interval between T2 and T3
For frequencies,
T = (1/F) = 0.69 C1 [2R1 + (R2+R3)]
By using the formula above, duty
cycle can be found through the calculation steps as follows:
T off = 0.69C1
T on = 0.69C1 (R1 +R2+R3)
Duty cycle = (T on / T)
Duty cycle = (R1+R2+R3) / [(R2+R3) +2R1]
In
Table 3, the voltage values obtained from the test are slightly different from
the values shown in the ultrasonic sensor data sheet. It shows that there were
errors with the ultrasonic analog output by. In relation, Figure 25 shows the
difference between calculation value and the measured value.
Design Process
Assalamualaikum w.b.t
After confirm the circuit, next step are design process. The design process is based on the architecture. Basically the ultrasonic path planning functions like ordinary blind canes. The difference is that the Ultrasonic path planning is equipped with ultrasonic sensor and circuit box can be placed.
After confirm the circuit, next step are design process. The design process is based on the architecture. Basically the ultrasonic path planning functions like ordinary blind canes. The difference is that the Ultrasonic path planning is equipped with ultrasonic sensor and circuit box can be placed.
There
are a few circuits designed. Firstly the design was tested on the diptrace is
finalized, printed circuit board (PCB) was fabricated. The important element
when designing the PCB is the size of the PCB which is long rather than wide.
It is also to make sure that the design of ultrasonic path planning is small as
possible.
Arduino Uno on PCB with AD622 and 7660s. (top view)
Bottom view
Thursday, September 20, 2012
Development and Installation of Ultrasonic Path Planning for the Blind Person
Assalamualaikum w. b.t
So for today, I had assemble the circuit. I had build the circuit for avoiding object.
For the testing, I had used this code:
//author: rabia'tul adawiyah roslan
//projects name: ultrasonic path planning for the blind person
// variables to take x number of readings and then average them
// to remove the jitter/noise from the DYP-ME007 sonar readings
const int numOfReadings = 10; // number of readings to take/ items in the
array
int readings[numOfReadings]; // stores the distance readings in an array
int arrayIndex = 0; // arrayIndex of the current item in the
array
int total = 0; // stores the cumlative total
int averageDistance = 0; // stores the average value
// setup pins and variables for DYP-ME007 sonar device
int echoPin = 2; // DYP-ME007 echo pin (digital 2)
int initPin = 3; // DYP-ME007 trigger pin (digital 3)
unsigned long pulseTime = 0; // stores the pulse in Micro Seconds
unsigned long distance = 0; // variable for storing the distance (cm)
// setup pins/values for LED
int redLEDPin = 9; // Red LED, connected to digital PWM
pin 9
int redLEDValue = 0; // stores the value of brightness for the
LED (0 = fully off, 255 = fully on)
//setup
void setup() {
pinMode(redLEDPin, OUTPUT); // sets pin 9 as output
pinMode(initPin, OUTPUT); // set init pin 3 as output
pinMode(echoPin, INPUT); // set echo pin 2 as input
// create array loop to iterate over every item in the array
for (int thisReading = 0; thisReading < numOfReadings; thisReading++) {
readings[thisReading] = 0;
}
// initialize the serial port, lets you view the
// distances being pinged if connected to computer
Serial.begin(9600);
}
// execute
void loop() {
digitalWrite(initPin, HIGH); // send 10 microsecond pulse
delayMicroseconds(10); // wait 10 microseconds before turning off
digitalWrite(initPin, LOW); // stop sending the pulse
pulseTime = pulseIn(echoPin, HIGH); // Look for a return pulse, it should be high
as the pulse goes low-high-low
distance = pulseTime/58; // Distance = pulse time / 58 to convert to
cm.
total= total - readings[arrayIndex]; // subtract the last distance
readings[arrayIndex] = distance; // add distance reading to array
total= total + readings[arrayIndex]; // add the reading to the total
arrayIndex = arrayIndex + 1; // go to the next item in the array
// At the end of the array (10 items) then start again
if (arrayIndex >= numOfReadings) {
arrayIndex = 0;
}
averageDistance = total / numOfReadings; // calculate the average distance
// if the distance is less than 255cm then change the brightness of the LED
if (averageDistance < 255) {
redLEDValue = 255 - averageDistance; // this means the smaller the distance the
brighterthe LED.
}
analogWrite(redLEDPin, redLEDValue); // Write current value to LED pins
Serial.println(averageDistance, DEC); // print out the average distance to the
debugger
delay(100); // wait 100 milli seconds before looping
again
}
So for today, I had assemble the circuit. I had build the circuit for avoiding object.
For the testing, I had used this code:
//author: rabia'tul adawiyah roslan
//projects name: ultrasonic path planning for the blind person
// variables to take x number of readings and then average them
// to remove the jitter/noise from the DYP-ME007 sonar readings
const int numOfReadings = 10; // number of readings to take/ items in the
array
int readings[numOfReadings]; // stores the distance readings in an array
int arrayIndex = 0; // arrayIndex of the current item in the
array
int total = 0; // stores the cumlative total
int averageDistance = 0; // stores the average value
// setup pins and variables for DYP-ME007 sonar device
int echoPin = 2; // DYP-ME007 echo pin (digital 2)
int initPin = 3; // DYP-ME007 trigger pin (digital 3)
unsigned long pulseTime = 0; // stores the pulse in Micro Seconds
unsigned long distance = 0; // variable for storing the distance (cm)
// setup pins/values for LED
int redLEDPin = 9; // Red LED, connected to digital PWM
pin 9
int redLEDValue = 0; // stores the value of brightness for the
LED (0 = fully off, 255 = fully on)
//setup
void setup() {
pinMode(redLEDPin, OUTPUT); // sets pin 9 as output
pinMode(initPin, OUTPUT); // set init pin 3 as output
pinMode(echoPin, INPUT); // set echo pin 2 as input
// create array loop to iterate over every item in the array
for (int thisReading = 0; thisReading < numOfReadings; thisReading++) {
readings[thisReading] = 0;
}
// initialize the serial port, lets you view the
// distances being pinged if connected to computer
Serial.begin(9600);
}
// execute
void loop() {
digitalWrite(initPin, HIGH); // send 10 microsecond pulse
delayMicroseconds(10); // wait 10 microseconds before turning off
digitalWrite(initPin, LOW); // stop sending the pulse
pulseTime = pulseIn(echoPin, HIGH); // Look for a return pulse, it should be high
as the pulse goes low-high-low
distance = pulseTime/58; // Distance = pulse time / 58 to convert to
cm.
total= total - readings[arrayIndex]; // subtract the last distance
readings[arrayIndex] = distance; // add distance reading to array
total= total + readings[arrayIndex]; // add the reading to the total
arrayIndex = arrayIndex + 1; // go to the next item in the array
// At the end of the array (10 items) then start again
if (arrayIndex >= numOfReadings) {
arrayIndex = 0;
}
averageDistance = total / numOfReadings; // calculate the average distance
// if the distance is less than 255cm then change the brightness of the LED
if (averageDistance < 255) {
redLEDValue = 255 - averageDistance; // this means the smaller the distance the
brighterthe LED.
}
analogWrite(redLEDPin, redLEDValue); // Write current value to LED pins
Serial.println(averageDistance, DEC); // print out the average distance to the
debugger
delay(100); // wait 100 milli seconds before looping
again
}
Wednesday, September 5, 2012
Week 3 ( FYP 2)
Assalamualaikum.
On this week, I just upgrade the looks of my project. I add the light at the robotic base. my purpose to put this light is to make the people around the blind people alert that he or she exist in the surrounding. I am still thinking whether it suitable to put some sound like buzzer or not.
On this week, I just upgrade the looks of my project. I add the light at the robotic base. my purpose to put this light is to make the people around the blind people alert that he or she exist in the surrounding. I am still thinking whether it suitable to put some sound like buzzer or not.
Subscribe to:
Posts (Atom)