<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://www.raspibo.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Arduino_controllo_motori_robot</id>
	<title>Arduino controllo motori robot - Cronologia</title>
	<link rel="self" type="application/atom+xml" href="https://www.raspibo.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Arduino_controllo_motori_robot"/>
	<link rel="alternate" type="text/html" href="https://www.raspibo.org/wiki/index.php?title=Arduino_controllo_motori_robot&amp;action=history"/>
	<updated>2026-05-07T18:18:40Z</updated>
	<subtitle>Cronologia della pagina su questo sito</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://www.raspibo.org/wiki/index.php?title=Arduino_controllo_motori_robot&amp;diff=5084&amp;oldid=prev</id>
		<title>Dancast78: Creata pagina con '= Introduzione = Su questa pagina un semplice codice da caricare su arduino per il controllo di due motori in corrente continua.  E' stata appositamente creata per il robot = ...'</title>
		<link rel="alternate" type="text/html" href="https://www.raspibo.org/wiki/index.php?title=Arduino_controllo_motori_robot&amp;diff=5084&amp;oldid=prev"/>
		<updated>2016-02-12T16:55:00Z</updated>

		<summary type="html">&lt;p&gt;Creata pagina con &amp;#039;= Introduzione = Su questa pagina un semplice codice da caricare su arduino per il controllo di due motori in corrente continua.  E&amp;#039; stata appositamente creata per il robot = ...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Introduzione =&lt;br /&gt;
Su questa pagina un semplice codice da caricare su arduino per il controllo di due motori in corrente continua.&lt;br /&gt;
&lt;br /&gt;
E' stata appositamente creata per il robot = Introduzione =&lt;br /&gt;
Questa pagina descrive un generico server web su ESP8266 che può gestire eventi touch provenienti da un telefono o un tablet. &lt;br /&gt;
&lt;br /&gt;
E' stata appositamente creata per il robot [[Ruschino WiFi]], ma ha una più ampia possibilità di utilizzo., ma ha una più ampia possibilità di utilizzo.&lt;br /&gt;
&lt;br /&gt;
=== Codice arduino ===&lt;br /&gt;
&lt;br /&gt;
Il programma di arduino è abbastanza semplice, si tratta sostanzialmente di generare due segnali pwm in base alla decodifica della stringa passata dal modulo wifi.&lt;br /&gt;
&lt;br /&gt;
Una stringa di controllo deve essere mandata sulla porta seriale, sul robot [[Ruschino WiFi]] questa funzione viene svolta dal modulo [[ESP8266]] attraverso il codice [[ESP8266 Web server touch]].&lt;br /&gt;
&lt;br /&gt;
La stringa ha questo formato:&lt;br /&gt;
&lt;br /&gt;
 R=255&amp;amp;l=255&amp;amp;D=0&amp;amp;d=1&amp;amp;E=0&amp;amp;e=0&lt;br /&gt;
&lt;br /&gt;
 R=potenza del motore destro da 0 a 255&lt;br /&gt;
 l=potenza del motore destro da 0 a 255&lt;br /&gt;
 D=direzione del motore destro 0 o 1 &lt;br /&gt;
 d=direzione del motore sinistro 0 o 1 &lt;br /&gt;
 E=variabile predisposta per ampliamenti &lt;br /&gt;
 e=variabile predisposta per ampliamenti &lt;br /&gt;
&lt;br /&gt;
Dopo aver decodificato la stringa precedente il robot girera su se stesso a tutta potenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
 String comando;&lt;br /&gt;
 int en12=9;&lt;br /&gt;
 int en34=10;&lt;br /&gt;
 int dir12=4;&lt;br /&gt;
 int dir34=5;&lt;br /&gt;
 int board=1;&lt;br /&gt;
 int out_bridge_n=0;&lt;br /&gt;
 int incomingByte = 0;&lt;br /&gt;
 int s_speed_sx=0;&lt;br /&gt;
 int s_speed_dx=0;&lt;br /&gt;
 boolean direction_sx=0;&lt;br /&gt;
 boolean direction_dx=0;&lt;br /&gt;
 boolean enable_sx=0; //non utilizzato&lt;br /&gt;
 boolean enable_dx=0; //non utilizzato&lt;br /&gt;
 int command_name;&lt;br /&gt;
 int position;&lt;br /&gt;
 char cmd;&lt;br /&gt;
 // Calculate based on max input size expected for one command&lt;br /&gt;
 #define INPUT_SIZE 30&lt;br /&gt;
 void motor_drive(int out_bridge, boolean dir, int speed) {&lt;br /&gt;
  if (out_bridge == 34) {&lt;br /&gt;
    digitalWrite(dir34, dir);&lt;br /&gt;
    analogWrite(en34, speed);  &lt;br /&gt;
  } &lt;br /&gt;
  else if (out_bridge == 12) {&lt;br /&gt;
    digitalWrite(dir12, dir);&lt;br /&gt;
    analogWrite(en12, speed);&lt;br /&gt;
  }  &lt;br /&gt;
 }  &lt;br /&gt;
 void setup() {&lt;br /&gt;
  Serial.begin(115200); &lt;br /&gt;
  pinMode(en12, OUTPUT);&lt;br /&gt;
  pinMode(dir12, OUTPUT);&lt;br /&gt;
  pinMode(en34, OUTPUT);&lt;br /&gt;
  pinMode(dir34, OUTPUT); &lt;br /&gt;
  Serial.println(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 void loop() {&lt;br /&gt;
  if (Serial.available() &amp;gt; 0) {&lt;br /&gt;
    char input[INPUT_SIZE + 1];&lt;br /&gt;
    byte size = Serial.readBytes(input, INPUT_SIZE);&lt;br /&gt;
    input[size] = 0;&lt;br /&gt;
    char* command = strtok(input, &amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
    while (command != 0)&lt;br /&gt;
    {&lt;br /&gt;
      char* command_value = strchr(command, '=');&lt;br /&gt;
      if (command_value != 0)&lt;br /&gt;
      {&lt;br /&gt;
        *command_value = 0;&lt;br /&gt;
        command_name = command[0];&lt;br /&gt;
        ++command_value;&lt;br /&gt;
        position = atoi(command_value);&lt;br /&gt;
      }&lt;br /&gt;
      command = strtok(0, &amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
      switch(command_name) {&lt;br /&gt;
      case 'l':&lt;br /&gt;
        s_speed_sx=position;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'R':&lt;br /&gt;
        s_speed_dx=position;&lt;br /&gt;
        break;  &lt;br /&gt;
      case 'D':&lt;br /&gt;
        direction_dx=position;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'd':&lt;br /&gt;
        direction_sx=position;&lt;br /&gt;
        break;  &lt;br /&gt;
      case 'E':&lt;br /&gt;
        enable_dx=position;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'e':&lt;br /&gt;
        enable_sx=position;&lt;br /&gt;
        break;  &lt;br /&gt;
      }  &lt;br /&gt;
    }&lt;br /&gt;
   motor_drive(34,direction_sx,s_speed_sx);&lt;br /&gt;
   motor_drive(12,direction_dx,s_speed_dx); &lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruschino]]&lt;/div&gt;</summary>
		<author><name>Dancast78</name></author>
	</entry>
</feed>