search & rescue robot_norestriction

Post on 10-Apr-2018

233 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

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

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

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

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

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

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

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

Page lxix

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

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

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

8/8/2019 Search & Rescue Robot_NoRestriction

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related