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.
 



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. 



 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.


Its Working!

After a month struggle to create the program finally its worked! Alhamdulilah.. :)








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.
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
After sizing and remove the serial monitor, AD622 and 7660s. 


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
}

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.