Archivi tag: arduino

Kit di sensori per sperimentazione con Arduino

Tutti i sensori in commercio necessitano di un circuito elettronico di contorno che ne permette l’interfacciamento al microcontrollore è quindi indispensabile per chi desidera effettuare sperimentazioni avere competenze elettroniche adeguate che certamente non si hanno per i molti (studenti, maker, ecc…) che incominciano ad utilizzare Arduino. Le difficoltà che si hanno nelle prime fasi di sperimentazione potrebbero essere superato considerando il sensore una black box di cui sappiamo qual’è la grandezza fisica che rilevano e quali sono le funzioni dei piedini da collegare alla scheda Arduino, questo metodo è praticamente identico a quanto già si fa a scuola utilizzando ad esempio i Lego Mindstorms, la concentrazione va sulla programmazione e non sul singolo componente, la tecnologia la si studia in una fase successiva, quando il percorso didattico lo permette. Il vantaggio principale nell’operare in questo modo è che si riesce ad implementare artefatti sufficientemente complessi che hanno come obiettivo quello di far percepire il proprio apprendimento e di accettare in una fase successiva la difficoltà nella comprensione dettagliata (interna) di ogni singolo circuito elettronico.
I motivi di questo mio operare inoltre si rifà ad una breve sperimentazione sulla dispersione scolastica in cui ho necessità di rimotivare alcuni allievi e quindi ho bisogno di offrire degli strumenti che possano dare immediatamente “soddisfazione” e voglia di costruire.
La “cavia” 🙂 per la mia progettazione, prima che i miei allievi, è stato il giovane liceale (mio figlio) che entra per la seconda volta come protagonista su queste pagine, infatti ho deciso di regalargli un kit di sensori estremamente interessante costituito da ben 37 sensori acquistato su Bangood ad un prezzo conveniente che in questo periodo inoltre risulta in offerta. Ho avuto modo di utilizzare tutti i sensori e ritengo che con questo kit potrete sviluppare una quantità elevata di esperimenti. Perché ho scelto questo kit? Ho analizzato diverse soluzioni su diversi store on-line, ma il rapporto qualità/prezzo risultava il migliore.
Per facilitarne l’utilizzo sto creando un breve manuale con gli sketch di base per utilizzare i vari sensori in modo che si possa in autonomia effettuare i primi esperimenti, li aggiungerò volta per volta anche perché li utilizzerò nei prossimi giorni anche a scuola.
Spero di rispondere, con questa mia proposta, a quanti in queste vacanze mi hanno chiesto consigli sulla dotazione di base per incominciare con Arduino pur avendo conoscenze scarse o nulle in elettronica.
Non entrerò nel dettaglio del funzionamento fisico, l’atteggiamento ora e nei successivi post, che parleranno di questo kit, sarà quello di descrizione dei mattoncini con gli sketch di esempio che potrete poi voi migliorare ed ampliare. All’interno degli sketch trovate la spiegazione sul funzionamento delle varie parti di codice.

scatola-sensori

sensori

Questa la lista dei sensori del kit (tratto dal sito Bangood)

1 x Active buzzer module
1 x Passive buzzer module
1 x Common cathode RED&GREEN LED module
1 x Two color common cathode LED module
1 x Knock sensor module
1 x Shock switch sensor module
1 x Photo resistor sensor module
1 x Push button module
1 x Tilt switch module
1 x RGB LED module
1 x Infrared transmit module
1 x RGB colorful LED module
1 x Hydrargyrum switch sensor module
1 x Colorful auto flash module
1 x Magnet-ring sensor module
1 x Hall sensor module
1 x Infrared receive sensor module
1 x Analogy hall sensor module
1 x Magic ring module
1 x Rotate encode module
1 x Light break sensor module
1 x Finger pulse sensor module
1 x Magnetic spring module
1 x Obstacle avoidance sensor module
1 x Tracking sensor module
1 x Microphone sensor module
1 x Laser transmit module
1 x Relay module
1 x Analog temperature sensor module
1 x 18b20 temperature sensor module
1 x Digital temperature sensor module
1 x Linear hall Sensor module
1 x Flame sensor module
1 x High sensitive voice sensor module
1 x Humidity sensor module
1 x Joystick PS2 module
1 x Touch sensor module

Una premessa necessaria prima di incominciare con la descrizione e l’utilizzo dei sensori del kit acquistato su Bangood e di dare qualche nozione su cosa sono i sensori e gli attuatori, in modo che sia più semplice procedere con la sperimentazione.

Riprendo quanto già pubblicato nelle mie slide

I sistemi elettronici per interagire con il mondo fisico, utilizzano:

  • sensori che hanno il compito di percepire quantità fisiche dell’ambiente
  • attuatori, dispositivi che compiono un’azione in funzione di ciò che è stato rilevato dal sensore ed elaborato da un circuito elettronico.

Sensori e attuatori vengono anche detti trasduttori.

Un trasduttore è quindi un dispositivo in grado di convertire una grandezza fisica in un’altra.

In generale i trasduttori che convertono grandezze fisiche in segnali elettrici saranno collocati in ingresso ad un circuito elettronico, come Arduino e vengono denominati sensori.

Trasduttori che a partire da segnali elettrici in ingresso permettono di controllare o modificare una grandezza fisica esterna sono detti attuatori.

Esempi di sensori

Il termometro a mercurio converte la variazione della temperatura nella variazione di lunghezza di una colonnina di mercurio.

termometro

Il microfono che converte il suono in segnale elettrico.

microfono

Sensori di luce: Fototransitor, fotodiodo, fotoresistenza, pannello solare. La variazione di luce viene convertita in una variazione di una grandezza elettrica: resistenza, corrente elettrica, ecc…

sensori-luce

Esempi di attuatori

L’altoparlante è un attuatore che converte un segnale elettrico in onde sonore per questo motivo viene anche definito come un trasduttore elettroacustico.

altoparlante

La molla converte una forza in uno spostamento lineare

molla

Potenziometro, converte uno spostamento lineare in una variazione di resistenza

potenziometro

Termistore, trasforma una temperatura in una variazione di impedenza.

termistore

Sensori del kit

BUZZER

I buzzer possono essere di due tipi: attivi e passivi
I buzzer attivi hanno al loro interno un’oscillatore che emetterà suono se vengono alimentati, mentre quelli passivi non posseggono un oscillatore interno e quindi per emettere suono è indispensabile fornire al buzzer un segnale ad onda quadra tra i 2Khz e i 5 Khz.

Sperimentazione Buzzer attivo

buzzer-passivo

schema-buzzer-passivo

  • Pin S del sensore collegato al pin 4 di Arduino
  • Pin sensore a GND di Arduino
  • Pin alimentazione sensore (centrale) collegato a +5V di Arduino

buzzer-passivo-foto

// Prof. Michele Maffucci
// 08.01.15
// Utilizzo del buzzer passivo

const int pinBuzzer = 4;
// pin a cui è collegato il buzzer

int frequenzaquenza;
// variabile in cui memorizzare il valore della frequenza

void setup()
{
  pinMode(pinBuzzer,OUTPUT); // inizializzazione del pin a cui è collegato il buzzer
}

void loop()
{
  for(int i = 200; i <= 1000; i++) // loop di frequenze da 200 a 1000 hz { tone(pinBuzzer,i); // viene emesso dal buzzer un suono a frequenza i delay(5); // attesa di 5 millisecondi (in modo da percepire il suono emesso) } delay(3000); // attesa di 3 secondi. La frequenza più alta sarà emessa per 4 secondi for(int i = 1000; i >= 200; i--)  // loop di frequenze da 100 a 200 hz
  {
    tone(pinBuzzer,i);   // viene emesso dal buzzer un suono a frequenza i
    delay(5);            // attesa di 5 millisecondi (in modo da percepire il suono emesso)   
  }
}

Sperimentazione Buzzer attivo

buzzer-attivo

schema-buzzer-attivo

  • Pin S del sensore collegato al pin 11 di Arduino
  • Pin sensore a GND di Arduino
  • Pin alimentazione sensore (centrale) collegato a +5V di Arduino

buzzer-attivo-foto

// Prof. Michele Maffucci
// 08.01.15
// Utilizzo del pinBuzzer attivo

const int pinBuzzer = 11;
// pin a cui è collegato il buzzer

void setup()
{
  pinMode(pinBuzzer,OUTPUT);  // inizializzazione del pin a cui è collegato il buzzer
}

void loop()
{
  int a,b;

  // la condizione del while è sempre vera "1" quini il ciclo sarà infinito
  // all'interno di ogni ciclo sul pin a cui è collegato il buzzer viene inviata
  // un segnale alto per x ms ed un segnale basso per y ms il periodo totale dell'onda
  // sarà T = x + y e quindi la frequenza sarà f = 1/T

  while(1)
  {
    // emissione di una segnale a frequenza di 500 hz
    for(a=0;a<80;a++)
    {
      digitalWrite(pinBuzzer,HIGH);
      delay(1);                      // attesa di 1 ms
      digitalWrite(pinBuzzer,LOW);
      delay(1);                      // attesa di 1 ms
    }
    // emissione di una segnale a frequenza di 250 hz
    for(b=0;b<100;b++)
    {
      digitalWrite(pinBuzzer,HIGH);
      delay(2);                  // attesa di 2 ms
      digitalWrite(pinBuzzer,LOW);
      delay(2);                  // attesa di 2 ms
    }
  }
} 

Sensore di battito

Il sensore di battiti vi permetterà di rilevare vibrazioni anche molto lievi, infatti è costituito da una piccolissima molla che posta in vibrazione chiude un contatto.

battito

schema-sensore-battito

  • Pin S del sensore collegato al pin 7 di Arduino
  • Pin sensore a GND di Arduino
  • Pin alimentazione sensore (centrale) collegato a +5V di Arduino

battitto-foto

// Prof. Michele Maffucci
// 08.01.15
// Sensore di battito

const int pinBattito = 7;    // pin a cui è collegato il il sensore
const int pinLed =  13;      // pin a cui è collegato il LED che rileva il battito
                             // viene usato il led L collegato al pin 13


int statoBattito = 0;        // variabile in cui memorizzare lo stato del sensore

void setup() {
  // inizializzazione del pin a cui è collegato il LED ad output
  pinMode(pinLed, OUTPUT);
  
  // inizializzazione del pin a cui è collegato il sensore ad input
  pinMode(pinBattito, INPUT);     
}

void loop(){
  // lettura dello stato del sensore
  statoBattito = digitalRead(pinBattito);

  // verifica se il sensore rileva un battito
  // il sensore è attivo basso
  
  // se rileva un battito il sensore è ad HIGH:
  if (statoBattito == LOW) {     
    // accendel il LED 
    digitalWrite(pinLed, HIGH);
    delay(1000);
  } 
  else {
    // spegne il LED:
    digitalWrite(pinLed, LOW); 
  }
}

Nelle prossime puntate la descrizione degli altri sensori.

Due papà ansiosi dal barbiere ed una striscia led per la mente

Questo � il post delle piccole ansie di un pap�� 🙂

striscia-led01

Il consueto appuntamento mensile dal barbiere Luigi per il taglio di capelli. Incontro Albino, entrambi abbiamo i figli della stessa et� che frequentano il medesimo Liceo. Inevitabile i discorsi di scuola e problemi adolescenziali, primo tra tutti la difficolt� nel trovare una passione o ampliare le proprie relazioni al di fuori della scuola.
Un’adolescente in casa insegna molte cose. Osservavo in queste serate, guardando mio figlio che studia, la modalit� con cui al liceo vengono propinate le materie scientifiche: fisica, chimica, biologia… tutte categoricamente su carta, esercizi sui moti uniformemente accelerati, studio di molecole e composti organici� solo�su carta mannaggia… il laboratorio e luogo sconosciuto, per non parlare dell�informatica� lasciamo perdere.
Non voglio incominciare il solito discorso disfattista e lamentoso su taglio delle ore dei laboratori e mancanza di denaro e se pur impegnato a scuola nel trovare soluzioni, incominciano a stancarmi i ragionamenti sui massimi sistemi e sulla funzione docente, sono pi� concentrato sulle soluzioni e dare possibilit�, nel limite delle mie forze, ai ragazzi che mostrano interesse.
Il carico di studio elevatissimo (che noto al liceo) e la quasi assenza di materie svolte in laboratorio fanno perdere nei ragazzi la percezione del senso degli argomenti che stanno studiando provocando disagio, a ci� si aggiunge il periodo di �scombussolamento ormonale� che provoca stati d�animo estremamente controversi� sicuro che mi procurer� l�ira dei colleghi del liceo� ma poco importa.
Come genitore ci si interroga continuamente e si cercano strategie che possano favorire l�accensione di quella �fiammella� di passione nei propri figli, attivando, si spera, il volano che porta al desiderio di scoperta� insomma ansie da genitori.
Tutto ci� per dire, che siano esperimenti di elettronica, osservazioni astronomiche con un telescopio, l�uso di un microscopio, � importante insegnare a dare forma fisica ai propri progetti, potranno nascere da un copia ed incolla visto su internet, ma � cos� che si impara , se non ci si ferma al copia ed incolla ovviamente, comprendere, rielaborare.
Nella mente di mio figlio, ora piena di poemi Omerici, Epica Latina e tra poco anche dei Promessi Sposi, sto cercando di inserire anche la materia �progetta e costruisci�.
Con stampante 3D e tanta elettronica che gira per casa da qualche tempo abbiamo incominciato con Arduino, robotica ed automazione in genere e come per i miei studenti anche per questo, �particolare studente🙂 Arduino svolge egregiamente la funzione di �facilitatore� e mi sta rendendo la vita da padre un po� pi� serena.

Corsi su Arduino ovunque online a scuola e nei FabLab� ora � giunta l�ora di farli anche alla famiglia 🙂 la figlia pi� piccola costruisce piccolo alberi di Natale con LED, il grande programmazione ed elettronica.

Con il liceale�siamo giunti in queste serate alla realizzazione di un semplice controllo di una striscia RGB che abbiamo utilizzato per adornare la zona in cui � collocato l�albero di Natale, poich� lo sketch � di interesse per alcuni miei allievi di 5�, pubblico e lascio a chi vorr� la possibilit� di migliorarlo.

La spiegazione nei commenti dello sketch.

Nello sketch che � l�ultima versione sviluppata dal giovane studente, trovate commentate alcune parti di codice che potrete attivare e che svolgono funzioni diverse.

1. Cambio colore graduale (in accensione ed in spegnimento) casuale nella scelta del colore:

  • solo bianco
  • solo rosso
  • solo verde
  • solo blu
  • variazione continua di tutti i colori

2. Variazione di una sola delle modalit� del punto 1

Compiti per Natale:

3. inserimento di un sensore ad ultrasuoni che percepisce il passaggio di persone davanti all�Albero di Natale emettendo una luce intensa bianca
4. Controllo remoto con telecomando
5. Controllo remoto con cellulare (per questo per� credo che ci penser� il pap�)

materiale sufficiente per fare qualcosa di creativo durante le prossime vacanze di Natale 🙂

Lista componenti:

  • Arduino UNO R3
  • N. 3 transistor BD 709 (quelli che avevo a disposizione)
  • N.3 resistori da 220 Ohm

Striscia LED alimentata a 12V.
Si � utilizzato un alimentatore esterno a 12V per l’alimentazione della scheda e della striscia LED.
L’alimentazione a 12V della striscia LED � presa direttamente dalla Vin della scheda.

strip-led-rgb

/* Pilotaggio striscia LED
 Mattia Maffucci
 ...con lo zampino di suo pap� Michele
 20.12.14
 */

// pin a cui � collegata la striscia LED
#define pinRosso 5
#define pinVerde 6
#define pinBlu 3

// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeBianco = 60;

// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeRosso = 60;

// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeVerde = 60;

// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeBlu = 60;

// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeContinuo = 60;

// attesa prima della partenza della successiva accensione
int attesaFinaleBianco = 2000;
int attesaFinaleRosso = 2000;
int attesaFinaleVerde = 2000;
int attesaFinaleBlu = 2000;
int attesaFinaleContinuo = 2000;

// intensit� massima di bianco. Per 
// rallentare il fade aumentare il valore
int limiteBianco = 30;

// intensit� massima di rosso. Per 
// rallentare il fade aumentare il valore
int limiteRosso = 30;

// intensit� massima di verde. Per 
// rallentare il fade aumentare il valore
int limiteVerde = 30;

// intensit� massima di blu. Per 
// rallentare il fade aumentare il valore
int limiteBlu = 30;

// intensit� massima dei colori. Per 
// rallentare il fade aumentare il valore
// massimo 255
int limiteContinuo = 100;

// per rallentare il fade aumentare il valore
int limiteFadeRandom = 120;

// numero massimo di colori scelto in
// maniera casuale
int randomColor = 5;

void setup() {
  pinMode(pinRosso, OUTPUT);
  pinMode(pinVerde, OUTPUT);
  pinMode(pinBlu, OUTPUT);
}

void loop() {

  // --- accensione solo bianco alla massima luminosit� ---

  /*
  analogWrite(pinRosso, 255);
   analogWrite(pinRossoDue, 255);
   analogWrite(pinVerde, 255);
   analogWrite(pinVerdeDue, 255);
   analogWrite(pinBlu, 255);
   analogWrite(pinBluDue, 255);
   */

  // ------------------------------------------------------   

  /*
// --- variazione luminosit� bianco ---
   
   variazioneBianco();
   
   // ------------------------------------------------------
   */

  // --- casuale nella scelta del colore ---

  casuale();

  // ------------------------------------------------------ 

  /*
// --- variazione continua colori incluso il bianco ---
   
   variazioneContinua();
   
   // ------------------------------------------------------
   */

}

// funzioni esterne per la variazione continua del colore

// -- casuale

void casuale() {
  int sceltaSequenza=random(randomColor);
  switch (sceltaSequenza) {
  case 0:
    variazioneBianco(limiteBianco, velocitaFadeBianco, attesaFinaleBianco);
    break;
  case 1: 
    variazioneRosso(limiteRosso, velocitaFadeRosso, attesaFinaleRosso);
    break;
  case 2:
    variazioneVerde(limiteVerde, velocitaFadeVerde, attesaFinaleVerde);
    break;
  case 3:
    variazioneBlu(limiteBlu, velocitaFadeBlu, attesaFinaleBlu);
    break;
  case 4:
    variazioneContinua(limiteContinuo, velocitaFadeContinuo, attesaFinaleContinuo);
    break;
  default:
    {
      // nulla
    }
  }
}

// --- variazione contina del colore

void variazioneContinua(int limiteContinuo, int velocitaFadeContinuo, int attesaFinaleContinuo) {
  int rosso, verde, blu;
  // fade da blu a viola
  for (rosso = 0; rosso < limiteContinuo; rosso++) {      analogWrite(pinRosso, rosso);     delay(velocitaFadeContinuo);   }    // fade da viola a rosso   for (blu = limiteContinuo; blu > 0; blu--) { 
    analogWrite(pinBlu, blu);
    delay(velocitaFadeContinuo);
  } 
  // fade da rosso a giallo
  for (verde = 0; verde < limiteContinuo; verde++) {      analogWrite(pinVerde, verde);     delay(velocitaFadeContinuo);   }    // fade da giallo a verde   for (rosso = limiteContinuo; rosso > 0; rosso--) { 
    analogWrite(pinRosso, rosso);
    delay(velocitaFadeContinuo);
  } 
  // fade da verde a bianco
  for (blu = 0; blu < limiteContinuo; blu++) {      analogWrite(pinBlu, blu);     delay(velocitaFadeContinuo);   }    // fade da bianco a blu   for (verde = limiteContinuo; verde > 0; verde--) { 
    analogWrite(pinVerde, verde);
    delay(velocitaFadeContinuo);
  }
}

// --- variazione intensit� luminosa del bianco ---

void variazioneBianco(int limiteBianco, int velocitaFadeBianco, int attesaFinaleBianco) {

  for (int fade = 0; fade < limiteBianco; fade++) {     analogWrite(pinRosso, fade);     analogWrite(pinVerde, fade);     analogWrite(pinBlu, fade);     delay(velocitaFadeBianco);   }   for (int fade = limiteRosso; fade >= 0; fade--) {
    analogWrite(pinRosso, fade);
    analogWrite(pinVerde, fade);
    analogWrite(pinBlu, fade); 
    delay(velocitaFadeBianco);
    delay(attesaFinaleBianco);
  }
}

// --- variazione luminosit� del rosso

void variazioneRosso(int limiteRosso, int velocitaFadeRosso, int attesaFinaleRosso) {

  analogWrite(pinVerde, 0);
  analogWrite(pinBlu, 0);

  for (int fade = 0; fade < limiteRosso; fade++) {     analogWrite(pinRosso, fade);     delay(velocitaFadeRosso);   }   for (int fade = limiteRosso; fade >= 0; fade--) {
    analogWrite(pinRosso, fade);
    delay(velocitaFadeRosso);
    delay(attesaFinaleRosso);
  }
}

// --- variazione luminosit� del verde

void variazioneVerde(int limiteVerde, int velocitaFadeVerde, int attesaFinaleVerde) {

  analogWrite(pinRosso, 0);
  analogWrite(pinBlu, 0);

  for (int fade = 0; fade < limiteVerde; fade++) {     analogWrite(pinVerde, fade);     delay(velocitaFadeVerde);   }   for (int fade = limiteVerde; fade >= 0; fade--) {
    analogWrite(pinVerde, fade);
    delay(velocitaFadeVerde);
    delay(attesaFinaleVerde);
  }
}

// --- variazione luminosit� del blu

void variazioneBlu(int limiteBlu, int velocitaBlu, int attesaFinaleBlu) {

  analogWrite(pinRosso, 0);
  analogWrite(pinVerde, 0);

  for (int fade = 0; fade < limiteBlu; fade++) {     analogWrite(pinBlu, fade);     delay(velocitaFadeBlu);   }   for (int fade = limiteBlu; fade >= 0; fade--) {
    analogWrite(pinBlu, fade);
    delay(velocitaFadeBlu);
    delay(attesaFinaleBlu);
  }
}

EduRobot UNO – Come costruire il vostro primo Arduino Robot – Lezione 3

banner-edurobot-uno-lezione3 Diamo movimento al nostro robot Se siete arrivati fino a questo punto avete aggiunto alle vostre competenze l’uso dei servomotori e dei sensori ad ultrasuoni. Combiniamo queste due abilità sarete in grado di movimentare il vostro robot facendogli evitare ostacoli. Incominciamo con unire il codice per governare i servomotori e il sensore ad ultrasuoni che avete utilizzato:

#include <Servo.h>

// creazione degli oggetti servo
Servo MotoreSinistro;
Servo MotoreDestro;

const int periodoStampaSuSeriale = 250;       // stampa sulla Serial Monitor ogni 1/4 di secondo
unsigned long ritardoSuSeriale = 0;

const int periodoLoop = 20;          // un periodo di 20 ms = una frequenza di 50Hz
unsigned long ritardoLoop = 0;

// specifica i pin di trig e echo usati per il sensore ad ultrasuoni
const int TrigPin = 8;
const int EchoPin = 9;

int distanza;
int durata;

void setup()
{
  Serial.begin(9600);     // configurazione dei pin Arduino a cui colleghiamo il sensore
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);

  MotoreSinistro.attach(11);
  MotoreDestro.attach(10);
}

void loop()
{
    printOutput(); // stampa un messaggio di debug sulla Serial Monitor
    if(millis() - ritardoLoop >= periodoLoop)
    {
        letturaSensoreUltrasuoni(); // legge e memorizza la distanza misurata
        ritardoLoop = millis();
    }
}

void letturaSensoreUltrasuoni()
{
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);                  // mantiene alto il trigger per almeno 10us
    digitalWrite(TrigPin, LOW);
    durata = pulseIn(EchoPin, HIGH);
    distanza = (durata/2)/29;
}

void printOutput()
{
    if((millis() - ritardoSuSeriale) > periodoStampaSuSeriale)
    {
        Serial.print("distanza: ");
        Serial.print(distanza);
        Serial.print("cm: ");
        Serial.println();
        ritardoSuSeriale = millis();
    }
}

Continua a leggere

EduRobot UNO – Come costruire il vostro primo Arduino Robot – Lezione 2

banner-edurobot-uno-lezione2

Collegamenti elettrici

Colleghiamo il sensore ad ultrasuoni sulla basetta

Inseriamo il sensore sulla breadboard in una posizione centrale sul fronte dell’EduRobot UNO. Collegate GND e Vcc come nell’immagine alle rispettive linee di alimentazioni sulla breadboard, da questi poi effettuate un collegamento al GND e a +5V sulla scheda Arduino.

21-edurobot-uno

22-edurobot-uno

Collegate con altri due fili i punti Trig e Echo rispettivamente ai pin 8 e 9 di Arduino.

23-edurobot-uno

Colleghiamo i motori

Utilizzando i 3 pin come mostrato nell’immagine che segue, spostate la parte plastica isolante a metà dei connettori metallici.

24-edurobot-uno

Inserite i pin sulla breadboard e collegate ad essi i motori.

25-edurobot-uno

I motori hanno ciascuno 3 file: GND (nero), segnale (bianco), Vcc (rosso). Il filo del segnale potrebbe presentarsi anche di altri colori (ad es. giallo).
Collegate GND e Vcc di ogni motore alle linee di alimentazioni presenti sulla breadboard.

27-edurobot-uno

Collegate il segnale del motore sinistro al pin 11 e il segnale del motore destro al pin 10 entrambi pin di tipo PWM.

26-edurobot-uno

Continua a leggere

EduRobot UNO – Come costruire il vostro primo Arduino Robot – Lezione 1

banner-edurobot-uno-lezione1

La maniera migliore per applicare quanto si è appreso con Arduino è quella di realizzare un robot, in quanto in esso sono racchiuse moltissime delle funzionalità di cui avrete necessità per i vostri progetti futuri.
Se siete utenti esperti nell’uso di Arduino potrete ritrovare in questo breve corso iniziale concetti già conosciuti, ma per mia scelta desidero affrontare ogni passo in modo graduale, anche a costo di ripetere argomenti già conosciuti, in questo modo si avrà modo di perfezionare il proprio apprendimento e rivedere concetti di base anche da altri punti di vista.
Quindi i prerequisiti necessari sono quelli che avete ottenuto leggendo le mie prime quattro lezioni delle mie slide pubbliche oppure aver eseguito le lezioni su questo sito.

Questa lezione ha una durata di circa 4/5 ore in aula per utenti che hanno una conoscenza di base e quindi è da intendersi di primo livello nell’uso di Arduino e vuole essere un percorso alternativo per apprendere in maniera più coinvolgente (almeno spero) l’uso di Arduino, ponendo le basi per un percorso di robotica con Arduino di livelli via via crescenti.

All’interno di questa lezione troverete link a istruzioni e spiegazioni in modo che questa lezione possa essere un’ulteriore punto di accesso al mondo Arduino.

Faremo un piccolo passo in dietro ripetendo alcuni concetti di base e poi un balzo in avanti per imparare nuovi argomenti utilizzando le competenze ottenute nelle lezioni che avete fino a questo punto studiato, tutto in maniera graduale senza dare nulla per scontato.

Come sempre la mia speranza è che questa lezione possa essere utilizzata come approccio iniziale all’insegnamento dell’informatica e dell’elettronica.

Per rendere più agevole lo sviluppo dei propri progetti, ho realizzato una struttura in compensato su cui sono fissate: scheda Arduino UNO R3 e Breadboard. Una piccola stazione di lavoro, facilmente trasportabile, che si trasforma poi successivamente in un piccolo robot, il kit sviluppato ha il nome di EduRobot UNO, ad esso ho associato un’area sul mio sito, www.maffucci.it/edurobot ed un sito di riferimento che rimanda per ora alla medesima pagina: www.edurobot.cc, su cui inserirò i sorgenti grafici per realizzare la struttura, ma anche i primi sketch di programmazione con esercizi. L’idea quindi è quella di andare oltre e costruire una didattica della robotica con Arduino.

Il nome scelto non è casuale: EduRobot UNO

  • EduRobot perché il desiderio e che sia utilizzato per imparare;
  • UNO perché è il primo della famiglia, ad esso si sta aggiungendo il fratello maggiore EduRobot DUE costituito da una struttura più elaborata che consentirà di realizzare progetti più complessi, ma che potrà utilizzare fin da subito elementi già usati per la versione UNO.

Tutte le strutture robotiche che sto progettando sono pensate per non fare uso di collanti e quindi adatte per essere usate anche con giovani studenti, tutto compensato tagliato a laser, viti e bulloni, nulla di più, se poi desiderate, potrete voi apportare le migliorie  direttamente su quanto da me proposto.

E quindi non posso che augurarvi: buona sperimentazione! 🙂

Descritto l’idea di progetto partiamo con la classica lista dei componenti usati.

Se avete già acquistato un Arduino Starter Kit a questo dovrete aggiungere un paio di servomotori a rotazione continua (360°) ed un sensore ad ultrasuoni, ma se state seguendo uno dei miei corsi nessun problema, questi dispositivi fanno parte della dotazione che utilizzo per insegnare.

Continua a leggere