search & rescue robot_norestriction

91
SEARCH AND RESCUE ROBOT: A Final Report Detai ling How Four OSU Senior Design II Students Designed a Working Search and Rescue Robot Prototype Presented to: Dr. Teague, Class Administrator Dr. Fierro, Group Mentor Monday, December 8, 2003 Ben Lee Kazi Islam Josh Wheeler Julius Marpaung

Upload: obabiker21

Post on 10-Apr-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 1/91

Page 2: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 2/91

Page 3: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 3/91

Page 4: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 4/91

Page 5: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 5/91

Page 6: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 6/91

Page 7: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 7/91

Page 8: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 8/91

Page 9: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 9/91

Page 10: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 10/91

Page 11: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 11/91

Page 12: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 12/91

Page 13: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 13/91

Page 14: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 14/91

Page 15: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 15/91

Page 16: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 16/91

Page 17: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 17/91

Page 18: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 18/91

Page 19: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 19/91

Page 20: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 20/91

Page 21: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 21/91

Page 22: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 22/91

Page 23: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 23/91

Page 24: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 24/91

Page 25: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 25/91

Page 26: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 26/91

Page 27: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 27/91

Page 28: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 28/91

Page 29: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 29/91

Page 30: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 30/91

Page 31: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 31/91

Page 32: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 32/91

Page 33: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 33/91

Page 34: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 34/91

Page 35: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 35/91

Page 36: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 36/91

Page 37: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 37/91

Page 38: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 38/91

Page 39: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 39/91

Page 40: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 40/91

Page 41: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 41/91

Page 42: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 42/91

Page 43: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 43/91

Page 44: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 44/91

Page 45: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 45/91

Page 46: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 46/91

Page 47: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 47/91

Page 48: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 48/91

Page 49: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 49/91

Page 50: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 50/91

Page 51: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 51/91

Page 52: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 52/91

Page 53: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 53/91

Page 54: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 54/91

Page 55: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 55/91

Page 56: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 56/91

Page 57: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 57/91

Page 58: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 58/91

Page 59: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 59/91

Page 60: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 60/91

Page 61: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 61/91

Page 62: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 62/91

mnuRefresh10.Checked = TruemnuRefresh100.Checked = FalsemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh100_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 100mnuNoRate.Checked = FalsemnuRefresh10.Checked = FalsemnuRefresh100.Checked = TruemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh500_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 500mnuNoRate.Checked = False

mnuRefresh10.Checked = FalsemnuRefresh100.Checked = FalsemnuRefresh500.Checked = TruemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh1000_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 1000mnuNoRate.Checked = FalsemnuRefresh10.Checked = FalsemnuRefresh100.Checked = FalsemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = TrueEnd Sub

Private Sub TimerRefresh_Timer()

Displayme

End Sub

Private Sub MSComm1_OnComm()

strmydata = MSComm1.Input

strmyarray = Split(strmydata, ",")

intpackagecheck = UBound(strmyarray)

If intpackagecheck > 0 Then

If intnumberofdata < 3 Then

strmydata1 = strmydata1 & strmydataintnumberofdata = intnumberofdata + 1

End If

Page lxii

Page 63: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 63/91

If intnumberofdata = 3 Then

strmydata1 = Trim(strmydata1)strmyarray1 = Split(strmydata1, ",")intpackagecheck1 = UBound(strmyarray1)Calculatedataintnumberofdata = 0strmydata1 = ""

End If

End If

End Sub

Private Sub Calculatedata()

If intpackagecheck1 > 5 Then

Do While intdatacounter < 6

If strmyarray1(intdatacounter) = "T" ThendblTemp = Val(strmyarray1(intdatacounter + 1))End If

If strmyarray1(intdatacounter) = "H" ThendblHumi = Val(strmyarray1(intdatacounter + 1))End If

If strmyarray1(intdatacounter) = "P" ThendblPress = Val(strmyarray1(intdatacounter + 1))End If

intdatacounter = intdatacounter + 1

Loop

End If

PackSensorintdatacounter = 0

End Sub

Private Sub PackSensor()

dblTemp1 = ((dblTemp + 55) * 5) / 1024dblTemp2 = (dblTemp1 * 10000) / (5 - dblTemp1)dblTempC = ((dblTemp2 ^ 6) * (10 ^ -27)) - ((dblTemp2 ^ 5) * 6 * (10 ^ -22))+ ((dblTemp2 ^ 4) * (10 ^ -16)) - ((dblTemp2 ^ 3) * (10 ^ -11)) + ((dblTemp2^ 2) * 4 * (10 ^ -7)) - (dblTemp2 * 0.0091) + 81.622dblTempF = ((dblTempC * 9) / 5) + 32dblHumidity1 = (dblHumi * 5) / 1024dblHumidityRH = (0.0331 * dblHumidity1 * 1000) - 26.906dblPressure1 = (dblPress * 5) / 1024

Page lxiii

Page 64: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 64/91

dblPressurePSI = 7.5 * (dblPressure1 - 0.5)dblPressureAtm = 0.068 * dblPressurePSI

End Sub

Private Sub Displayme()

If Me.OptionReal.Value = True Then

cmdGetManualData.Enabled = False

'Real TimeMe.lblTemp1.Enabled = TrueMe.txtTemp1.Enabled = TrueMe.lblTemperature1.Enabled = TrueMe.lblHum1.Enabled = TrueMe.txtHum1.Enabled = TrueMe.lblHumidity1.Enabled = TrueMe.lblPress1.Enabled = TrueMe.txtPress1.Enabled = True

Me.lblPressure1.Enabled = True

'Manual TimeMe.lblTemp2.Enabled = FalseMe.lblHum2.Enabled = FalseMe.lblPress2.Enabled = FalseMe.txtTemp2.Enabled = FalseMe.txtHum2.Enabled = FalseMe.txtPress2.Enabled = FalseMe.lblTemperature2.Enabled = FalseMe.lblHumidity2.Enabled = FalseMe.lblPressure2.Enabled = FalseMe.txtTemp2.Text = ""Me.txtHum2.Text = ""Me.txtPress2.Text = ""

'Log OutputMe.lblLogTemp.Enabled = FalseMe.lblLogHumi.Enabled = FalseMe.lblLogPress.Enabled = FalseMe.txtTemp3.Enabled = FalseMe.txtHum3.Enabled = FalseMe.txtPress3.Enabled = FalseMe.lblTemperature3.Enabled = FalseMe.lblHumidity3.Enabled = FalseMe.lblPressure3.Enabled = False

If Me.OptionCelcius.Value = True ThenMe.lblTemperature1.Caption = "deg C"Me.txtTemp1.Text = FormatNumber(dblTempC, 1)

ElseIf Me.OptionFahrenheit.Value = True ThenMe.lblTemperature1.Caption = "deg F"Me.txtTemp1.Text = FormatNumber(dblTempF, 1)

End If

Me.txtHum1.Text = FormatNumber(dblHumidityRH, 1)

Page lxiv

Page 65: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 65/91

If Me.OptionPSI.Value = True ThenMe.lblPressure1.Caption = "PSI"Me.txtPress1.Text = FormatNumber(dblPressurePSI, 1)

ElseIf Me.OptionAtm.Value = True ThenMe.lblPressure1.Caption = "Atm"Me.txtPress1.Text = FormatNumber(dblPressureAtm, 1)

End If

ElseIf Me.OptionManual.Value = True Then

If bFileOpen = True And bLogManual = True And bLogAutomatic = False Then

cmdGetManualData.Enabled = True

End If

'Real TimeMe.lblTemp1.Enabled = FalseMe.txtTemp1.Enabled = FalseMe.lblTemperature1.Enabled = False

Me.lblHum1.Enabled = FalseMe.txtHum1.Enabled = FalseMe.lblHumidity1.Enabled = FalseMe.lblPress1.Enabled = FalseMe.txtPress1.Enabled = FalseMe.lblPressure1.Enabled = False

'Manual TimeMe.lblTemp2.Enabled = TrueMe.lblHum2.Enabled = TrueMe.lblPress2.Enabled = TrueMe.txtTemp2.Enabled = TrueMe.txtHum2.Enabled = TrueMe.txtPress2.Enabled = TrueMe.lblTemperature2.Enabled = TrueMe.lblHumidity2.Enabled = TrueMe.lblPressure2.Enabled = True

'Log OutputMe.lblLogTemp.Enabled = TrueMe.lblLogHumi.Enabled = TrueMe.lblLogPress.Enabled = TrueMe.txtTemp3.Enabled = TrueMe.txtHum3.Enabled = TrueMe.txtPress3.Enabled = TrueMe.lblTemperature3.Enabled = TrueMe.lblHumidity3.Enabled = True

Me.lblPressure3.Enabled = True

If Me.OptionCelcius.Value = True ThenMe.lblTemperature2.Caption = "deg C"Me.lblTemperature3.Caption = "deg C"Me.txtTemp2.Text = FormatNumber(dblTempC, 1)

ElseIf Me.OptionFahrenheit.Value = True ThenMe.lblTemperature2.Caption = "deg F"Me.lblTemperature3.Caption = "deg F"Me.txtTemp2.Text = FormatNumber(dblTempF, 1)

Page lxv

Page 66: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 66/91

End If

Me.txtHum2.Text = FormatNumber(dblHumidityRH, 1)

If Me.OptionPSI.Value = True ThenMe.lblPressure2.Caption = "PSI"Me.lblPressure3.Caption = "PSI"Me.txtPress2.Text = FormatNumber(dblPressurePSI, 1)

ElseIf Me.OptionAtm.Value = True ThenMe.lblPressure2.Caption = "Atm"Me.lblPressure3.Caption = "Atm"Me.txtPress2.Text = FormatNumber(dblPressureAtm, 1)

End If

End If

End Sub

Private Sub cmdGetManualData_Click()

If bLogManual = True And bLogAutomatic = False And bFileOpen = True AndMe.OptionManual.Value = True Then

If Me.OptionCelcius.Value = True ThendblManualTemp = FormatNumber(dblTempC, 3)Me.txtTemp3.Text = FormatNumber(dblTempC, 3)strManualTempunit = " C"

ElseIf Me.OptionFahrenheit.Value = True ThendblManualTemp = FormatNumber(dblTempF, 3)Me.txtTemp3.Text = FormatNumber(dblTempF, 3)strManualTempunit = " F"

End If

dblManualHumi = FormatNumber(dblHumidityRH, 3)Me.txtHum3.Text = FormatNumber(dblHumidityRH, 3)strManualHumiunit = " %RH"

If Me.OptionPSI.Value = True ThendblManualPress = FormatNumber(dblPressurePSI, 3)Me.txtPress3.Text = FormatNumber(dblPressurePSI, 3)strManualPressunit = " PSI"

ElseIf Me.OptionAtm.Value = True ThendblManualPress = FormatNumber(dblPressureAtm, 3)Me.txtPress3.Text = FormatNumber(dblPressureAtm, 3)strManualPressunit = " Atm"

End If

strLog = Now & "," & "Temperature: " & dblManualTemp & strManualTempunit &"," & "Humidity: " & dblManualHumi & strManualHumiunit & "," & "Pressure: " &dblManualPress & strManualPressunit

Print #iFile, strLog

End If

End Sub

Page lxvi

Page 67: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 67/91

Private Sub tcpServer_Close()bConnection = FalseClosePorttcpServer.Closemsg = ""Checkuserpass = 0tcpServer.Listen

End Sub

Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)If tcpServer.State <> sckClosed Then

tcpServer.CloseEnd IftcpServer.Accept requestID

End Sub

Private Sub tcpServer_Error(ByVal Number As Integer, Description As String,ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByValHelpContext As Long, CancelDisplay As Boolean)

'MsgBox Source & ": " & Description, vbExclamation, "TCP/IP Error"bConnection = FalseEnd Sub

Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)

tcpServer.GetData msg

Msgfromclient = Split(msg, ",")Msgarray = UBound(Msgfromclient)

If Msgarray > 0 And Checkuserpass = 0 Then

If Msgfromclient(0) = Usera And Msgfromclient(1) = Passa ThenCheckuserpass = 1tcpServer.SendData "Password,Accepted"OpenPortbConnection = Truemsg = ""

ElseCheckuserpass = 0tcpServer.SendData "Invalid,Login"msg = ""

End If

End If

If Checkuserpass = 1 And Msgarray = 0 Then

Movetherobot

End If

End Sub

Private Sub Movetherobot()

Page lxvii

Page 68: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 68/91

If Msgfromclient(0) = "Stop" ThenOut Val("&H378"), Val(1)

End IfIf Msgfromclient(0) = "StraightForward" Then

Out Val("&H378"), Val(13)End IfIf Msgfromclient(0) = "ForwardLeft" Then

Out Val("&H378"), Val(9)End IfIf Msgfromclient(0) = "ForwardRight" Then

Out Val("&H378"), Val(5)End IfIf Msgfromclient(0) = "StraightBackward" Then

Out Val("&H378"), Val(14)End IfIf Msgfromclient(0) = "BackwardLeft" Then

Out Val("&H378"), Val(10)End IfIf Msgfromclient(0) = "BackwardRight" Then

Out Val("&H378"), Val(6)

End If

End Sub

Private Sub TimerSendClient_Timer()

If bConnection = True ThentcpServer.SendData "Temperature" & "," & dblTemp2 & "," & "Humidity" & "," &dblHumidity1 & "," & "Pressure" & "," & dblPressure1 & ","End If

End Sub

Page lxviii

Page 69: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 69/91

Page lxix

Page 70: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 70/91

APPENDIX F – SARR CLIENT CODE (VISUAL BASIC)

Option Explicit

Dim dblTemp2 As Double, dblTempC As Double, dblTempF As DoubleDim dblHumidity1 As Double, dblHumidityRH As DoubleDim dblPressure1 As Double, dblPressurePSI As Double, dblPressureAtm AsDoubleDim intMsgarray As Integer, intdatacounter As IntegerDim dblManualTemp As Double, dblManualHumi As Double, dblManualPress AsDoubleDim strManualTempunit As String, strManualHumiunit As String,strManualPressunit As StringDim strLog As StringDim bLogManual As Boolean, bLogAutomatic As Boolean, bFileOpen As BooleanDim iFile As Integer, CheckUserPassword As IntegerDim msg As String, strMsgfromserver() As String, strMsg1 As String, strMsg2As String

Dim strMsg2array() As StringDim bisup As Boolean, bisdown As Boolean, bisleft As Boolean, bisright AsBooleanDim intx As Integer, intxup As Integer, intxdown As IntegerDim intGear As Integer, intxleft As Integer, intxright As IntegerDim intCountHeat As Integer, intCountHeat1 As Integer, intCountHeatLoop AsIntegerDim bForward As Boolean, bMoveCheck As Boolean

Private Sub Form_Load()

Me.mnuRelogin.Visible = FalseMe.mnuRelogin1.Visible = FalseMe.mnuCloseConnection.Visible = FalseMe.mnuCloseConnection1.Visible = False

TimerRefresh.Enabled = FalseTimerLog.Enabled = FalsecmdGetManualData.Enabled = Falseintdatacounter = 0

bLogManual = FalsebFileOpen = FalsebLogAutomatic = False

strMsg1 = ""

bForward = TruebMoveCheck = Truebisup = Falsebisdown = Falsebisleft = Falsebisright = Falseintx = 0intxup = 1intxdown = 2intxleft = 4

Page lxx

Page 71: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 71/91

intxright = 8

intCountHeat = 0intCountHeat1 = 100intCountHeatLoop = 0

CheckUserPassword = 0

'Me.Width = 3270Me.Height = Screen.HeightMe.Move 0, 0Me.OptionCelcius.Value = TrueMe.OptionReal.Value = TrueMe.KeyPreview = True

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)ClosePortUnload Form2

Unload Form3Unload Form5End Sub

Private Sub mnuTutorial_Click()Form5.ShowEnd Sub

Private Sub mnuAbout_Click()Form3.ShowEnd Sub

Private Sub mnuCreateFile_Click()

If bFileOpen ThenClose #iFile

End If

On Error Resume NextMe.CommonDialog1.InitDir = App.PathMe.CommonDialog1.DefaultExt = ".log"Me.CommonDialog1.FileName = "Log1.log"Me.CommonDialog1.Filter = "Log File (*.log)|*.log|All Files (*.*)|*.*"Me.CommonDialog1.FilterIndex = 0Me.CommonDialog1.CancelError = TrueMe.CommonDialog1.ShowSave

If Err.Number = 0 ThenIf Len(Me.CommonDialog1.FileName) > 0 Then

iFile = FreeFileOpen Me.CommonDialog1.FileName For Output As #iFilebFileOpen = True

End IfElse

Err.ClearEnd If

Page lxxi

Page 72: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 72/91

Page 73: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 73/91

mnuLog10ms.Checked = FalsemnuLog100ms.Checked = TruemnuLog500ms.Checked = FalsemnuLog1000ms.Checked = False

End If

End Sub

Private Sub mnuLog500ms_Click()

If bFileOpen = True Then

bLogManual = FalsebLogAutomatic = TrueTimerLog.Enabled = TrueTimerLog.Interval = 500cmdGetManualData.Enabled = FalsemnuLog10ms.Checked = FalsemnuLog100ms.Checked = False

mnuLog500ms.Checked = TruemnuLog1000ms.Checked = False

End If

End Sub

Private Sub mnuLog1000ms_Click()

If bFileOpen = True Then

bLogManual = FalsebLogAutomatic = TrueTimerLog.Enabled = TrueTimerLog.Interval = 1000cmdGetManualData.Enabled = FalsemnuLog10ms.Checked = FalsemnuLog100ms.Checked = FalsemnuLog500ms.Checked = FalsemnuLog1000ms.Checked = True

End If

End Sub

Private Sub TimerLog_Timer()

If bLogManual = False And bLogAutomatic = True And bFileOpen = True Then

If Me.OptionCelcius.Value = True ThendblManualTemp = FormatNumber(dblTempC, 3)strManualTempunit = " C"

ElseIf Me.OptionFahrenheit.Value = True ThendblManualTemp = FormatNumber(dblTempF, 3)strManualTempunit = " F"

End If

Page lxxiii

Page 74: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 74/91

Page 75: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 75/91

Me.lblPress2.Enabled = TrueMe.txtTemp2.Enabled = TrueMe.txtTemp2.Text = ""Me.txtHum2.Enabled = TrueMe.txtHum2.Text = ""Me.txtPress2.Enabled = TrueMe.txtPress2.Text = ""Me.lblTemperature2.Enabled = TrueMe.lblHumidity2.Enabled = TrueMe.lblPressure2.Enabled = True

'Log OutputMe.lblLogTemp.Enabled = TrueMe.lblLogHumi.Enabled = TrueMe.lblLogPress.Enabled = TrueMe.txtTemp3.Enabled = TrueMe.txtTemp3.Text = ""Me.txtHum3.Enabled = TrueMe.txtHum3.Text = ""Me.txtPress3.Enabled = True

Me.txtPress3.Text = ""Me.lblTemperature3.Enabled = TrueMe.lblHumidity3.Enabled = TrueMe.lblPressure3.Enabled = True

End Sub

Private Sub mnuQuit_Click()Unload MeEnd Sub

Private Sub ClosePort()

tcpClient.CloseTimerRefresh.Enabled = FalseTimerLog.Enabled = False

If bFileOpen ThenClose #iFile

End If

End Sub

Private Sub mnuNoRate_Click()TimerRefresh.Enabled = FalsemnuNoRate.Checked = TruemnuRefresh10.Checked = False

mnuRefresh100.Checked = FalsemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh10_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 13mnuNoRate.Checked = FalsemnuRefresh10.Checked = True

Page lxxv

Page 76: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 76/91

mnuRefresh100.Checked = FalsemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh100_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 100mnuNoRate.Checked = FalsemnuRefresh10.Checked = FalsemnuRefresh100.Checked = TruemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh500_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 500mnuNoRate.Checked = FalsemnuRefresh10.Checked = False

mnuRefresh100.Checked = FalsemnuRefresh500.Checked = TruemnuRefresh1000.Checked = FalseEnd Sub

Private Sub mnuRefresh1000_Click()TimerRefresh.Enabled = TrueTimerRefresh.Interval = 1000mnuNoRate.Checked = FalsemnuRefresh10.Checked = FalsemnuRefresh100.Checked = FalsemnuRefresh500.Checked = FalsemnuRefresh1000.Checked = TrueEnd Sub

Private Sub PackSensor()

dblTempC = ((dblTemp2 ^ 6) * (10 ^ -27)) - ((dblTemp2 ^ 5) * 6 * (10 ^ -22))+ ((dblTemp2 ^ 4) * (10 ^ -16)) - ((dblTemp2 ^ 3) * (10 ^ -11)) + ((dblTemp2^ 2) * 4 * (10 ^ -7)) - (dblTemp2 * 0.0091) + 81.622dblTempF = ((dblTempC * 9) / 5) + 32dblHumidityRH = (0.0331 * dblHumidity1 * 1000) - 26.906dblPressurePSI = 7.5 * (dblPressure1 - 0.5)dblPressureAtm = 0.068 * dblPressurePSI

End Sub

Private Sub TimerRefresh_Timer()DisplaymeEnd Sub

Private Sub Displayme()

If Me.OptionReal.Value = True Then

cmdGetManualData.Enabled = False

Page lxxvi

Page 77: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 77/91

'Real TimeMe.lblTemp1.Enabled = TrueMe.txtTemp1.Enabled = TrueMe.lblTemperature1.Enabled = TrueMe.lblHum1.Enabled = TrueMe.txtHum1.Enabled = TrueMe.lblHumidity1.Enabled = TrueMe.lblPress1.Enabled = TrueMe.txtPress1.Enabled = TrueMe.lblPressure1.Enabled = True

'Manual TimeMe.lblTemp2.Enabled = FalseMe.lblHum2.Enabled = FalseMe.lblPress2.Enabled = FalseMe.txtTemp2.Enabled = FalseMe.txtHum2.Enabled = FalseMe.txtPress2.Enabled = FalseMe.lblTemperature2.Enabled = FalseMe.lblHumidity2.Enabled = False

Me.lblPressure2.Enabled = FalseMe.txtTemp2.Text = ""Me.txtHum2.Text = ""Me.txtPress2.Text = ""

'Log OutputMe.lblLogTemp.Enabled = FalseMe.lblLogHumi.Enabled = FalseMe.lblLogPress.Enabled = FalseMe.txtTemp3.Enabled = FalseMe.txtHum3.Enabled = FalseMe.txtPress3.Enabled = FalseMe.lblTemperature3.Enabled = FalseMe.lblHumidity3.Enabled = FalseMe.lblPressure3.Enabled = False

If Me.OptionCelcius.Value = True ThenMe.lblTemperature1.Caption = "deg C"Me.txtTemp1.Text = FormatNumber(dblTempC, 1)

ElseIf Me.OptionFahrenheit.Value = True ThenMe.lblTemperature1.Caption = "deg F"Me.txtTemp1.Text = FormatNumber(dblTempF, 1)

End If

Me.txtHum1.Text = FormatNumber(dblHumidityRH, 1)

If Me.OptionPSI.Value = True Then

Me.lblPressure1.Caption = "PSI"Me.txtPress1.Text = FormatNumber(dblPressurePSI, 1)

ElseIf Me.OptionAtm.Value = True ThenMe.lblPressure1.Caption = "Atm"Me.txtPress1.Text = FormatNumber(dblPressureAtm, 1)

End If

ElseIf Me.OptionManual.Value = True Then

If bFileOpen = True And bLogManual = True And bLogAutomatic = False Then

Page lxxvii

Page 78: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 78/91

cmdGetManualData.Enabled = True

End If

'Real TimeMe.lblTemp1.Enabled = FalseMe.txtTemp1.Enabled = FalseMe.lblTemperature1.Enabled = FalseMe.lblHum1.Enabled = FalseMe.txtHum1.Enabled = FalseMe.lblHumidity1.Enabled = FalseMe.lblPress1.Enabled = FalseMe.txtPress1.Enabled = FalseMe.lblPressure1.Enabled = False

'Manual TimeMe.lblTemp2.Enabled = TrueMe.lblHum2.Enabled = TrueMe.lblPress2.Enabled = True

Me.txtTemp2.Enabled = TrueMe.txtHum2.Enabled = TrueMe.txtPress2.Enabled = TrueMe.lblTemperature2.Enabled = TrueMe.lblHumidity2.Enabled = TrueMe.lblPressure2.Enabled = True

'Log OutputMe.lblLogTemp.Enabled = TrueMe.lblLogHumi.Enabled = TrueMe.lblLogPress.Enabled = TrueMe.txtTemp3.Enabled = TrueMe.txtHum3.Enabled = TrueMe.txtPress3.Enabled = TrueMe.lblTemperature3.Enabled = TrueMe.lblHumidity3.Enabled = TrueMe.lblPressure3.Enabled = True

If Me.OptionCelcius.Value = True ThenMe.lblTemperature2.Caption = "deg C"Me.lblTemperature3.Caption = "deg C"Me.txtTemp2.Text = FormatNumber(dblTempC, 1)

ElseIf Me.OptionFahrenheit.Value = True ThenMe.lblTemperature2.Caption = "deg F"Me.lblTemperature3.Caption = "deg F"Me.txtTemp2.Text = FormatNumber(dblTempF, 1)

End If

Me.txtHum2.Text = FormatNumber(dblHumidityRH, 1)

If Me.OptionPSI.Value = True ThenMe.lblPressure2.Caption = "PSI"Me.lblPressure3.Caption = "PSI"Me.txtPress2.Text = FormatNumber(dblPressurePSI, 1)

ElseIf Me.OptionAtm.Value = True ThenMe.lblPressure2.Caption = "Atm"Me.lblPressure3.Caption = "Atm"

Page lxxviii

Page 79: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 79/91

Me.txtPress2.Text = FormatNumber(dblPressureAtm, 1)End If

End If

HeatBar

End Sub

Private Sub HeatBar()

If dblTempC >= -30 And dblTempC < -20 ThenintCountHeat = 0

ElseIf dblTempC >= -20 And dblTempC < -10 ThenintCountHeat = 1

ElseIf dblTempC >= -10 And dblTempC < 0 ThenintCountHeat = 2

ElseIf dblTempC >= 0 And dblTempC < 10 ThenintCountHeat = 3

ElseIf dblTempC >= 10 And dblTempC < 20 ThenintCountHeat = 4

ElseIf dblTempC >= 20 And dblTempC < 30 ThenintCountHeat = 5

ElseIf dblTempC >= 20 And dblTempC < 30 ThenintCountHeat = 6

ElseIf dblTempC >= 30 And dblTempC < 40 ThenintCountHeat = 7

ElseIf dblTempC >= 40 And dblTempC < 50 ThenintCountHeat = 8

ElseIf dblTempC >= 50 And dblTempC < 60 ThenintCountHeat = 9

ElseIf dblTempC >= 60 And dblTempC < 70 ThenintCountHeat = 10

ElseIf dblTempC >= 70 And dblTempC < 80 ThenintCountHeat = 11

End If

If intCountHeat <> intCountHeat1 Then

Do While intCountHeatLoop < intCountHeat + 1

Me.lblHeat(intCountHeatLoop).Visible = TrueintCountHeatLoop = intCountHeatLoop + 1

LoopintCountHeat1 = intCountHeat

Page lxxix

Page 80: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 80/91

End If

intCountHeatLoop = 0

End Sub

Private Sub cmdGetManualData_Click()

If bLogManual = True And bLogAutomatic = False And bFileOpen = True AndMe.OptionManual.Value = True Then

If Me.OptionCelcius.Value = True ThendblManualTemp = FormatNumber(dblTempC, 3)Me.txtTemp3.Text = FormatNumber(dblTempC, 3)strManualTempunit = " C"

ElseIf Me.OptionFahrenheit.Value = True ThendblManualTemp = FormatNumber(dblTempF, 3)Me.txtTemp3.Text = FormatNumber(dblTempF, 3)strManualTempunit = " F"

End If

dblManualHumi = FormatNumber(dblHumidityRH, 3)Me.txtHum3.Text = FormatNumber(dblHumidityRH, 3)strManualHumiunit = " %RH"

If Me.OptionPSI.Value = True ThendblManualPress = FormatNumber(dblPressurePSI, 3)Me.txtPress3.Text = FormatNumber(dblPressurePSI, 3)strManualPressunit = " PSI"

ElseIf Me.OptionAtm.Value = True ThendblManualPress = FormatNumber(dblPressureAtm, 3)Me.txtPress3.Text = FormatNumber(dblPressureAtm, 3)strManualPressunit = " Atm"

End If

strLog = Now & "," & "Temperature: " & dblManualTemp & strManualTempunit &"," & "Humidity: " & dblManualHumi & strManualHumiunit & "," & "Pressure: " &dblManualPress & strManualPressunit

Print #iFile, strLog

End If

End Sub

Private Sub cmdLogin_Click()

Me.mnuRelogin.Visible = TrueMe.mnuRelogin1.Visible = TrueMe.mnuCloseConnection.Visible = TrueMe.mnuCloseConnection1.Visible = True

tcpClient.RemoteHost = Me.txtIPaddress.TextIf tcpClient.RemoteHost = "" Then

tcpClient.RemoteHost = "localhost"End If

Page lxxx

Page 81: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 81/91

tcpClient.RemotePort = 3456tcpClient.Connect

End Sub

Private Sub tcpClient_Close()CheckUserPassword = 0ClosePortstrMsg1 = ""msg = ""

End Sub

Private Sub tcpClient_Connect()tcpClient.SendData Me.txtServerUserName.Text & "," &

Me.txtServerPassword.TextEnd Sub

Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)

tcpClient.GetData msg

strMsg1 = msg & strMsg1strMsgfromserver = Split(strMsg1, ",")intMsgarray = UBound(strMsgfromserver)

If CheckUserPassword = 0 And intMsgarray = 1 Then

If strMsgfromserver(0) = "Invalid" And strMsgfromserver(1) = "Login" ThentcpClient.CloseCheckUserPassword = 0Me.FrameServerLogin.Visible = TrueMe.FrameOutput.Visible = FalseMe.FrmRobotMovement.Visible = FalseMe.FrmHeat.Visible = Falsemsg = ""strMsg1 = ""

ElseIf strMsgfromserver(0) = "Password" And strMsgfromserver(1) ="Accepted" Then

Me.TimerHidden.Enabled = TrueTimerRefresh.Enabled = TrueCheckUserPassword = 1Me.FrameServerLogin.Visible = FalseMe.FrameOutput.Visible = TrueMe.FrmRobotMovement.Visible = TrueMe.FrmHeat.Visible = Truemsg = ""strMsg1 = ""

End If

End If

If CheckUserPassword = 1 And intMsgarray > 5 Then

If intMsgarray > 5 Then

strMsg2 = Trim(strMsg1)

Page lxxxi

Page 82: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 82/91

strMsg2array = Split(strMsg2, ",")

Do While intdatacounter < 6

If strMsg2array(intdatacounter) = "Temperature" ThendblTemp2 = Val(strMsg2array(intdatacounter + 1))

End If

If strMsg2array(intdatacounter) = "Humidity" ThendblHumidity1 = Val(strMsg2array(intdatacounter + 1))

End If

If strMsg2array(intdatacounter) = "Pressure" ThendblPressure1 = Val(strMsg2array(intdatacounter + 1))

End If

intdatacounter = intdatacounter + 1Loop

PackSensor

strMsg2 = ""strMsg1 = ""intdatacounter = 0

End IfEnd IfEnd Sub

Private Sub tcpClient_Error(ByVal Number As Integer, Description As String,ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByValHelpContext As Long, CancelDisplay As Boolean)

MsgBox Source & ": " & Description, vbExclamation, "TCP/IP Error"End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If Me.FrameOutput.Visible = True Then

If KeyCode = vbKeyUp And bisup = False Thenbisup = Trueintx = intx + intxupEnd If

If KeyCode = vbKeyDown And bisdown = False Thenbisdown = Trueintx = intx + intxdownEnd If

If KeyCode = vbKeyLeft And bisleft = False Thenbisleft = Trueintx = intx + intxleftEnd If

If KeyCode = vbKeyRight And bisright = False Thenbisright = Trueintx = intx + intxrightEnd If

Page lxxxii

Page 83: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 83/91

GearTransition

End If

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

If Me.FrameOutput.Visible = True Then

If KeyCode = vbKeyUp Thenbisup = Falseintx = intx - intxupEnd If

If KeyCode = vbKeyDown Thenbisdown = Falseintx = intx - intxdownEnd If

If KeyCode = vbKeyLeft Thenbisleft = Falseintx = intx - intxleftEnd If

If KeyCode = vbKeyRight Thenbisright = Falseintx = intx - intxrightEnd If

GearTransition

End If

End Sub

Private Sub GearTransition()

If (bisup And bisdown) Or intx = 0 ThenMe.tcpClient.SendData "Stop"Exit Sub

End If

intGear = intx And 1

If (intGear = 1 And bForward = False) Or (intGear = 0 And bForward = True)

ThenMe.tcpClient.SendData "Stop"Outkey

ElseOutkey

End If

End Sub

' From Data Port

Page lxxxiii

Page 84: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 84/91

' Arrow up = bit 0 high = 1' Arrow down = bit 1 high = 2' Arrow left = bit 2 high = 4' Arrow right = bit 3 high = 8

Private Sub Outkey()

'Straight ForwardIf intx = 1 Then

Me.tcpClient.SendData "StraightForward"bForward = TrueExit Sub

End If

'Forward LeftIf intx = 5 Then

Me.tcpClient.SendData "ForwardLeft"bForward = TrueExit Sub

End If

'Forward RightIf intx = 9 Then

Me.tcpClient.SendData "ForwardRight"bForward = TrueExit Sub

End If

'Straight BackwardIf intx = 2 Then

Me.tcpClient.SendData "StraightBackward"bForward = FalseExit Sub

End If

'Backward LeftIf intx = 6 Then

Me.tcpClient.SendData "BackwardLeft"bForward = FalseExit Sub

End If

'Backward RightIf intx = 10 Then

Me.tcpClient.SendData "BackwardRight"bForward = FalseExit Sub

End If

End Sub

Private Sub TimerHidden_Timer()TimerHidden.Enabled = FalseEnd Sub

Private Sub OptionDuration_Click()Me.lblCircleTurns.Enabled = False

Page lxxxiv

Page 85: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 85/91

Me.txtCircleTurns.Enabled = FalseMe.lblCircleDuration.Enabled = TrueMe.txtCircleDuration.Enabled = TrueMe.cmdCircleTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = TrueEnd Sub

Private Sub OptionTurns_Click()Me.lblCircleDuration.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.lblCircleTurns.Enabled = TrueMe.txtCircleTurns.Enabled = TrueMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = TrueEnd Sub

Private Sub cmdCircleDuration_Click()

If Me.OptionDuration.Value = True And Val(Me.txtCircleDuration.Text) > 0 AndMe.OptionCircleLeft.Value = True Then

bMoveCheck = FalseMe.txtCircleTurns.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleDuration.Interval = Val(Me.txtCircleDuration.Text)Me.tcpClient.SendData "ForwardLeft"Me.TimerCircleDuration.Enabled = True

ElseIf Me.OptionDuration.Value = True And Val(Me.txtCircleDuration.Text) > 0And Me.OptionCircleRight.Value = True Then

bMoveCheck = FalseMe.txtCircleTurns.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleDuration.Interval = Val(Me.txtCircleDuration.Text)Me.tcpClient.SendData "ForwardRight"Me.TimerCircleDuration.Enabled = True

ElseIf Me.OptionDuration.Value = True And Val(Me.txtCircleDuration.Text) > 0

And Me.OptionStraightForward.Value = True Then

bMoveCheck = FalseMe.txtCircleTurns.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleDuration.Interval = Val(Me.txtCircleDuration.Text)

Page lxxxv

Page 86: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 86/91

Me.tcpClient.SendData "StraightForward"Me.TimerCircleDuration.Enabled = True

ElseIf Me.OptionDuration.Value = True And Val(Me.txtCircleDuration.Text) > 0And Me.OptionStraightBackward.Value = True Then

bMoveCheck = FalseMe.txtCircleTurns.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleDuration.Interval = Val(Me.txtCircleDuration.Text)Me.tcpClient.SendData "StraightBackward"Me.TimerCircleDuration.Enabled = True

ElseIf Me.OptionDuration.Value = True And Val(Me.txtCircleDuration.Text) > 0And Me.OptionBackwardLeft.Value = True Then

bMoveCheck = FalseMe.txtCircleTurns.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleDuration.Interval = Val(Me.txtCircleDuration.Text)Me.tcpClient.SendData "BackwardLeft"Me.TimerCircleDuration.Enabled = True

ElseIf Me.OptionDuration.Value = True And Val(Me.txtCircleDuration.Text) > 0And Me.OptionBackwardRight.Value = True Then

bMoveCheck = FalseMe.txtCircleTurns.Enabled = FalseMe.txtCircleDuration.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleDuration.Interval = Val(Me.txtCircleDuration.Text)Me.tcpClient.SendData "BackwardRight"Me.TimerCircleDuration.Enabled = True

End If

End Sub

Private Sub TimerCircleDuration_Timer()Me.tcpClient.SendData "Stop"Me.TimerCircleDuration.Enabled = FalseMe.txtCircleDuration.Enabled = TrueMe.OptionDuration.Enabled = TrueMe.OptionTurns.Enabled = TrueMe.cmdCircleDuration.Enabled = True

Page lxxxvi

Page 87: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 87/91

Me.cmdCircleTurns.Enabled = FalsebMoveCheck = Trueintx = 0End Sub

Private Sub cmdCircleTurns_Click()

If Me.OptionTurns.Value = True And Val(Me.txtCircleTurns.Text) > 0 AndMe.OptionCircleLeft.Value = True Then

bMoveCheck = FalseMe.txtCircleDuration.Enabled = FalseMe.txtCircleTurns.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleTurns.Interval = Val(Me.txtCircleTurns.Text) * 500Me.tcpClient.SendData "ForwardLeft"Me.TimerCircleTurns.Enabled = True

ElseIf Me.OptionTurns.Value = True And Val(Me.txtCircleTurns.Text) > 0 AndMe.OptionCircleRight.Value = True Then

bMoveCheck = FalseMe.txtCircleDuration.Enabled = FalseMe.txtCircleTurns.Enabled = FalseMe.OptionDuration.Enabled = FalseMe.OptionTurns.Enabled = FalseMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = FalseMe.TimerCircleTurns.Interval = Val(Me.txtCircleTurns.Text) * 500Me.tcpClient.SendData "ForwardRight"Me.TimerCircleTurns.Enabled = True

End If

End Sub

Private Sub TimerCircleTurns_Timer()Me.tcpClient.SendData "Stop"Me.TimerCircleTurns.Enabled = FalseMe.txtCircleTurns.Enabled = TrueMe.OptionDuration.Enabled = TrueMe.OptionTurns.Enabled = TrueMe.cmdCircleDuration.Enabled = FalseMe.cmdCircleTurns.Enabled = True

bMoveCheck = TrueEnd Sub

Private Sub cmdCircleStop_Click()

Me.TimerCircleDuration.Enabled = FalseMe.TimerCircleTurns.Enabled = FalseMe.tcpClient.SendData "Stop"If Me.OptionDuration.Value = True Then

Me.txtCircleDuration.Enabled = True

Page lxxxvii

Page 88: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 88/91

Me.cmdCircleDuration.Enabled = TrueElseIf Me.OptionTurns.Value = True Then

Me.txtCircleTurns.Enabled = TrueMe.cmdCircleTurns.Enabled = True

End IfMe.OptionDuration.Enabled = TrueMe.OptionTurns.Enabled = TruebMoveCheck = True

End Sub

Page lxxxviii

Page 89: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 89/91

APPENDIX G – PIC CODE (PIC-C LANGUAGE)

// Design 2 – Sensor / Transmitter Interface// PIC16F876//*****************************************************************//// Pin Designations://// AN0 – Sensors B0 - Power LED C6 - Serial Output to X-mit// AN1 - B1 - Low Battery LED C7 - Rcv from Boot-Loader// AN2 - B2 - Temp Switch// AN3 - !!B3 is bad!!// AN5 - B4 - Humidity Switch// B5 - Low Battery Switch// B6 - Pressure Switch//*****************************************************************//

#include <16f876.h>#use delay(clock=20000000)

#use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7)#fuses HS,NOWDT#use fast_io(A)#use fast_io(B)#use fast_io(C)

void test_batt( int16 signal );totemp(char c);topres(char c);tohum(char c);

char temp_string[20];char pres_string[20];char hum_string[20];byte stringptr=0;

void main() {

unsigned int temp_int; // value of char to be sent

int counter=0; // loop counterint i=0; // dummy loop counter

int16 anval0=0; // ADC0 Temperatureint16 anval1=0; // ADC1 Pressureint16 anval2=0; // ADC2 Humidityint16 anval5=0; // ADC5 Low Battery

float batt;

set_tris_b(0x00); // sets b pins for outputsset_tris_c(0x00); // sets c pins for outputs

setup_adc(ADC_CLOCK_INTERNAL); // Uses internal timer to run ADCsetup_adc_ports( A_ANALOG ); // Sets up RA0 RA1 RA2 RA3 RA5

// as analog inputs with Ref=Vddset_adc_channel(PIN_A0); // sets PIC to read from AN0

Page lxxxix

Page 90: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 90/91

output_B(0);output_high(PIN_B0); // "Power Is On" LED

// program while loopwhile (TRUE) {counter++;

// Read temperature sensor valueoutput_high(PIN_B2); // Turn on only Temperature Sensordelay_us(1000); // Delay is required for accurate readinganval0 = read_adc(); // reading from pin AN0output_low(PIN_B2); // Turn off temperature sensor

// Send temperature informationprintf(totemp, "\fT,%ld,", anval0);printf("%s", temp_string);

// Read pressure sensor valueoutput_high(PIN_B6); // Turn on only Pressure Sensor

delay_us(1000); // Delay is required for accurate readinganval1 = read_adc(); // reading from pin AN0output_low(PIN_B6); // Turn off pressure sensor

// Send pressure informationprintf(topres, "\fP,%ld,", anval1);printf("%s", pres_string);

// Read humidity sensor valueoutput_high(PIN_B4); // Turn on Humidity Sensordelay_us(1000); // Delay is required for accurate readinganval2 = read_adc(); // reading from pin AN0output_low(PIN_B4); // Turn off Humidity Sensor

// Send humidity informationprintf(tohum, "\fH,%ld,", anval2);printf("%s", hum_string);

// read Low Battery sensor value less frequentlyif (counter==1 || counter==64 || counter==128 || counter==192 ||

counter==32 || counter==96 || counter==160 || counter==224) {output_high(PIN_B5); // Turn on Low_Batt Signaldelay_us(1000); // Delay is required for accurate readinganval5 = read_adc(); // reading from pin AN5output_low(PIN_B5); // Turn off Low_Batt Signaltest_batt( anval5 ); // test the battery voltage

} // end of if

if (counter==255) // The program should not need this statementcounter = 0;

} // end of program while loop} // End of Main

// Function writes integer to stringtotemp(char c) {

if (c=='\f')stringptr=0;

Page xc

Page 91: Search & Rescue Robot_NoRestriction

8/8/2019 Search & Rescue Robot_NoRestriction

http://slidepdf.com/reader/full/search-rescue-robotnorestriction 91/91

elsetemp_string[stringptr++]=c;

temp_string[stringptr]=0;}

// Function writes integer to stringtopres(char c) {

if (c=='\f')stringptr=0;

elsepres_string[stringptr++]=c;

pres_string[stringptr]=0;}

// Function writes integer to stringtohum(char c) {

if (c=='\f')stringptr=0;

elsehum_string[stringptr++]=c;

hum_string[stringptr]=0;}

// Function tests battery voltage by way of a voltage dividervoid test_batt( int16 signal ) {

if ( signal < 348 ) // if half of the 9V battery level// is less than 3.0 V

output_high(PIN_B1); // send '1' to pin B1else output_low(PIN_B1); // otherwise send '0' to pin B1

} // end of test_batt