<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <link href="https://funduinoshop.com/it/blog/progetti/?sAtom=1" rel="self" type="application/atom+xml" />
    <author>
        <name>Funduinoshop</name>
    </author>
    <title>Blog/Atomi</title>
    <id>https://funduinoshop.com/it/blog/progetti/?sRss=1</id>
    <updated>2026-05-26T21:33:09+02:00</updated>
    
        <entry>
            <title type="text">Costruire un&#039;auto RC con Arduino: Veicolo autonomo - Parte 3</title>
            <id>https://funduinoshop.com/it/costruire-un-auto-rc-con-arduino-veicolo-autonomo-parte-3</id>
            <link href="https://funduinoshop.com/it/costruire-un-auto-rc-con-arduino-veicolo-autonomo-parte-3"/>
            <summary type="html">
                <![CDATA[
                
                                            Benvenuto alla terza puntata della nostra serie di blog sulle auto robot. Nella prima parte abbiamo appreso le basi del veicolo di base. Nella seconda parte abbiamo sviluppato un sistema di codici universali che ci permette di impostare i livelli di guida dell&#039;auto robot....
                                        ]]>
            </summary>
            <content type="html">
                <![CDATA[
                  Capire la mobilità del futuro con le auto robot, parte 3  
 Benvenuto alla terza puntata della nostra serie di blog sulle auto robot. Nella   prima parte  &amp;nbsp;abbiamo appreso le basi del veicolo di base. Nella   seconda parte  &amp;nbsp;abbiamo sviluppato un sistema di codici universali per definire le fasi di guida dell&#039;auto robot e abbiamo realizzato un semplice controllo a distanza con un telecomando a infrarossi. A causa dei limiti fisici di questo telecomando, in questa puntata vorrei mostrare la trasmissione delle istruzioni di guida con il Bluetooth, ad esempio da uno smartphone al ricevitore BT HC-05. Il Bluetooth è un segnale radio a 2,4 GHz con una portata ridotta. È sicuro fino a circa 10 metri e non subisce interferenze alla luce del sole. 
 Il modulo Bluetooth HC-05 è in realtà un  ricetrasmettitore = trasmettitore + ricevitore . Tuttavia, noi lo utilizziamo solo come ricevitore, mentre per inviare le istruzioni di guida utilizziamo un&#039;APP Bluetooth su uno smartphone Android (a causa del modo particolare in cui Apple utilizza il Bluetooth, non funziona con un iPhone). In linea di principio, è anche possibile costruire un telecomando Bluetooth con l&#039;HC-05; tuttavia, ciò richiede un secondo HC-05, un altro microcontrollore e un dispositivo di input (controller joystick). 
 &amp;nbsp;  
  Dei sei pin del modulo HC-05, solo quattro sono necessari: VCC (5V) e GND per l&#039;alimentazione del modulo e RXD e TXD per il collegamento ai due pin del microcontrollore in cui è impostato il SoftwareSerial. Tuttavia, non puoi ignorare la scritta LEVEL: 3.3V per non danneggiare il modulo. Sul nostro microcontrollore con logica a 5V, abbiamo bisogno di un partitore di tensione da 5V a 3,3V almeno per il pin RXD, ad esempio resistenze da 1 kOhm e 2,2 kOhm. 
 Lo schema del circuito: Modulo HC-05 sul microcontrollore    
 I comandi AT del modulo HC-05 per i microcontrollori Arduino 
 A sinistra del connettore contrassegnato dalla dicitura Key si trova un piccolo pulsante importante per la configurazione. Se questo pulsante viene premuto quando il modulo è acceso, entriamo nella modalità di comando AT (il LED lampeggia lentamente con un ritmo di 2s), in cui effettuiamo le impostazioni con i cosiddetti comandi AT (per Attenzione, Achtung). A questo scopo utilizziamo un programma di esempio modificato, in cui la solita interfaccia seriale è collegata al Serial Monitor dell&#039;IDE Arduino e all&#039;HC-05 tramite SoftwareSerial. 
  /*
  Test seriale multiplo del software
 Riceve dalla seriale hardware, invia alla seriale software.
 Riceve dalla seriale software, invia alla seriale hardware.
 Il circuito:
 * RX è il pin digitale 10 (collegato al TX di un altro dispositivo)
 * TX è il pin digitale 11 (collegato all&#039;RX di un altro dispositivo) // divisore di tensione!
 creato nella notte dei tempi
 modificato il 25 maggio 2012
 da Tom Igoe
 basato sull&#039;esempio di Mikal Hart
 Questo esempio di codice è di pubblico dominio.
 */ 
  #include   &amp;lt;SoftwareSerial.h&amp;gt;  
 SoftwareSerial  BTSerial (10 ,  11 );  // RX, TX // mySerial è stato cambiato in BTSerial 
 char  c= &#039; &#039; ;  // Dichiarazione della variabile per la trasmissione 

 void   setup () {
   // Open serial communications and wait for port to open: 
   Serial . begin ( 9600 );                                                                                    // Baud rate changed to 9600 
   Serial . println ( &quot;Serial started!&quot; );

   // set the data rate for the SoftwareSerial port 
  BTSerial. begin ( 38400 );                                                                             // Baud rate for BT 38400 
   Serial . println ( &quot;BTSerial started!&quot; );
}

 void   loop () {  // Esegui ripetutamente 
  se  (BTSerial .available ()) {
    c=BTSerial. read ();
     Serial . write (c);
  }
  if  (Serial  .available ()) {
    c= Serial . read ();
    BTSerial. write (c);
     Serial . write (c);                                                                                        // re-transmission of input in Serial Monitor 
  }
} 
 Nella figura seguente vengono utilizzati i comandi AT essenziali. La stazione remota, l&#039;HC-05, invia una risposta se necessario e conferma con OK. 
 A noi interessano soprattutto il nome e l&#039;indirizzo HEX per poter identificare in modo univoco il modulo in seguito sullo smartphone. I comandi AT vengono inseriti nel monitor seriale del microcontrollore. Nell&#039;immagine seguente puoi vedere il monitor seriale dell&#039;IDE Arduino. 
 Se vuoi, puoi cambiare la password predefinita 1234 con &quot;AT+PSWD=xxxx &quot;, dove x sta per una cifra da 0 a 9. Poi controlla con &quot;AT+PSWD? &quot; se l&#039;inserimento è andato a buon fine.    Dopo aver completato gli inserimenti, il modulo viene brevemente scollegato dall&#039;alimentazione. Dopo la riaccensione senza premere alcun pulsante, il modulo HC-05 si trova in modalità standard. Il LED lampeggia rapidamente (circa 5 volte/s). 
 Modifiche all&#039;auto RC: un diverso scudo motore 
 Passiamo ora all&#039;auto robot. Dopo aver utilizzato la volta scorsa il controller del motore V2, che necessita solo dei due connettori I2C SDA=A4 e SCL=A5 per i segnali di controllo, questa volta voglio introdurre il più vecchio controller del motore V1, che blocca molti pin digitali, ma che spesso può essere acquistato a un prezzo vantaggioso.     Ho anche modificato un po&#039; questo motorshield per ottenere l&#039;accesso ai sensori e ai ricevitori radio. Sul lato dei pin digitali, c&#039;è solo un pin a cui si può accedere utilizzando un connettore angolato: Pin 2. Questo è utile per chi vuole collegare il ricevitore IR in questo punto. Ci sono più possibilità di estensione sull&#039;altro lato, dove puoi accedere a tutti gli ingressi analogici e all&#039;alimentazione con l&#039;aiuto di connettori femmina (chiamati anche connettori a presa). 
 Poiché tutti gli ingressi analogici possono essere utilizzati anche come ingressi o uscite digitali, abbiamo la possibilità di collegare qui i nostri ricevitori radio. Questo funziona benissimo con il ricetrasmettitore a 433 MHz HC-12 (vedi la prossima puntata), ma per il ricevitore BT HC-05 ci sono solo delle restrizioni. In primo luogo, non possiamo collegare direttamente il pin RXD, abbiamo bisogno del partitore di tensione, e in secondo luogo, i pin non forniscono una corrente sufficiente per alimentare il modulo su questi pin. 
 L&#039;immagine seguente mostra un piccolo adattatore che abbiamo realizzato noi stessi, che alimenta l&#039;HC-05 con 5 V e la massa dai pin appropriati, collega TXD direttamente a RX dell&#039;interfaccia SoftwareSerial A1 =D15 e RXD a A2 = D16 tramite il partitore di tensione.   
 Lo schema di cablaggio: Modulo HC-05 con Motorshield L293D sul microcontrollore Arduino     
 Naturalmente il circuito può essere realizzato anche su una mini breadboard con dei cavi di collegamento. 
 Come l&#039;ultima volta, il codice per le istruzioni di guida viene aumentato o diminuito con la semplice pressione di un pulsante; questa volta, però, non con il telecomando IR, ma con la funzione touch dell&#039;APP dello smartphone e l&#039;interrogazione Bluetooth tramite SoftwareSerial. 
 Accoppiamento del modulo Bluetooth HC-05 con un&#039;applicazione Android (APP) 
 Prima che l&#039;APP possa connettersi alla Robot Car, dobbiamo accoppiarla con il modulo Bluetooth nelle impostazioni. Dovrebbe essere abbastanza facile, visto che in precedenza abbiamo utilizzato i comandi AT per interrogare il nome e l&#039;indirizzo HEX dell&#039;HC-05. 
 Una volta che l&#039;accoppiamento ha funzionato e che è stata installata un&#039;app BT adatta, è possibile avviare e configurare il sistema. Toccando la lente di ingrandimento nell&#039;immagine a sinistra, vengono visualizzati i dispositivi adatti. Toccando l&#039;HC-05, viene visualizzato il messaggio &quot;connesso&quot;. L&#039;applicazione che utilizzo offre diverse interfacce per il funzionamento (immagine centrale). Ho deciso di utilizzare il controller di gioco. In alto a destra dell&#039;immagine centrale, ci sono due frecce che formano un piccolo cerchio. Tocca qui se la connessione è stata persa. 
 L&#039;immagine di destra mostra i pulsanti di un controller di gioco. Prima di utilizzarli per la prima volta, è necessario assegnare ai pulsanti i valori numerici che devono essere trasmessi quando si toccano. 
 Ai pulsanti del cursore ho assegnato i valori numerici da 1 a 4 in senso orario. Ho assegnato il valore numerico 5 agli altri pulsanti. Questi valori vengono passati nello sketch alla variabile  blueToothVal &amp;nbsp;e portano nei puntatori if della  funzione  loop()   &amp;nbsp;  alla determinazione del codice per il livello di guida.    
 I cambiamenti da infrarossi a Bluetooth e da controller motore V2 a V1 comportano alcune modifiche nella parte principale dello sketch. D&#039;altra parte, non cambia quasi nulla nella funzione motor(). Solo nella notazione, la funzione motor1-&amp;gt;setSpeed() diventa motor1.setSpeed() a causa delle diverse librerie del programma (librerie). 
 Il codice del programma: Costruire un&#039;auto RC per Arduino 
 * Codice di esempio  per  auto robot con Motor Shield V1 e ricevitore BT   HC-05 , al  20220515 
* basato sulla libreria Adafruit Motor shield V2, copyright Adafruit Industries LLC
*  questo  codice è di  pubblico  dominio, divertiti!
* modificato  per  Funduino
* Pin
* BT VCC a Arduino  5V out.
* BT GND a GND
* Arduino  A1=15  (SS RX) - BT TX non ha bisogno di un partitore di tensione
* Arduino  A2=16  (SS TX) - BT RX attraverso un partitore di tensione (da 5v a  3,3v )
*/

  #includere   &amp;lt;AFMotor.h&amp;gt;  
Motore AF_DCMotor motor1 (2 );
AF_DCMotor motor2 (3 );

  #include   &amp;lt;SoftwareSerial.h&amp;gt;  
 // Inizializza HC-05 
 SoftwareSerial  BTSerial (15 ,  16 );  // RX, TX incrociati con TX, RX (divisore di tensione) 
 char  blueToothVal;
 int  x =  0 ;
 int  y =  0 ;
 int  left =  0 ;
 int  right =  0 ;
 int  codice =  5555 ;
 int  speedL =  0 ;
 float  factor =  1.8 ;  // Correzione per speedLevel 255/100 * 6V/VBatt 

 void   setup () {
   Serial . begin ( 9600 );  // set up Serial Monitor at 9600 bps 
   Serial . println ( &quot;Motor test!&quot; );
  BTSerial. begin ( 9600 );  // set up transmission speed for HC-12 
   Serial . println ( &quot;SoftwareSerial initialized!&quot; );
}  // fine setup 

 void   loop () {
  if (BTSerial .available ())  //se i dati vengono ricevuti  ... 
 Serial.print(&quot;disponibile&quot;);     
{
    blueToothVal=BTSerial. read (); //..sollen diese ausgelesen werden 
 Serial.println(blueToothVal); 
  }
    if  (blueToothVal== &#039;1&#039; )  //se il modulo Bluetooth riceve un &quot;1&quot;.... 
   {
       if  (code&amp;lt; 9000 )   code = code +  1000 ;      
       Serial . print ( &quot;Code = &quot; );
       Serial . println (code);
    }
    else   if  (blueToothVal== &#039;2&#039; ) //se il   modulo Bluetooth riceve un &quot;2&quot;.... 
   {
       if  ((code -1000 * int (code/ 1000 ))&amp;lt; 900 )  code = code +  100 ;
       Serial . print ( &quot;Code = &quot; );
       Serial . println (code);
    }
    else   if  (blueToothVal== &#039;3&#039; ) //se il   modulo Bluetooth riceve un &quot;3 &quot;....
   {
       if  (code&amp;gt; 2000 )   code = code -  1000 ;        
       Serial . print ( &quot;Code = &quot; );
       Serial . println (code);
    }
    else   if  (blueToothVal== &#039;4&#039; ) //se il   modulo Bluetooth riceve un &quot;4&quot;.... 
    {
     if  (code -1000 * int (code/ 1000 ) &amp;gt;  200 )   code = code -  100 ;
       Serial . print ( &quot;Code = &quot; );
       Serial . println (code);
    }  
    else   if  (blueToothVal== &#039;5&#039; ) //se il   modulo Bluetooth riceve un &quot;5&quot; ...
   {           
      code =  5555 ;
       Serial . print ( &quot;Code = &quot; );
       Serial . println (code);    
    }
    delay  (200 );  /piccolo ritardo per una migliore comunicazione seriale e per evitare rimbalzi 
    motor();
}  // termina il ciclo 

 void  motor(){
  int  speedLevel [9 ]={ -100 , -80 , -60 , -40 , 0 , 40 , 60 , 80 , 100 };
  y =  int (codice /  1000 );
  x =  int ((codice -  1000*y ) /  100 );
  speedL = speedLevel [y-1 ];
  Serial  .print ( &quot;codice = &quot; );
  Serial  .print (codice);
  Serial  .print ( &quot; y = &quot;);
  Serial . print (y);
  Serial  .print ( &quot; x = &quot;);
  Serial  .print (x);
  Serial  . print( &quot; velocitàL = &quot;);
  Serial  .println (speedL);

  //Correzione dei passi di velocità per le curve 
  se   (x==1 ){
    right = speedL+ 20 ;
    left = speedL -20 ;
  }
  altrimenti   se   (x==2 ){
    right = speedL+ 15 ;
    left = speedL -15 ;
  }
  se   (x==3 ) {
    right = speedL+ 10 ;
    left = speedL -10 ;
  }
  se   (x==4 ) {
    right = speedL+ 5 ;
    left = speedL -5 ;
  }
  se   (x==6 ) {
    right = speedL  -5 ;
    left = speedL+ 5 ;
  }
  se   (x==7 ) {
    right = speedL -10 ;
    left = speedL+ 10 ;
  }
  se   (x==8 ) {
    right = speedL -15 ;
    left = speedL+ 15 ;
  }
  se   (x==9 ) {
    right = speedL -20 ;
    left = speedL+ 20 ;
  }
  altrimenti  {
    right = speedL;
    left = speedL;
  }

  //Input dei passi di guida per &quot;sinistra&quot; e &quot;destra 
  Serial  .print ( &quot;sinistra = &quot; );
  Serial  .print (left);
  Serial  . print( &quot; destra = &quot; );
  Serial . println (right);

  se  (left &amp;lt;  40  &amp;amp; left &amp;gt;  -40 ) {
    motor1. run (RELEASE);
  }
  se  (destra &amp;lt;  40  &amp;amp; destra &amp;gt;  -40 ) {
    motor2. run (RELEASE);
  }
  se   (sinistra&amp;gt;=40 ) {
     if  (left&amp;gt; 100 ) left= 100 ;
      motor1. run (FORWARD);
      motor1. setSpeed (left * factor);
  }
  se   (destra&amp;gt;=40 ) {
     if  (right&amp;gt; 100 ) right= 100 ;
      motor2. run (FORWARD);
      motor2. setSpeed (right * factor);
  }
  se  (sinistra&amp;lt;=  -40 ) {
     if  (left&amp;lt; -100 ) left= -100 ;
      motor1. run (BACKWARD);
      left = -left;
      motor1. setSpeed (left * factor);
  }
  se  (destra&amp;lt;=  -40 ) {
     if  (right&amp;lt; -100 ) right= -100 ;
      motor2. run (BACKWARD);
      right = -right;
      motor2. setSpeed (right * factor);
  }
}  // fine motore  
 Questo è quanto per la seconda soluzione più economica per un&#039;auto robot con telecomando (supponendo che tu abbia uno smartphone Android). La prossima volta ti mostrerò come è facile integrare un ricetrasmettitore HC-12 a 433 MHz. In questo modo si possono raggiungere anche diverse centinaia di metri di portata. Tuttavia, i costi aumentano perché ora sono necessari due ricetrasmettitori e un altro microcontrollore. Ci vediamo allora. 
                ]]>
            </content>

                            <updated>2022-06-20T08:00:00+02:00</updated>
                    </entry>

    
    
        <entry>
            <title type="text">Costruire un&#039;auto RC con Arduino: Veicolo autonomo - Parte 2</title>
            <id>https://funduinoshop.com/it/costruire-un-auto-rc-con-arduino-veicolo-autonomo-parte-2</id>
            <link href="https://funduinoshop.com/it/costruire-un-auto-rc-con-arduino-veicolo-autonomo-parte-2"/>
            <summary type="html">
                <![CDATA[
                
                                            Benvenuti alla seconda puntata della nostra nuova serie di blog sulle auto robot. Nella prima parte abbiamo conosciuto le basi del veicolo di base. Questa volta vogliamo parlare delle possibilità di controllo remoto, sviluppare un sistema di codici...
                                        ]]>
            </summary>
            <content type="html">
                <![CDATA[
                  Capire la mobilità del futuro con le auto robot, parte 2  
 Benvenuti alla seconda puntata della nostra nuova serie di blog sulle auto robot. Nella  prima parte  abbiamo conosciuto le basi del veicolo di base. Questa volta vogliamo discutere le possibilità di controllo a distanza, sviluppare un sistema di codici con cui determinare i livelli di velocità dell&#039;auto robot e infine realizzare un semplice controllo a distanza con un telecomando a infrarossi. 
 Perché ho bisogno di livelli di velocità per un&#039;auto RC per microcontrollori Arduino? 
 1. Per controllare la velocità del motore da un altro dispositivo, c&#039;è fondamentalmente la possibilità di determinare e trasmettere continuamente i valori con un potenziometro (poti), oppure di aumentare o diminuire il valore del passo di velocità premendo un pulsante. Le immagini seguenti mostrano alcuni esempi selezionati, nella prima immagine i comandi del joystick: 
 &amp;nbsp;  
 &amp;nbsp; 
 Nella seconda immagine vediamo i telecomandi a infrarossi, un&#039;applicazione per smartphone con ricevitore Bluetooth e la tastiera LCD1602, che può essere utilizzata con un ricetrasmettitore a 433 MHz, tra le altre cose: 
 &amp;nbsp;  
 &amp;nbsp; 
 Per ottenere uno schema uniforme, è opportuno utilizzare la funzione map() per ridurre i valori analogici del piatto in valori che possano essere trasmessi via radio. Il convertitore analogico-digitale fornisce numeri a 10 bit, cioè valori compresi tra 0 e 1023. La posizione centrale dei mini-joystick è di circa 511. Dividendo il valore per 100, un joystick può determinare due valori (direzione x e y) compresi tra 0 e 10 o, se si utilizza la funzione map(), tra 1 e 9. Questo valore è sufficiente per inserire la velocità e la velocità di un veicolo. Questo è sufficiente per inserire la velocità e per le curve. Indipendentemente dal fatto che si determini un valore di 11 o 9, l&#039;arresto significa un valore di 5 nella direzione y e per la guida in rettilineo anche un valore di 5. 
 Guardando il controller con i due joystick (parte del  kit  del  braccio robotico Mini 4DOF con joystick e servoazionamento ), data la varietà di sistemi diversi, ho scelto un codice tra 1111 e 9999 che è facile da trasmettere. La prima cifra può essere utilizzata per la direzione y del joystick sinistro, la seconda cifra per la direzione x del joystick sinistro, la terza e la quarta cifra per un secondo joystick opzionale o per alcuni tasti. Nel primo esempio con il telecomando IR, abbiamo bisogno solo delle prime due cifre del codice a quattro cifre. 
 Il controllo della velocità dell&#039;auto RC per Arduino 
 Il controllo della velocità dei motori avviene con la modulazione di larghezza degli impulsi (PWM). Il valore del cosiddetto duty cycle è un numero a 8 bit, cioè un valore compreso tra 0 e 255 (=2 alla potenza di 8 -1). Se applichi al motore una tensione compresa tra 0 e 6 V con un alimentatore regolabile, noterai che fino a circa 1,5 V non si nota nulla. Poi il motore inizia a ronzare, ma non si muove. Se misuri contemporaneamente la corrente, noterai un valore relativamente alto. L&#039;energia viene convertita in calore e ronzio: non è proprio il massimo. A partire da 2,4 - 3 volt, il motore inizia a girare, l&#039;amperaggio scende leggermente quando il motore è scarico. Successivamente, la velocità aumenta in base alla tensione applicata. Quando si regola la tensione verso il basso, il motore gira fino a meno di 2 volt, ma se si ferma, ad esempio a causa di una maggiore resistenza di attrito o di un ostacolo, non riparte. Conclusione: i valori inferiori a circa 2,4 volt devono essere evitati, l&#039;ingresso deve essere impostato su 0 (zero) per evitare un&#039;inutile usura e consumo di energia. Ad eccezione dell&#039;arresto (codice=5), è necessario un Duty Cycle compreso tra circa il 40% e il 100% con una tensione di alimentazione di 6V per i motori. 
 L&#039;alimentazione dell&#039;auto RC per Arduino 
 Abbiamo già discusso diverse possibilità per l&#039;alimentazione nella prima parte. Quattro batterie AA da 1,5 V ciascuna forniscono 6 V, la tensione massima dei piccoli motori gialli. Quattro batterie AA da 1,2 V ciascuna non sono sufficienti per l&#039;alimentazione. È quindi necessario un portabatterie per 6 batterie, che fornisce 7,2 volt. Due batterie agli ioni di litio (tensione nominale di 3,7 V) forniscono oltre 8 volt quando sono completamente cariche. Quindi ha senso impostare un fattore nel programma che limiti la tensione del livello di pilotaggio più alto a 6V. 
 Controllare l&#039;auto RC con Arduino 
 Se le istruzioni di guida vengono impartite con dei pulsanti, che possono essere anche in un&#039;app per smartphone, il valore appropriato viene aumentato o diminuito per il valore di uscita 55xx (arresto) senza superare il massimo. 
 Leggere correttamente il codice 
 L&#039;assegnazione della prima cifra del codice ai valori richiesti delle fasi della corsa avviene tramite l&#039;indice di un elenco con i rispettivi valori numerici. 
 Conclusione: con un codice a quattro cifre, possiamo controllare la velocità e la curva con le prime due cifre, mentre le altre due cifre sono utilizzate per altre funzioni (non richieste all&#039;inizio). Quindi, ad esempio, codice95xx per la velocità massima in rettilineo, 55xx per l&#039;arresto, 77xx per l&#039;avanzamento a destra.&amp;nbsp; 
 
 
 
 
 
 y ↓ 0&amp;nbsp; x→ 
 
 
 1 
 
 
 2 
 
 
 3 
 
 
 4 
 
 
 5 
 
 
 6 
 
 
 7 
 
 
 8 
 
 
 9 
 
 
 
 
 9 
 
 
  ←  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  ↑  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  →  
 
 
 
 
 8 
 
 
  ←  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  ↑  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  →  
 
 
 
 
 7 
 
 
  ←  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  ↑  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  →  
 
 
 
 
 6 
 
 
 ← 
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
 ↑ 
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
 → 
 
 
 
 
 5 
 
 
 ← 
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
  0  
 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 &amp;nbsp; 
 
 
 → 
 
 
 
 
 4 
 
 
 ← 
 
 
 &amp;nbsp; 
 
 
 ↙ 
 
 
 &amp;nbsp; 
 
 
 ↓ 
 
 
 &amp;nbsp; 
 
 
 ↘ 
 
 
 &amp;nbsp; 
 
 
 → 
 
 
 
 
 3 
 
 
  ←  
 
 
 &amp;nbsp; 
 
 
  ↙  
 
 
 &amp;nbsp; 
 
 
  ↓  
 
 
 &amp;nbsp; 
 
 
  ↘  
 
 
 &amp;nbsp; 
 
 
  →  
 
 
 
 
 2 
 
 
  ←  
 
 
 &amp;nbsp; 
 
 
  ↙  
 
 
 &amp;nbsp; 
 
 
  ↓  
 
 
 &amp;nbsp; 
 
 
  ↘  
 
 
 &amp;nbsp; 
 
 
  →  
 
 
 
 
 1 
 
 
  ←  
 
 
 &amp;nbsp; 
 
 
  ↙  
 
 
 &amp;nbsp; 
 
 
  ↓  
 
 
 &amp;nbsp; 
 
 
  ↘  
 
 
 &amp;nbsp; 
 
 
  →  
 
 
 
 
 
 &amp;nbsp; 
 Ora vogliamo costruire la nostra prima Smart Robot Car con il kit, un microcontrollore ATmega328 (progetto UNO R3), un MotorShield V2 e un trasmettitore e ricevitore IR. 
 Il Motor Shield V2 può controllare fino a quattro motori, utilizzando il cosiddetto bus I2C con i collegamenti SDA (=Serial Data) all&#039;ingresso analogico A4 e SCL (=Serial Clock) ad A5 per il collegamento delle linee di controllo. Adafruit ha anche sviluppato e fornito una libreria di programmi adatta a questo scopo. Attenzione: le librerie per i Motor Shield V1 e V2 non sono compatibili. 
 &amp;nbsp;  
 Immagine Motor Shield V2 con modifica:  Connettori a presa saldata (connettori femmina) per il collegamento di apparecchiature aggiuntive 
 Indipendentemente dalla Motor Shield che vuoi utilizzare - V1 o V2 -,&amp;nbsp; è opportuno saldare connettori aggiuntivi per entrambe le Motor Shield per poter collegare in seguito trasmettitori/ricevitori Bluetooth o a 433 MHz o sensori. Maggiori informazioni in merito nei prossimi post del blog. Il ricevitore IR ha bisogno di alimentazione solo dai pin 3 e 4 e dal pin 2 per il ricevitore IR. Il saldatore può rimanere freddo. 
 Per il controllo utilizzeremo innanzitutto il piccolo telecomando a infrarossi di Funduino e un ricevitore IR. Anche se il sensore IR &quot;nudo&quot; è sufficiente, ti consiglio di utilizzare la piccola scheda breakout, perché in questo caso un LED lampeggia quando vengono ricevuti i segnali IR; uno strumento prezioso quando si cerca un guasto. 
 Lo sketch è composto da due parti collaudate: Lo sketch di esempio di Armin Joachimsmeyer, che ha aggiunto alla sua fantastica libreria di programmi IRremote, e uno sketch di Robot Car realizzato dall&#039;autore sulla base della libreria di programmi di Adafruit. 
 Il codice del programma per l&#039;auto RC per Arduino 
  /* Codice di esempio per Robot Car con Motor Shield V2 e ricevitore IR, al 20220515
* basato sulla libreria Adafruit Motor shield V2, copyright Adafruit Industries LLC, 2009
* e SimpleReceiver.cpp, parte di Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote
* Licenza MIT Copyright (c) 2020-2022 Armin Joachimsmeyer
* modificato per Funduino
* Motor Shield V2 utilizza I2C con SDA=A4 e SCL=A5
* Il ricevitore IR utilizza il pin 2
 ************************************************************************************
 * Con la presente si concede il permesso, a titolo gratuito, a chiunque ottenga una copia di questo software e dei file di documentazione ad esso associati (vedi pagina 5)
 * di questo software e dei file di documentazione associati (il &quot;Software&quot;), di utilizzare il Software senza alcuna restrizione, compresi i seguenti diritti
 * nel Software senza alcuna restrizione, compresi, senza limitazioni, i diritti di
 * di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere
 * copie del Software, e di permettere alle persone a cui il Software è fornito
 * di farlo, alle seguenti condizioni:
 *
 * Il suddetto avviso di copyright e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software
 * copie o parti sostanziali del Software.
 *
 * IL SOFTWARE VIENE FORNITO &quot;COSÌ COM&#039;È&quot;, SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE,
 * INCLUSE, A TITOLO ESEMPLIFICATIVO E NON ESAUSTIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE
 * SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT
 * SARANNO RESPONSABILI DI QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN&#039;AZIONE LEGALE CHE IN UN ILLECITO O ALTRO, DERIVANTI DA
 * CONTRATTO, ILLECITO O ALTRO, DERIVANTI DA, IN RELAZIONE AL SOFTWARE O ALL&#039;USO O AD ALTRI RAPPORTI CON ESSO
 * O ALL&#039;USO O AD ALTRI RAPPORTI CON IL SOFTWARE.
 *************************************************************************************/ 
 
  #include   &amp;lt;Adafruit_MotorShield.h&amp;gt;  
 // Crea l&#039;oggetto motor shield con l&#039;indirizzo I2C predefinito 0x60 
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
 // Seleziona quale &quot;porta&quot; M1, M2, M3 o M4.  
Adafruit_DCMotor *motor1 = AFMS.getMotor (2 );
Adafruit_DCMotor *motor2 = AFMS.getMotor (3 );

 // definiamo il protocollo per il controllo remoto, per maggiori informazioni consulta il codice di esempio SimpleReceiver.cpp 
  #define  DECODE_NEC  // Include Apple e Onkyo, anche per il piccolo telecomando Funduino  
 //#define INFO // Per visualizzare informazioni preziose dal decodificatore universale per i protocolli di larghezza o distanza degli impulsi 
  #define  IR_RECEIVE_PIN 2  // invece di #include &quot;PinDefinitionsAndMore.h&quot;  
  #include   &amp;lt;Arduino.h&amp;gt;  
  #includere   &amp;lt;IRremote.hpp&amp;gt;  

 // Segnale del ricevitore IR collegato al Pin2, VCC al Pin3, GND al Pin4 
 int  IR_GND =  4 ;  
 int  IR_VCC =  3 ;

 int  x =  0 ;
 int  y =  0 ;
 int  left =  0 ;
 int  destra =  0 ;
 int  codice =  5555 ;
 int  speedL =  0 ;
 float  factor =  1.8 ;  // Correzione per speedLevel 255/100 * 6V/VBatt 

 void   setup () {
  Serial  .begin  (9600 );
  Serial  .println ( &quot;Test del motore! &quot;);
  Serial  .println ( &quot;Motorshield v2 - Test motore DC!&quot; );
  se  (!AFMS .begin ()) {          // create with the default frequency 1.6KHz 
     Serial . println ( &quot;Could not find Motor Shield. Check wiring.&quot; );
     while  ( 1 );
  }
  Serial  .println ( &quot;Motor Shield trovato.&quot; );
  // Solo per sapere quale programma è in esecuzione sul mio Arduino 
  Serial  .println (F( &quot;START &quot;  __FILE__  &quot; da &quot;  __DATE__  &quot;\r\nUsing library version &quot;  VERSION_IRREMOTE));
  // Avvia il ricevitore 
  IrReceiver .begin (IR_RECEIVE_PIN);  //, ENABLE_LED_FEEDBACK); 
  Serial  .print (F( &quot;Pronto a ricevere i segnali IR dei protocolli: &quot; ));
  printActiveIRProtocols (&amp;amp;Serial );
  Serial  . print(F( &quot;al pin &quot; ));
  Serial  .println (IR_RECEIVE_PIN);  
  // inizializzare i pin digitali come uscita per l&#039;alimentazione 
  pinMode (IR_GND ,OUTPUT );
  pinMode (IR_VCC ,OUTPUT );
  digitalWrite (IR_GND ,LOW );
  digitalWrite (IR_VCC ,HIGH );    
}  // fine della configurazione 

 void   loop () {
  se  (IrReceiver.decode()) {
      // Stampa un breve riassunto dei dati ricevuti 
      IrReceiver.printIRResultShort (&amp;amp;Serial );
      se  (IrReceiver.decodedIRData.protocol == UNKNOWN) {
           // We have an unknown protocol here, print more info 
          IrReceiver.printIRResultRawFormatted(&amp;amp; Serial , true);
      }
      Serial  .println ();
      /*
       * importante!!! Abilita la ricezione del valore successivo,
       * poiché la ricezione si è interrotta dopo la fine dell&#039;attuale pacchetto di dati ricevuti.
       */ 
      delay  (100 );  // Debounce, nessun fast retry      
      IrReceiver.resume(); // Abilita la ricezione del   valore successivo 
      /*
       * Infine, controlla i dati ricevuti ed esegue le azioni in base al comando ricevuto
       */ 
  if  (IrReceiver.decodedIRData.command ==  0x46 )  {
     if  (code&amp;lt; 9000 )   code = code +  1000 ;         
     Serial . print ( &quot;Code = &quot; );
     Serial . println (code);
    }
  else   if  (IrReceiver.decodedIRData.command ==  0x15 ) {
     if  (code&amp;gt; 2000 )   code = code -  1000 ;      
     Serial . print ( &quot;Code = &quot; );
     Serial . println (code);
    } 
  else   if  (IrReceiver.decodedIRData.command ==  0x43 )  {
     if  ((code -1000 * int (code/ 1000 ))&amp;lt; 900 )  code = code +  100 ;      
     Serial . print ( &quot;Code = &quot; );
     Serial . println (code);
    }
  else   if  (IrReceiver.decodedIRData.command ==  0x44 )  {
     if  (code -1000 * int (code/ 1000 ) &amp;gt;  200 )   code = code -  100 ;
     Serial . print ( &quot;Code = &quot; );
     Serial . println (code);
    }
  se  (IrReceiver.decodedIRData.command ==  0x40 )  {
    code =  5555 ;
     Serial . print ( &quot;Code = &quot; );
     Serial . println (code);
    }
  altrimenti  {
     Serial . print ( &quot;invalid code&quot; );
    }
  motore();
  }
}  // fine del ciclo 

 void  motor(){
  int  speedLevel [9 ]={ -100 , -80 , -60 , -40 , 0 , 40 , 60 , 80 , 100 };
  y =  int (codice /  1000 );
  x =  int ((codice -  1000*y ) /  100 );
  speedL = speedLevel [y-1 ];
  Serial  .print ( &quot;codice = &quot; );
  Serial  .print (codice);
  Serial  .print ( &quot; y = &quot;);
  Serial . print (y);
  Serial  .print ( &quot; x = &quot;);
  Serial  .print (x);
  Serial  . print( &quot; velocitàL = &quot;);
  Serial  .println (speedL);

  //Correzione dei passi di velocità per la curva 
  se   (x==1 ){
    right = speedL+ 16 ;
    left = speedL -16 ;
  }
  altrimenti   se   (x==2 ){
    right = speedL+ 13 ;
    left = speedL -13 ;
  }
  se   (x==3 ) {
    right = speedL+ 10 ;
    left = speedL -10 ;
  }
  se   (x==4 ) {
    right = speedL+ 7 ;
    left = speedL -7 ;
  }
  se   (x==6 ) {
    right = speedL  -7 ;
    left = speedL+ 7 ;
  }
  se   (x==7 ) {
    right = speedL -10 ;
    left = speedL+ 10 ;
  }
  se   (x==8 ) {
    right = speedL -13 ;
    left = speedL+ 13 ;
  }
  se   (x==9 ) {
    right = speedL -16 ;
    left = speedL+ 16 ;
  }
  altrimenti  {
    right = speedL;
    left = speedL;
  }

  //Input dei passi di guida per &quot;sinistra&quot; e &quot;destra 
  Serial  .print ( &quot;sinistra = &quot; );
  Serial  .print (left);
  Serial  . print( &quot; destra = &quot; );
  Serial . println (right);

  se  (left &amp;lt;  40  &amp;amp; left &amp;gt;  -40 ) {
    motor1-&amp;gt; run (RELEASE);
  }
  se  (destra &amp;lt;  40  &amp;amp; destra &amp;gt;  -40 ) {
    motor2-&amp;gt; run (RELEASE);
  }
  se   (sinistra&amp;gt;=40 ) {
     if  (left&amp;gt; 100 ) left= 100 ;
      motor1-&amp;gt; run (FORWARD);
      motor1-&amp;gt; setSpeed (left * factor);
  }
  se   (destra&amp;gt;=40 ) {
     if  (right&amp;gt; 100 ) right= 100 ;
      motor2-&amp;gt; run (FORWARD);
      motor2-&amp;gt; setSpeed (right * factor);
  }
  se  (sinistra&amp;lt;=  -40 ) {
     if  (left&amp;lt; -100 ) left= -100 ;
      motor1-&amp;gt; run (BACKWARD);
      motor1-&amp;gt; setSpeed (-left * factor);
  }
  se  (destra&amp;lt;=  -40 ) {
     if  (right&amp;lt; -100 ) right= -100 ;
      motor2-&amp;gt; run (BACKWARD);
      motor2-&amp;gt; setSpeed (-right * factor);
  }
}  // fine del motore 
 
 Spiegazione del codice del programma per l&#039;auto RC 
 Dopo aver incluso le librerie Motor Shield V2 e IRremote, i due motori vengono istanziati con il numero alla morsettiera del controller e alcune variabili globali vengono dichiarate (tipo di dati) e inizializzate (valore iniziale). 
 Nella funzione  setup()  vengono inizializzati l&#039;interfaccia seriale e il ricevitore IR e i pin per l&#039;alimentazione del ricevitore IR vengono impostati come uscite con lo stato HIGH o LOW. 
 Nella funzione  loop() , prima viene ricevuto il segnale del telecomando IR, poi il codice per il controllo del motore viene cambiato a seconda del tasto premuto. I tasti cursore in alto e in basso modificano la prima cifra, a sinistra e a destra la seconda cifra del codice nell&#039;intervallo di valori da 1 a 9. Il tasto X porta all&#039;arresto con il codice 5555. La terza e la quarta cifra del codice non sono ancora significative. Alla fine, la funzione autodefinita  motor()  viene richiamata senza argomenti, poiché abbiamo definito le variabili in modo globale, cioè valide per tutte le funzioni. 
 Nella funzione autodefinita  motor() , che utilizzeremo anche in altre configurazioni con altri telecomandi, i livelli di velocità per il motore destro e sinistro sono determinati dal codice. Il valore percentuale del livello di velocità viene infine convertito nel valore PWM per  setSpeed  utilizzando il fattore definito all&#039;inizio. 
 &amp;nbsp;  
 L&#039;auto robot è ora pronta per essere utilizzata. Funziona bene finché riesci a mantenere la connessione ottica tra il telecomando e il ricevitore IR. Tuttavia, durante la guida su strada, ho sperimentato che la forte luce del sole ostacola la ricezione. Ecco perché sto passando al radiocomando. A presto. 
                ]]>
            </content>

                            <updated>2022-06-09T07:30:00+02:00</updated>
                    </entry>

    
    
        <entry>
            <title type="text">Costruire un&#039;auto RC con Arduino: Veicolo autonomo - Parte 1</title>
            <id>https://funduinoshop.com/it/costruire-un-auto-rc-con-arduino-veicolo-autonomo-parte-1</id>
            <link href="https://funduinoshop.com/it/costruire-un-auto-rc-con-arduino-veicolo-autonomo-parte-1"/>
            <summary type="html">
                <![CDATA[
                
                                            Benvenuto in una nuova serie di blog sulle auto robot. Nella prima parte, ne conosceremo le basi, per così dire come aiuto alla decisione di acquisto, quale telaio, quale microcontrollore e quale tipo di telecomando...
                                        ]]>
            </summary>
            <content type="html">
                <![CDATA[
                  Capire la mobilità del futuro con le auto robot  
 Benvenuto in una nuova serie di blog sulle auto robot. Nella prima parte ne conosceremo le basi, per così dire, come aiuto per decidere quale telaio, quale microcontrollore e quale tipo di telecomando sono più adatti. 
 Due o quattro ruote: valutare i pro e i contro della costruzione di auto RC per Arduino 
 Partiamo dal telaio e analizziamo i vantaggi e gli svantaggi dei kit economici con due o quattro ruote motorizzate. Tutti hanno in comune i motori elettrici, quindi questi da soli non sono un criterio di selezione. I robot a due ruote sono inizialmente più economici perché non hanno il costo di altri due motori elettrici e ruote. Al contrario, hanno una o due ruote di supporto, che conferiscono alle auto RC una grande manovrabilità. Quindi, se vuoi &quot;far girare il piatto&quot;, questa è la strada da percorrere. Tuttavia, in questa fascia di prezzo dei motori DC, non puoi aspettarti che funzionino in modo fluido e preciso. Pertanto, la corsa rettilinea non è così buona come quella della versione a quattro ruote. Soprattutto all&#039;avvio, i motori mostrano una maggiore stabilità direzionale, ma le curve sono possibili solo con raggi molto più ampi. Un altro vantaggio del telaio a quattro ruote è il maggiore spazio per le batterie, il microcontrollore, eventualmente il convertitore DC/DC e i sensori. 
   
 La scelta del microcontrollore per costruire un&#039;auto RC 
 La domanda successiva riguarda il microcontrollore e la sua programmazione. Ad esempio, un micro computer del tipo Raspberry Pi ha la massima potenza di calcolo su un telaio di dimensioni ridotte. Soprattutto per quanto riguarda il controllo remoto, i tipi con WiFi e Bluetooth integrati offrono dei vantaggi e puoi persino trasmettere le immagini da una fotocamera Raspberry Pi. La programmazione avviene nel linguaggio di programmazione Python, molto diffuso, ma l&#039;avvio del sistema operativo Raspberry Pi OS basato su Linux richiede circa un minuto. Un altro svantaggio del Raspis (abbreviazione di Raspberry Pi) è la necessità di un buon alimentatore a 5V. Ciò richiede un buon convertitore DC/DC. 
 In relazione all&#039;argomento del controllo remoto Bluetooth, in una prossima puntata verrà mostrato un esempio con Raspberry Pi e l&#039;APP Android BlueDot di Martin O&#039;Hanlon (membro dello staff della Raspberry Pi Foundation). 
 L&#039;avvio del sistema è molto più rapido con un microcontrollore basato su ATmega 328, ad esempio  Funduino Uno  o  Funduino&amp;nbsp;Nano . Dopo circa un secondo dall&#039;accensione, puoi iniziare a controllare gli ingressi, senza dover avviare il sistema da una scheda microSD; il programma caricato non viene dimenticato. La tensione di ingresso può essere compresa tra 5 e 9 volt. La programmazione avviene nell&#039; IDE Arduino , un ambiente di sviluppo simile a C/C++ (per ulteriori spiegazioni vedi  https://funduino.de/hardware-software) . Per questo motivo, vedremo prima degli esempi con la Funduino Uno R3, per la quale sono disponibili dei controllori di motori perfetti come i cosiddetti shield. Questi vengono semplicemente inseriti nella Uno e le cosiddette librerie ci aiutano nella programmazione. 
 Excursus: Cos&#039;è un controller/motor driver? 
 A causa della corrente molto limitata alle uscite dei microcontrollori, le utenze più grandi - e questo include tutti i tipi di motori elettrici e relè - richiedono un&#039;alimentazione esterna e un circuito elettronico che converta il segnale di controllo del microcontrollore. Tuttavia, i requisiti di questo circuito integrato sono ancora più elevati: da un lato, deve consentire una velocità variabile del motore e, dall&#039;altro, vogliamo anche essere in grado di cambiare il senso di rotazione del motore invertendo la polarità. 
 Utilizzando il circuito integrato L293D come esempio, ora ne spiegheremo il funzionamento. In pratica, questo componente DIP con sedici &quot;gambe&quot;/collegamenti è sufficiente come controllore di due motori elettrici.     
 Il circuito integrato viene alimentato con la tensione nelle connessioni VCC1 e Ground. Possiamo prelevare questa tensione dal microcontrollore. L&#039;alimentazione dei motori avviene tramite VCC2 e Terra. Qui si collega la batteria (o le batterie) (ad esempio 6 o 9 volt). Con i motori più grandi è necessario raffreddare il circuito integrato, mentre con i piccoli motori gialli del kit non è necessario. 
 Colleghiamo un motore a 1Y e 2Y, le linee di controllo corrispondenti alla MCU (Micro Controller Unit) sono 1A, 2A e 1.2EN. 
 L&#039;inversione della polarità dei motori per cambiare la direzione di marcia si effettua con un cosiddetto circuito ad H. Lo realizziamo con il nostro microcontrollore impostando due pin di uscita (questi vanno a 1A e 1B) su HIGH o LOW. 
 Il cambio di velocità avviene come nell&#039; esempio n. 04 - LED pulsante  con modulazione dell&#039;ampiezza degli impulsi (PWM), ovvero con l&#039;accensione e lo spegnimento molto rapido della tensione. Pertanto, per i collegamenti 1,2EN (&quot;Enable&quot;) è necessaria un&#039;uscita PWM sull&#039;MCU (sono i pin con la tilde ~). 
 Per il secondo motore, i collegamenti 3A, 4A e 3,4EN sono collegati ai pin dell&#039;MCU. 
 L&#039;immagine a destra (Diagramma logico) spiega il funzionamento del circuito integrato. Possiamo vedere i quattro amplificatori che danno i segnali di ingresso da 1A a 4A rispettivamente con la tensione della batteria alle uscite da 1Y a 4Y. Tuttavia, questo avviene solo se anche gli ingressi PWM 1,2EN e 3,4EN sono commutati su HIGH. 
 Due di questi circuiti integrati L293D sono installati sulla Motor Shield V1, in modo da poter collegare fino a quattro motori. 
 Per non utilizzare troppi pin, al centro della Motor Shield V1 è presente un cosiddetto registro a scorrimento (SN74HC595). Spiegarne il funzionamento andrebbe oltre lo scopo di questo articolo. Fortunatamente, i nostri colleghi di Adafruit a New York hanno fatto la maggior parte della programmazione per noi e hanno fornito una libreria per controllare facilmente i motori.    
 Immagine Motor Shield V1 con modifica:   Connettori a presa saldata (connettori femmina) per collegare altre apparecchiature 
 &amp;nbsp; 
 Anche la Motor Shield V2 può controllare fino a quattro motori e utilizza un circuito integrato simile, ma per il collegamento delle linee di controllo si utilizza il cosiddetto bus I2C con le connessioni SDA (=Serial Data) all&#039;ingresso analogico A4 e SCL (=Serial Clock) ad A5. Adafruit ha anche sviluppato e fornito una libreria di programmi adatta a questo scopo. 
   
 Immagine Motor Shield V2 con modifica:  Connettori a presa saldati (connettori femmina) per il collegamento di apparecchiature aggiuntive 
 Entrambi i Motor Shield hanno connettori femmina aggiuntivi saldati per collegare in seguito trasmettitori/ricevitori Bluetooth o 433 MHz o sensori. Maggiori informazioni in uno dei seguenti post del blog. 
 Alimentazione e controllo di un&#039;auto RC per microcontrollori Arduino 
 Se vogliamo che la nostra auto robot si guidi da sola, dobbiamo scollegarla dalla porta USB del PC. Questo significa che anche l&#039;alimentazione viene meno. D&#039;ora in poi, la centrale di comando (MCU) e i motori elettrici saranno alimentati da batterie o pile ricaricabili. I motori sono di gran lunga i maggiori consumatori. Il portabatterie fornito con la maggior parte dei kit è per quattro batterie Mignon (AA), cioè 6 volt per MCU e motori. Se vuoi usare batterie ricaricabili, devi usare sei batterie Mignon (AA) o due batterie 18650 agli ioni di litio a causa del voltaggio più basso. 
 Per quanto riguarda i controlli, nelle prossime puntate conosceremo i telecomandi con telecomando a infrarossi, i ricetrasmettitori Bluetooth con APP per smartphone o un secondo microcontrollore sempre con ricetrasmettitore BT HC-05 e i radiocomandi a 433Mhz e 2,4 GHz. La serie di blog si concluderà con gli aspetti della guida autonoma, in particolare il rilevamento degli ostacoli. A presto. 
 &amp;nbsp; 
                ]]>
            </content>

                            <updated>2022-06-03T11:00:00+02:00</updated>
                    </entry>

    
    
        <entry>
            <title type="text">Imbarcazione da sbarco a cuscino d&#039;aria di classe WISENT</title>
            <id>https://funduinoshop.com/it/imbarcazione-da-sbarco-a-cuscino-d-aria-di-classe-wisent</id>
            <link href="https://funduinoshop.com/it/imbarcazione-da-sbarco-a-cuscino-d-aria-di-classe-wisent"/>
            <summary type="html">
                <![CDATA[
                
                                            In molte mostre di modellismo navale, la maggior parte delle imbarcazioni sono costruite nei minimi dettagli e di altissima qualità. È un peccato che questo aspetto venga spesso trascurato dagli spettatori. Modelli spettacolari e non da tutti i giorni...
                                        ]]>
            </summary>
            <content type="html">
                <![CDATA[
                 Modellismo: WISENT-Class Landing Craft Air Cushion &quot;LCAC&quot; 
 In molte mostre di modellismo navale, la maggior parte delle navi sono costruite con una qualità molto alta e nei minimi dettagli&amp;nbsp;. È un peccato che questo aspetto venga spesso trascurato dagli&amp;nbsp;spettatori. I modelli&amp;nbsp;spettacolari e non comuni hanno maggiori probabilità di attirare l&#039;attenzione. Senza&amp;nbsp;dubbio, gli hovercraft sono uno di questi.&amp;nbsp;Perché non costruire un modello del più grande del suo genere?&amp;nbsp;Con un dislocamento di 550 tonnellate, la classe Zubr (classe Wisent) è un gigante.&amp;nbsp;Esiste un modello in plastica in 1:110. Era troppo piccolo per me. ho pensato che 1:75 fosse giusto&amp;nbsp;. Quindi costruisci il tuo! 
 Costruisci il tuo hovercraft: Ma come? 
 Il libro &quot;RC Luftkissenboote&quot; (Hovercraft RC) di&amp;nbsp;K.Jackson &amp;amp; M.Porter della casa editrice VTH è stato un valido aiuto. Per capire quali componenti&amp;nbsp;tecnici dovevano far galleggiare il modello, è stato necessario fare delle prove&amp;nbsp;. I calcoli non sono stati molto utili in questo caso. Alla fine del testo è presente un&amp;nbsp;elenco delle batterie e delle tecnologie di azionamento utilizzate. Non esiste un piano di costruzione per&amp;nbsp;questo tipo, quindi è stato necessario utilizzare delle foto e fare molti&amp;nbsp;calcoli. 
 Il guscio è stato costruito con un pannello di schiuma PU e una colla di potenza&amp;nbsp;dal negozio di bricolage. Il lavoro è stato abbastanza veloce. Una girante da 70 mm, spesso utilizzata per gli aeromodelli in polistirolo, dovrebbe far &quot;librare&quot; il Wisent&amp;nbsp;. La gonna d&#039;aria è realizzata in rip-nylon.&amp;nbsp;Un materiale che viene utilizzato per i teloni delle tende e dai paracadutisti&amp;nbsp;. 
 L&#039;alimentazione dell&#039;hovercraft 
 Con le dimensioni previste di 900 x 400 mm, era chiaro fin dall&#039;inizio che non si sarebbe trattato di un modello a risparmio energetico. Una batteria da 18 V con 2,5 Ah della gamma di strumenti&amp;nbsp;- combinata con un convertitore di tensione - fornisce la tensione desiderata di 12 V.&amp;nbsp;Un secondo convertitore di tensione regola i 12 V fino a 9 V&amp;nbsp;e fornisce così all&#039;elica e all&#039;illuminazione nautica una tensione&amp;nbsp;uniforme.&amp;nbsp;In questo modo l&#039;intera alimentazione proviene da un&#039;unica batteria.&amp;nbsp;Due delle eliche esterne sono progettate per la propulsione, il motore&amp;nbsp;centrale è stato invertito e questa elica è stata inserita &quot;al contrario&quot; nell&#039;albero motore . La marcia indietro è quindi possibile senza problemi.&amp;nbsp;Le tre gondole di trasmissione sono state stampate per me dall&#039;azienda - Ray Haller di Eibenstock - sulla&amp;nbsp;stampante 3D. Sono controllate in modo sincrono da un servo.&amp;nbsp;Questo concetto di propulsione si è dimostrato valido.&amp;nbsp;Le eliche da 3,5 pollici (circa 9 cm) provengono dalla gamma di pezzi di ricambio per quadcopter.&amp;nbsp;Nonostante la costruzione leggera, il modello pesa 4,7 kg con tutti i componenti&amp;nbsp;. Questo rende possibile l&#039;atterraggio, ma non è adatto a viaggi&amp;nbsp;sulla terraferma. Anche l&#039;originale è al 99% sull&#039;acqua&amp;nbsp;. Sono stati costruiti 18 esemplari di questo &quot;bisonte gigante&quot;.&amp;nbsp;Ucraina, Corea, Russia, Cina e Grecia li hanno utilizzati. 
 Componenti utilizzati da Funduino: 
 1x&amp;nbsp; R4-E-0-1 :  Girante a turbina EDF 70mm ADF70-28XL PLUS KV3900  1x R6-C-7-4:  Hobbywing SkyWalker 60A UBEC Brushless ESC&amp;nbsp;(il controller da 40A si scalda troppo)  3x R5-E-4-3:  Ready ToSky 1306 KV3100 per 150 quadcopter  3x R6-E-1-4:  Hobbywing SkyWalker 12AE Brushless ESC  2x R12-B-8-2:  Modulo DC-DC Step Down 300W 20A da 6-40V a 1.2-36V  
 1x batteria 2,5 Ah 18 V di Einhell (tempo di guida circa 15 min) Il modello è controllato con un telecomando Carson a 6 canali da 2,4 GHz. 
                ]]>
            </content>

                            <updated>2022-05-04T15:30:00+02:00</updated>
                    </entry>

    
</feed>
