schemi e codici arduino
            




saranno presto aggiornate
le guide con tutte le novità
riguardo i nuovi prodotti
come ad esempio il playpad
che vedete nel
video a destra

per info su eventuali preordini
admin@actionoise.com

codice arduino per servo


#include <Servo.h>     //libreria servo gia' installata di default nell'ide arduino


Servo myservoa;    //  creazione variabili per servo 
Servo myservob;
Servo myservoc;
Servo myservod;
Servo myservoe;

int servoa = 100;   // variabili contenenti la posizione iniziale dei servo
int servob = 100;   //ogni qualvolta la scheda arduino verrà resettata 
int servoc = 100;   // i servo torneranno nella medesima posizione.
int servod = 100; 
int servoe = 100; 


void setup() {
  myservoa.attach(9);            // il numero traparentesi indica il pin data Output di arduino dove 
  myservob.attach(8);           // connettere lingresso data del servo.
  myservoc.attach(6);
  myservod.attach(7);
  pinMode(12,INPUT);//servod    //i seguenti numeri di input(traparentesi) indicano gli ingressi di arduino   
  pinMode(13,INPUT);//servod    // provenienti dai pinout della actionoiseboard,
  pinMode(11,INPUT);//servoc    // come si puo' notare ad ogni coppia di servo appartiene una coppia di 
  pinMode(10,INPUT);//servoc    //due diversi numeri, ad ogni numero di input equivale la rotazione 
  pinMode(2 ,INPUT);//servoa    // del servo in senso arario e antiorario.
  pinMode(4,INPUT);//servoa     //ad ogni segnale di HIGH proveniente dalla Actionoiseboard
  pinMode(3,INPUT);//servob     //equivale la rotazione non cotinua di qualche millimetro del servo 
  pinMode(5,INPUT);//servob     //corrispondente, per ritornare alla posizione 
                                //sarà necessaria la frequenza di reset (SQ-R) proveniente dal pinout 
                                //della actionoiseboard che resetterà contemporaneamente tutte le board arduino
}                               // in quando connessi allo stesso pin di reset.

void loop() {
  

  
  if (digitalRead(2) == HIGH) {   //servoa movimento orario

  servoa++;

  if (servoa == 180) {
    
    servoa--;
    
      
    }

}

if (digitalRead(3) == HIGH){     //servob movimento orario

servob++;

if (servob == 180){
  
  servob--;
  
}
  
}
if (digitalRead(10)== HIGH){    //servoc movimento orario
servoc++;
if (servoc == 180){
  servoc--;
}
  
}
if (digitalRead(13)== HIGH){    //servod movimento orario
servod++;
if (servod == 180){
  servod--;
}
  
}
if (digitalRead(4) == HIGH){     //servoa movimento antiorario

  servoa--;

  if (servoa == 0){servoa++;   }
}
if (digitalRead(5) == HIGH){     //servob movimento antiorario

 servob--;
 if (servob == 0){
  
  servob++;
  
 }
}

if (digitalRead(11) == HIGH){  //servoc movimento antiorario 
servoc--;
if (servoc == 0){
  servoc++;
}
  
}
if (digitalRead(12) == HIGH){  //servod movimento antiorario   
servod--;
if (servod == 0){
  servod++;
}
  
}
myservoa.write(servoa); 
delay(3);// piu' il numero del delay sale piu' la velocita' del servo diminuisce. 
myservob.write(servob); 
delay(3);
myservoc.write(servoc);
delay(3);
myservod.write(servod);
delay(3);
}

    
// il valore traparentesi(servoa) varia al variare del segnale in entratata proveniente dalla actionoiseboard 
// e quindi dai comandi audio disponibili nella home page all'indirizzo actionoise.com
//ogni segnale decodificato dalla actionoiseboard darà un segnale di HIGH all'arduino 
// che farà variare i valori (servoa,servob,servoc ecc..) e quindi dare il movimento 
//orario o antiorario al servo corrispondente  


per aumentare il numero di pinout della Actionoiseboard e quindi avere piu' comandi remoti disponibili sulla board arduino

basterà utilizzare i 10 comandi audio in combinazione (sequenze audio-SQ)
di seguito il codice arduino per utilizzare la combinazione
ad esempio SQ1+SQ3(HIGH) SQ1+SQ2(HIGH)ecc....


//il seguente codice permette di avere un segnale HIGH in uscita della board arduino 
//tramite la combinazione di due segnali HIGH in entrata ordinati 
//provenienti dai pinout della actionoiseboard.
//ordinati perchè la sequenza innesca L'HIGH soltanto sollecitanto 
//l'input nella sequenza ordinata 1-2 e non 2-1.

int a=0;                     //la seguente variabile segnala la corretta sequenza

void setup()
{
   pinMode(4,INPUT);      
   pinMode(5,INPUT);   
   pinMode(6,INPUT);         
   pinMode(10,OUTPUT);  
   pinMode(11,OUTPUT);   
   digitalWrite(10,LOW); 
   digitalWrite(11,LOW); 
      
}
void loop()

{                                                                                  
               if(digitalRead(4)==HIGH){                        // se il Primo pin4 ha ricevuto L'HIGH dalla                                  
               a=1;                                             //actionoiseboard la variabile "a"
               }                                                 //sarà 1
            if(digitalRead(5)==HIGH && a==1){                       
              digitalWrite(10,HIGH);                             // se il secondo pin5 riceve L'HIGH
                a=0;                                              // e la variabile "a" ha valore 1
               }                                                  //la sequenza è corretta
              if(digitalRead(5)== HIGH && a!=1){                  //quindi il pin 10 va in HIGH
                while(1);}                                        // in caso contrario while(1)
                                                                 //blocca il loop quindi la board
                if(digitalRead(6)==HIGH && a==1){                 //necessita il reset
              digitalWrite(11,HIGH);                              //stessa cosa per il pin6
                a=0;                                               // che porta invece in HIGH
               }                                                    // il pin 11.
                
                if(digitalRead(6)== HIGH && a!=1){
                while(1);}
                
                
                
                }

// aggiungendo pin in input ed OUTPUT potranno essere aggiunti altri servo 
// cosi da azionarli da remoto

video dimostrativo del codice appena descritto che usa segnali combinati



nel seguente video ho utilizzato due led rispettivamente connessi
al pin 10 e 11 di arduino il quale a sua volta riceve i segnali di HIGH
dalla actionoiseboard, i pin di input della board di arduino del codice
sopra sono 4-5-6(pinout 1-2-3 della actionoiseboard)
la sequenza input4-5 (out1-2 actionoiseboard)
porta in HIGH il led rosso(pin 10 HIGH)
dopo il reset azionato con la sequenza audio dell'ultimo
bottone rosso che si puo vedere in video
la sequenza viene cambiata con in4-6 (1-3 actionoiseboard)
e aziona il led bianco
i bottoni rossi che si vedono nel monitor del notebook
portano in esecuzione le 10 sequenze audio che sollecitano
i 10 pin out della actionoiseboard
l'undicesimo tasto equivale al reset
nel sequente link è posibile visitare
la pagina comandi

di seguito Codice Arduino da connettere a un microcontroller Combo
per utilizzo di due motori a spazzola +
due motori stepper per direzionare cellulare in videochiamata


//REMEMBER to connect Actionoiseboard reset(rst) to arduino(rst)

int reset = 0;



void setup() {           
 
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  pinMode(4,INPUT);
  pinMode(5,INPUT);
  pinMode(10,INPUT);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);  //aggiunta pin 10 per marcia avanti a scatti (leopard crawler)
 
  
  
 }

void loop() {
 
 
 //if(digitalRead(10)==HIGH){    //leopard crawler avanti (sequenza audio utilizzata per Aremote non piu disponibile)
  //delay(50);
 //digitalWrite(6,HIGH);
 //digitalWrite(7,LOW);
 //delay(50);
 //digitalWrite(6,LOW);
 //digitalWrite(7,LOW);
 //delay(50);
 //digitalWrite(8,LOW);
 //digitalWrite(9,HIGH);
  //delay(50);
  //digitalWrite(8,LOW);
  //digitalWrite(9,LOW);
// }

if (digitalRead(2)==HIGH){  //indietro
 

digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);

}



if (digitalRead(3)==HIGH){   //avanti

digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
}



if (digitalRead(4)==HIGH){   //dx 
  
delay(200);
digitalWrite(6, HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(200);            //aggiunta di pause per miglior controllo 
digitalWrite(6, LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
delay(200);


}

if (digitalRead(5)==HIGH){    //sx

 delay(200);
digitalWrite(6, LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(200);
digitalWrite(6, LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
delay(200);
}
 


DI seguito lo schema dei rispettivi pin i/o

da connettere tra actionoiseboard ed Arduino

ACTIONOISEBOARD............ARDUINO

pin.out.6------------------------pin.in.D2
pin.out.7------------------------pin.in.D4
pin.out.8------------------------pin.in.D5
pin.out.9------------------------pin.in.D3
pin.out.10-----------------------pin.in.D10

di seguito schema pin i/o

da connettere tra arduino e driver L293D

L293D....................ARDUINO

IN1.............................pin.out.D6
IN2.............................pin.out.D7
IN3.............................pin.out.D8
IN4.............................pin.out.D9


IMPORTANTE: RICORDARSI DI CONNETTERE
IL PAD RESET DELLA ACTIONOISEBOARD CON IL RESET DELL'ARDUINO

I TRE CONTROLLER INTERCAMBIABILI AL MOMENTO DISPONIBILI SONO:

Microcontroller Stepper:
Decodifica i segnali audio in entrata, fornendo l'output sui due driver ULN2803 per il movimento dei 4 motori stepper
2 motori stepper vengono utilizzati per l'inquadratura remota della camera quindi il movimento nord sud del cellulare
che sta ricevendo la videochiamata altri due motori stepper per i comandi remoti sulle ruote dello chassis direzionandole
Microcontroller Combo: decodifica i segnali fornendo l'output al driver ULN2803 e da li ai 2 motori stepper per l'inquadratura.
fornisce inoltre output ad un terzo microcontroller o development board
(arduino,raspberry ecc... opportunamente programmati-vediSopra)
cosi da disporre dei comandi remoti su due motori brushless tramite driver L293D o similari (esempio schema sopra)
Microcontroller Servo:
fornisce semplici segnali (HIGH-LOW) ai 10 pinout della actionoiseboard cosi' da connettere un arduino o qualsiasi altra
development board e programmarla in base alle proprie esigenze che nascono dal voler inviare da remoto e con una semplice
videochiamata comandi per poter azionare servo,relay,motori,elettrovalvole ecc...
il tutto senza l'utilizzo di un cloud
in questa pagina ogni tasto aziona un pinout della actionoiseboard (inserendo un determinato codice
sarà possibile attivare Le audio frequenze)






DISPONIBILI PRESTO IN NEGOZIO


Datasheet Schematic Playpad and Actionoiseboard:





CINGOLATO E MOTOSCAFO NEL VIDEO SOTTOSTANTE UTILIZZANO UNA ACTIONOISEBOARD CON UN CONTROLLER COMBO



Licenza Creative Commons
Quest'opera e' distribuita con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale