sketch errato per arduinoUNO?

Ciao ragazzi,

vorrei provare a comandare 2 servi con il nunchuk della wii…l’ unico sketch che ho trovato è questo, ma non mi permette di programmare il mio arduino!

/*
 * WiiChuckDemo --
 *
 * 2008 Tod E. Kurt, http://thingm.com/
 *
 */

#include <Wire.h>
#include "nunchuck_funcs.h"
#include <Servo.h>

Servo olhosim;
Servo olhonao;
Servo boca; 

int valorolhosim = 0;
int valorolhonao = 0;
int valorboca = 0;
int loop_cnt=0;

byte accx,accy,accz,zbut,cbut,joyx,joyy;
int ledPin = 13;

void setup()
{
    olhosim.attach(8);
    olhonao.attach(9);
    boca.attach(10);
    Serial.begin(19200);
    nunchuck_setpowerpins();
    nunchuck_init(); // send the initilization handshake   
    Serial.print("WiiChuckDemo ready\n");
}

void loop()
{
    if( loop_cnt > 100 ) { // a cada 100ms, pegue novos dados
        loop_cnt = 0;
        nunchuck_get_data();
        olhosim.write(valorolhosim);
        delay(1);
        olhonao.write(valorolhonao);
        delay(1);
        boca.write(valorboca);
        accx  = nunchuck_accelx(); 
        accy  = nunchuck_accely(); 
        accz  = nunchuck_accelz();       
        zbut  = nunchuck_zbutton();
        cbut  = nunchuck_cbutton();       
        joyy  =  nunchuck_joyy();
        joyx  =  nunchuck_joyx();
        valorolhosim = map(joyy, 0, 250, 0, 179);
        delay (1);
        valorolhonao = map(joyx, 0, 250, 0, 179);
        delay (1);
        valorboca = map(accy, 0, 150, 0, 179);
        delay (1);

        Serial.print("accx: "); Serial.print((byte)accx,DEC);
        Serial.print("\taccy: "); Serial.print((byte)accy,DEC);
        Serial.print("\taccz: "); Serial.println((byte)accz,DEC);
        Serial.print("\tzbut: "); Serial.print((byte)zbut,DEC);
        Serial.print("\tcbut: "); Serial.print((byte)cbut,DEC);
        Serial.print("\tjoyx: "); Serial.print((byte)joyx,DEC);
        Serial.print("\tjoyy: "); Serial.print((byte)joyy,DEC);
        Serial.print("\valorolhosim: ");Serial.print((byte) valorolhosim,DEC);
        Serial.print("\valorolhonao: ");Serial.print((byte) valorolhonao,DEC);    
    }
    loop_cnt++;
    delay(1);
}

Hai scaricato la libreria? --> https://github.com/todbot/wiichuck_adapter/tree/master/firmware/WiichuckDemo

no!! ma non saprei nemmeno usarla, sono alle primissime armi con arduino!

dovresti usare gli appositi tag per pubblicare il listato del codice "code e /code", come vedi appaiono le faccine con le parentesi e le punteggiature, poi dovresti fornire anche la lista errori che trovi in fondo all'ide belli rossi

ciao

A questo indirizzo --> https://github.com/todbot/wiichuck_adapter/tree/master/firmware/WiichuckDemo trovi lo sketch aggiornato e il file della libreria. Al momento puoi inserire i file nella stessa cartella. Se poi vorrai usare le libreria anche in altri sketch la devi copiare nella cartella libraries dentro la cartella Arduino dove hai gli sketch.

pablos:
dovresti usare gli appositi tag per pubblicare il listato del codice “code e /code”, come vedi appaiono le faccine con le parentesi e le punteggiature, poi dovresti fornire anche la lista errori che trovi in fondo all’ide belli rossi

ciao

Credo che abbia preso lo sketch qui → http://www.inventeaqui.com.br/invencao/automatizando-o-cranio-da-colecao-corpo-humano/controlando-os-servos-0
e penso che non abbia scaricato la libreria. Motivo per cui non compila.

Bastava seguire il link presente nella pagina → http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/
e da li risalire allo schetch su github e alla libreria → https://github.com/todbot/wiichuck_adapter

trovi il codice per il nunchuck anche se segui il mio link in firma, anche per i nunchuck non originali che necessitano di inizializzazioni diverse

grazie lesto ho trovato il tuo sketch con il nunchuck...ma se ho ben capito non hai incluso i 2 servi, vero?

Esatto quel pezzo lo devi aggiungere tu. Uno degli esempi se non erro stampa a video i valori. Studiare landamento e usa la libreria servo di conseguenza

Allora, mi sa che ci siamo, ora sono riuscito a programmare l’ arduino con quello sketch, praticamente non riuscivo perchè non avevo ancora scaricato la libreria, almeno credo!

Collego tutto correttamente, e appena si avvia arduino i 2 servi effettuano un movimento, poi niente…tutto tace! Muovo il nunchuck e non si muove nulla…

metti un led che lampeggia ad ogni loop... e controlla che i collegamenti i2c non siano ballerini, e di usare le giuste pull-up etc..

credo che il problema sia nel connettore nunchuck oppure nel modo in cui l' ho collegato, non ho ancora capito se funziona a 3,3 o 5v!

3.3V, occhio che friggi il chip! devi usare un traslatore di livelli

meno male, non ho ancora provato a 5v!! :D il traslatore di livelli è una funzione o un hardware?

hardware, tipo questo --> http://www.robot-italy.com/it/pca9306-level-translator.html Però, attenzione, non so a quali livelli vi riferite. Quella linkata è solo un esempio a 2 linee, ne esistono anche con più linee, oppure solo il chip senza la board. Devi trovarne la soluzione adatta a quello che devi fare tu.

Scusate, ma tra tutti i tutorial, i video e le varie dimostrazioni che ho trovato, nessuno ha utilizzato questo traslatore di livello, ho sempre visto 2 servi e il nunchuck, nient' altro! Dove sbaglio?

Sbagliano loro :) Su sparcfan vai sul prodotto logic level translator e scarica il pdf dello schema, devi replicare quello col transistor. Oppure cerca su google, l'importante e che sia invertente ovvero funZionists in entrambe le direzioni

Comunque dai video sembra che funzionano discretamente...ma a questo punto lascio perdere, è troppo complicato per me. Grazie lo stesso a tutti!