Italian IOIO - novità

AlpVir

Well-Known Member
Licensed User
Longtime User
Un paio di anni fa erano appari sul forum di Luigi Arena forum alcuni interventi assai chiari circa l'utilizzo della scheda IOIO con il nostro linguaggio B4A.
Circa un anno fa ho acquistato questa schema ma non l'ho mai utilizzata. Adesso che vorrei sperimentare un po' mi accorgo che c'è stata una evoluzione e forse il codice di "sora" (autore di quesgli interventi) non è più valido.
Esistono nel sito di B4A altre liberie (IOIOlibBT e IOIOBT) oltre all'originaria IOIO (vers. 2.05) e non mi ci raccapezzo più visto che esistono numerose versioni di queste librerie ed il codice necessario per inizialializzare "yoyo" è assai differente da libreria a libreria.
So per certo che il mio hardware (Asus Zenfone 2) e la mia scheda IOIO possono colloquiare tramite il bluetooth (lodalità da me sperimentata e che vorrei privilegiare) dato che ho scaricato da Google Play un'app (IOIO hardware tester) con cui sono in grado (udite udite !) di comandare il led presente nella scheda.
Ma non sono riuscito a fare con il B4A la stessa cosa.
Qualcuno è più aggiornato di me ?
Grazie per l'attenzione.
 

MarcoRome

Expert
Licensed User
Longtime User
Un paio di anni fa erano appari sul forum di Luigi Arena forum alcuni interventi assai chiari circa l'utilizzo della scheda IOIO con il nostro linguaggio B4A.
Circa un anno fa ho acquistato questa schema ma non l'ho mai utilizzata. Adesso che vorrei sperimentare un po' mi accorgo che c'è stata una evoluzione e forse il codice di "sora" (autore di quesgli interventi) non è più valido.
Esistono nel sito di B4A altre liberie (IOIOlibBT e IOIOBT) oltre all'originaria IOIO (vers. 2.05) e non mi ci raccapezzo più visto che esistono numerose versioni di queste librerie ed il codice necessario per inizialializzare "yoyo" è assai differente da libreria a libreria.
So per certo che il mio hardware (Asus Zenfone 2) e la mia scheda IOIO possono colloquiare tramite il bluetooth (lodalità da me sperimentata e che vorrei privilegiare) dato che ho scaricato da Google Play un'app (IOIO hardware tester) con cui sono in grado (udite udite !) di comandare il led presente nella scheda.
Ma non sono riuscito a fare con il B4A la stessa cosa.
Qualcuno è più aggiornato di me ?
Grazie per l'attenzione.

Una libreria IOIOBT è stata scritta da @agra. Forse potrebbe fare al caso tuo.
Vedi QUI
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Ho fatto questa ed altre ricerche. La situazione è assai confusa (almeno per me) fra le varie librerie e versioni, fra rimandi ad altri post e, addirittura, il riferimento ad una fantomatica "ioiolib2"
Ci ho lavorato talmente tanto che adesso gli occhi strabuzzano e non so più come comportarmi.
Basterebbe forse un "Hello Word" con una o più librerie (certe), una activity con un codice certo e la possibilità di accendere o spegnere il led.
Da lì sarei sicuramente in grado di perfezionare abbastanza autonomamente il mio progetto.
Grazie dell'interessamento
 

MarcoRome

Expert
Licensed User
Longtime User
Io utilizzerei la libreria scritta da Andrew Graham ( ereditata da Kolbe ).
La stessa lavora via USB / Bluetooth.
"The board provides extensive and robust connectivity to an Android device via
a USB connection or Bluetooth and is fully controllable from within
a Basic4android application"
VEDI QUI LE FUNZIONI PRINCIPALI
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Confermo che la confusione (da parte mia) è pressochè totale. Ad essa si aggiunge il fatto che la mia scheda IOIO sembra essere con firmware 3.3 mentre è esplicitamente detto che le ultime versioni della/delle librerie prevedono il firmware 5.
La cosa potrebbe anche essere ininfluente per me: utilizzerei codice e libreria "vecchi" che per i limitati scopi miei (comandare un relay e 2 motori in PWM) è più che sufficiente.
Tanto per dirne una l'istruzione yoyo.inizialize prevede 0, 1, 2 o 3 parametri (obbligatori ovviamente) e non si sa bene quali librerie utilizzare.
Esistono almeno un paio di modalità di connessione ma la cosa importa fino ad un certo punto: non sono riuscito ad attivare nessuna delle due !
All'interno di vari post ci sono rimandi a vecchi codici mischiati a nuovi.
B4A non brilla per chiarezza di documentazione (è un rimprovero - forse eccessivo - che ho sentito fare da molti) ma finora mi sono sempre arrangiato benino, anche per progetti complessi, ma qui credo proprio che dovrò rinunciare.
Ogni aiuto ovviamente è più che bene accetto.
L'ideale sarebbe entrare in contatto qualcuno che ha effettimente sperimentato con questa scheda.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Dopo un paziente e lungo esame delle risorse disponibili sono riuscito a realizzare un "Hello Word" relativo alla scheda IOIO. In pratica si accende e si spegne un led della scheda.
Bisogna utilizzare la sola libreria IOIO vers. 2.05 : https://www.b4x.com/android/forum/threads/ioio-board-library.8942/page-6#post-90731
Ho anche aggiornato il firmaware alla versione 5.04

B4X:
Sub Process_Globals
    '--- IOIO PROVA 1
    '    accende e spegne il led "stat"
    '    utilizza la libreria IOIO vers. 2.05
    Dim ioio1        As IOIO
    Dim digo1        As DigitalOutput
End Sub

Sub Globals
    Dim toggle1        As ToggleButton
    Dim support             As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.Title="IOIO PROVA 1"
    Activity.Color = Colors.White
    toggle1.Initialize ("toggle1")
    Activity.AddView (toggle1,5dip,10dip,70dip,60dip)
    toggle1.Checked = False
    toggle1.Color = Colors.White
    toggle1.TextColor = Colors.Black
    toggle1.Visible = True
    '  
    support=ioio1.Initialize
    ioio1.Connect("ioio1",ioio1.CONN_BT,1,0)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
    If UserClosed Then
        ioio1.Disconnect
        ExitApplication
    End If
End Sub

Sub ioio1_connected(noerror As Boolean)
    If noerror Then
        ToastMessageShow ("ioio connesso",False)
    Else
        Dim trouble As Exception
        trouble=LastException
        ToastMessageShow (trouble.Message,True)
    End If
End Sub

Sub toggle1_CheckedChange(Checked As Boolean)
    If Checked Then
        ioio1.OpenDigitalOutput("led",0,digo1.OP_NORMAL,True)
    Else
        digo1.Close
    End If
End Sub

Sub led_open(noerror As Boolean, result As Object)
    If noerror Then
        digo1=result
        digo1.WriteWait("",False,0)
    End If
End Sub


Colgo l'occasione per segnalare che la finestra dei Logs indica "unused variable 'support'".
Ma io la utilizzo, questa variabile, poffarbacco.
E' un bug del compilatore ? Già altre volte ho riscontrato una certa discordanza fra quanto indicato nella finestra dei logs e la realtà.
 
Last edited:
Top