Pedro inácio
New Member
Boas pessoal, estou a fazer um programa para trabalhar com o meu Arduino através do Android.
O programa é para ligar e desligar as portas do Arduino com checkbox, se a checkbox estiver Checked então a porta vais estar a "1" se não fica a "0"
o meu problema é que sou muito verde na programação e não sei como por o android a enviar o comando pela porta serial (bluetooth).
O codigo está assim
neste caso eu julgo que o que falta tem de ser posto aqui (se quiser ligar a porta 13):
mas tenho a sensação que tenho de fazer mais alguma configuração, tenho tentado ver os tutorials mas não percebo nada do que eles explicam.
Vai em anexo a pasta do projecto para que quiser experimentar o que está feito.
Agradecia uma ajuda da vossa parte.
Cumprimentos,
Pedro Inácio
O programa é para ligar e desligar as portas do Arduino com checkbox, se a checkbox estiver Checked então a porta vais estar a "1" se não fica a "0"
o meu problema é que sou muito verde na programação e não sei como por o android a enviar o comando pela porta serial (bluetooth).
O codigo está assim
B4X:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim admin As BluetoothAdmin
Dim timer1 As Timer
Dim serial1 As Serial
Dim foundDevices As List
Type NameAndMac (Name As String, Mac As String)
Dim connectedDevice As NameAndMac
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim btnSearchForDevices As Button
Dim btnAllowConnection As Button
Dim Button1 As Button
Dim Button2 As Button
Dim CheckBox1 As CheckBox
Dim CheckBox2 As CheckBox
Dim CheckBox3 As CheckBox
Dim HorizontalScrollView1 As HorizontalScrollView
Dim CheckBox10 As CheckBox
Dim CheckBox4 As CheckBox
Dim CheckBox5 As CheckBox
Dim CheckBox6 As CheckBox
Dim CheckBox7 As CheckBox
Dim CheckBox8 As CheckBox
Dim CheckBox9 As CheckBox
Dim EditText1 As EditText
Dim CheckBox11 As CheckBox
Dim CheckBox13 As CheckBox
Dim CheckBox14 As CheckBox
Dim CheckBox15 As CheckBox
Dim CheckBox16 As CheckBox
Dim CheckBox17 As CheckBox
Dim CheckBox18 As CheckBox
Dim CheckBox19 As CheckBox
Dim CheckBox20 As CheckBox
Dim CheckBox21 As CheckBox
Dim CheckBox22 As CheckBox
Dim CheckBox12 As CheckBox
Dim avancarsbt As Button
Dim CheckBox23 As CheckBox
Dim ImageView1 As ImageView
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Msgbox("Obrigado por experimentar este programa. Com ele podemos comunicar com o Arduino Nano v3 atravez do Bluetooth", "Arduino NANO V3 BT")
If FirstTime Then
admin.Initialize("admin")
serial1.Initialize("serial1")
End If
Activity.LoadLayout("1")
End Sub
Sub Activity_Resume
btnSearchForDevices.Enabled = False
btnAllowConnection.Enabled = False
If admin.IsEnabled = False Then
If admin.Enable = False Then
ToastMessageShow("Error enabling Bluetooth adapter.", True)
Else
ToastMessageShow("Enabling Bluetooth adapter...", False)
'the StateChanged event will be soon raised
End If
Else
Admin_StateChanged(admin.STATE_ON, 0)
End If
End Sub
Sub Admin_StateChanged (NewState As Int, OldState As Int)
btnSearchForDevices.Enabled = (NewState = admin.STATE_ON)
btnAllowConnection.Enabled = btnSearchForDevices.Enabled
End Sub
Sub Activity_Pause (UserClosed As Boolean)
If UserClosed = True Then
serial1.Disconnect
End If
End Sub
Sub btnSearchForDevices_Click
foundDevices.Initialize
If admin.StartDiscovery = False Then
ToastMessageShow("Error starting discovery process.", True)
Else
ProgressDialogShow("Searching for devices...")
End If
End Sub
Sub Admin_DiscoveryFinished
ProgressDialogHide
If foundDevices.Size = 0 Then
ToastMessageShow("No device found.", True)
Else
Dim l As List
l.Initialize
For i = 0 To foundDevices.Size - 1
Dim nm As NameAndMac
nm = foundDevices.Get(i)
l.Add(nm.Name)
Next
Dim res As Int
res = InputList(l, "Choose device to connect", -1)
If res <> DialogResponse.CANCEL Then
connectedDevice = foundDevices.Get(res)
ProgressDialogShow("Trying to connect to: " & connectedDevice.Name & " (" & connectedDevice.Mac & ")")
serial1.Connect(connectedDevice.Mac)
End If
End If
End Sub
Sub Admin_DeviceFound (Name As String, MacAddress As String)
Log(Name & ":" & MacAddress)
Dim nm As NameAndMac
nm.Name = Name
nm.Mac = MacAddress
foundDevices.Add(nm)
ProgressDialogShow("Searching for devices (~ device found)...".Replace("~", foundDevices.Size))
End Sub
Sub btnAllowConnection_Click
'this intent makes the device discoverable for 300 seconds.
Dim i As Intent
i.Initialize("android.bluetooth.adapter.action.REQUEST_DISCOVERABLE", "")
i.PutExtra("android.bluetooth.adapter.extra.DISCOVERABLE_DURATION", 300)
StartActivity(i)
serial1.Listen
End Sub
Sub Serial1_Connected (Success As Boolean)
ProgressDialogHide
Log("connected: " & Success)
If Success = False Then
Log(LastException.Message)
ToastMessageShow("Error connecting: " & LastException.Message, True)
Else
'StartActivity(ChatActivity)
'StartActivity(nanocomand)
End If
End Sub
Sub avancarsbt_Click
Activity.LoadLayout("2")
'StartActivity(nanocomand)
End Sub
Sub CheckBox23_CheckedChange(Checked As Boolean)
Activity.LoadLayout("1")
End Sub
Sub ImageView1_Click
End Sub
Sub ImageView1_LongClick
End Sub
Sub CheckBox0_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox1_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox2_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox3_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox4_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox5_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox6_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox7_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox8_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox9_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox10_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox11_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox12_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox13_CheckedChange(Checked As Boolean)
If Checked = True Then
'codigo
Else
'codigo
End If
End Sub
Sub CheckBox14_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox15_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox16_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox17_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox18_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox19_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox20_CheckedChange(Checked As Boolean)
End Sub
Sub CheckBox21_CheckedChange(Checked As Boolean)
End Sub
neste caso eu julgo que o que falta tem de ser posto aqui (se quiser ligar a porta 13):
B4X:
Sub CheckBox13_CheckedChange(Checked As Boolean)
If Checked = True Then
'codigo
Else
'codigo
End If
End Sub
mas tenho a sensação que tenho de fazer mais alguma configuração, tenho tentado ver os tutorials mas não percebo nada do que eles explicam.
Vai em anexo a pasta do projecto para que quiser experimentar o que está feito.
Agradecia uma ajuda da vossa parte.
Cumprimentos,
Pedro Inácio