Italian IOIO - novità

Discussion in 'Italian Forum' started by AlpVir, Jul 26, 2015.

  1. AlpVir

    AlpVir Well-Known Member Licensed 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.
     
  2. MarcoRome

    MarcoRome Expert Licensed User

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

    AlpVir Well-Known Member Licensed User

    Conosco già questa libreria. Difatti ho scritto
     
  4. MarcoRome

    MarcoRome Expert Licensed User

    Hai provato a fare questa RICERCA ??
     
  5. AlpVir

    AlpVir Well-Known Member Licensed 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
     
  6. MarcoRome

    MarcoRome Expert Licensed 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
     
  7. AlpVir

    AlpVir Well-Known Member Licensed 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.
     
  8. AlpVir

    AlpVir Well-Known Member Licensed 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 : http://www.b4x.com/android/forum/threads/ioio-board-library.8942/page-6#post-90731
    Ho anche aggiornato il firmaware alla versione 5.04

    Code:
    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: Jul 28, 2015
Loading...