inacio1981 Posted September 12, 2013 at 10:43 AM Report #524238 Posted September 12, 2013 at 10:43 AM 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: 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 txtSend As EditText Dim TextWriter1 As TextWriter 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) Activity.LoadLayout("2") TextWriter1.Initialize(serial1.OutputStream) If Success = False Then Log(LastException.Message) ToastMessageShow("Error connecting: " & LastException.Message, True) Else End If End Sub Sub avancarsbt_Click Activity.LoadLayout("2") 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): 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. Que quiser experimentar o que está feito pode pedir que eu envio. Agradecia uma ajuda da vossa parte. Cumprimentos, Pedro Inácio
KTachyon Posted September 12, 2013 at 11:21 PM Report #524404 Posted September 12, 2013 at 11:21 PM Epah, não faças isso. Vi no outro tópico que já tinhas mexido um pouco em Java. A linguagem do Android já abstrai o hardware através de uma máquina virtual, estares a programar noutra linguagem para abstraíres a linguagem oficial só tende a piorar (principalmente tendo em conta que nem estás a mudar de paradigma de programação). No fundo só tens que perceber as diferenças de sintaxe de BASIC para Java, porque a lógica da programação em qualquer uma delas é praticamente igual. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
inacio1981 Posted September 13, 2013 at 09:54 PM Author Report #524533 Posted September 13, 2013 at 09:54 PM eu tive java mas já não me lembro de nada. o pouco que me lembro de programação deve-se ao facto de gostar de brincar com o arduino, AVR e pic, mas ultimamente até tenho usado o Flowcode por ser muito mais fácil de criar o código mas que me fez esquecer um pouco da programação (c++). por estar muito esquecido é que tenho tentado usar o basic4android, é muito facil de criar tudo, o problema é que eu não aprendi na escola a utilizar a porta serial e não sei como fazer-lo, alias na escola pouco aprendi, o que sei é as custas da minha curiosidade e de andar sempre a picar um amigo que também dá uns toques e vamos aprendendo os dois.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now