Page 1
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 1/91
Page 2
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 2/91
Page 3
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 3/91
Page 4
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 4/91
Page 5
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 5/91
Page 6
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 6/91
Page 7
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 7/91
Page 8
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 8/91
Page 9
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 9/91
Page 10
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 10/91
Page 11
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 11/91
Page 12
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 12/91
Page 13
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 13/91
Page 14
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 14/91
Page 15
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 15/91
Page 16
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 16/91
Page 17
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 17/91
Page 18
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 18/91
Page 19
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 19/91
Page 20
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 20/91
Page 21
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 21/91
Page 22
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 22/91
Page 23
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 23/91
Page 24
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 24/91
Page 25
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 25/91
Page 26
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 26/91
Page 27
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 27/91
Page 28
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 28/91
Page 29
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 29/91
Page 30
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 30/91
Page 31
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 31/91
Page 32
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 32/91
Page 33
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 33/91
Page 34
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 34/91
Page 35
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 35/91
Page 36
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 36/91
Page 37
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 37/91
Page 38
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 38/91
Page 39
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 39/91
Page 40
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 40/91
Page 41
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 41/91
Page 42
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 42/91
Page 43
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 43/91
Page 44
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 44/91
Page 45
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 45/91
Page 46
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 46/91
Page 47
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 47/91
Page 48
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 48/91
Page 49
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 49/91
Page 50
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 50/91
Page 51
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 51/91
Page 52
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 52/91
Page 53
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 53/91
Page 54
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 54/91
Page 55
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 55/91
Page 56
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 56/91
Page 57
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 57/91
Page 58
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 58/91
Page 59
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 59/91
Page 60
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 60/91
Page 61
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 61/91
Page 62
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
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
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
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
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
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
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
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 69/91
Page lxix
Page 70
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
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
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 72/91
Page 73
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
8/8/2019 Search & Rescue Robot_NoRestriction
http://slidepdf.com/reader/full/search-rescue-robotnorestriction 74/91
Page 75
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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