auto radiocomandata

Ciao a tutti, qualcuno potrebbe darmi delle linee guida su come iniziare a interfacciare arduino con un auto radiocomandata?
La mia intenzione è di usare il telefono per comandarla e mettere un sensore bluetooth.
Credo di avere tutto, ho l'auto tutta smontata, ho l'arduino, la voglia di riuscirci e anche il modulo bluetooth :slight_smile:
Grazie in anticipo..

up del post dopo vari studi e ricerche, spero almeno che con queste nuove info ricevo qualche input da qualcuno più esperto o qualche linea guida,

Dunque partiamo dal servo che sono già riuscito a fare funzionare sia con potenziometro e sia senza, il problema è che non riesco a capire come bloccarlo prima dei 180° a sinistra e destra..

Il motore dell'auto è questo http://www.mabuchi-motor.co.jp/cgi-bin/catalog/e_catalog.cgi?CAT_ID=rs_540sh, collegato direttamente al 5v e GND non si muove di un millimetro, perchè? cosa devo usare? è giusto usare un Ponte H come ad esempio L293D? ne ho trovati "millemila" ma non so qual'è quello adatto per me.

Per quanto riguarda l'alimentazione dell'auto e di arduino, qui sono praticamente bianco, so solo che l'auto funziona con un pacco batterie da 7.2V.

L'auto verrà comandata da un modulo BlueTooth HC-06, ho avuto modo di familiarizzare un pò tramite un app presente sullo store per via di un progetto passato ma conosco molta poca programmazione per quanto riguarda il sensore.

Il lato che mi preoccupa principalmente è l'HW, con il software in un modo o in un altro generalmente me la cavo..

Grazie in anticipo :slight_smile:

Dunque partiamo dal servo che sono già riuscito a fare funzionare sia con potenziometro e sia senza, il problema è che non riesco a capire come bloccarlo prima dei 180° a sinistra e destra..

E io non riesco a capire cosa tu intenda...... se gli dici di fare 45°. Li fa' e si ferma

Il motore dell'auto è questo http://www.mabuchi-motor.co.jp/cgi-bin/catalog/e_catalog.cgi?CAT_ID=rs_540shRG162107512CN, collegato direttamente al 5v e GND non si muove di un millimetro, perchè? cosa devo usare? è giusto usare un Ponte H come ad esempio L293D? ne ho trovati "millemila" ma non so qual'è quello adatto per me.

il link e' errato

Per quanto riguarda l'alimentazione dell'auto e di arduino, qui sono praticamente bianco, so solo che l'auto funziona con un pacco batterie da 7.2V.

meglio. E' una tensione che puoi usare per alimentare Arduino attraverso il connettore Jack

L'auto verrà comandata da un modulo BlueTooth HC-06, ho avuto modo di familiarizzare un pò tramite un app presente sullo store per via di un progetto passato ma conosco molta poca programmazione per quanto riguarda il sensore.

Il modulo si comporta come se tu avessi un collegamento sulla seriale. Quindi non richiede nessuna programmazione particolare

grazie per la risposta,per quanto riguarda il servo se fosse come dici tu perchè se imposto così il loop resta solo da un lato?
(codice originale http://www.arduino.cc/en/Tutorial/Knob)
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 50); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}

modifico il valore sbagliato?
sto usando un trimmer da 4.7k..

PS: ho sistemato il link del motore

modifico il valore sbagliato?
sto usando un trimmer da 4.7k.

Piu' probabile che tu abbia collegato il trimmer in modo errato

Per quanto riguarda il motore, non so' se sai leggere i dati indicati dal link, ma se fai caso all'assorbimento ti renderai conto che la corrente richiesta e' "altina"..... e se lo vuoi veder girare collegalo al pacco batterie.
Se lo colleghi al +5v di Arduino, lo fondi ( Arduino )
E comunque per gestirlo non basta un L293D

ho collegato una batteria a 9v e il motore funziona anche se non mi sembrano proprio 20000rpm ma comunque non mi interessa mandarlo al massimo..
cosa devo usare al posto dell'l293d?
per quanto riguarda il servo, la corsa del trimmer è eccessiva cioè la dopo tot si blocca e il potenziometro è come se sforzasse per andare oltre..
sto facendo svariate prove ma non riesco a concludere nulla :frowning:
il trimmer ha un lato collegato a 5v e uno a GND, il centrale in A0

per quanto riguarda il servo, la corsa del trimmer è eccessiva cioè la dopo tot si blocca e il potenziometro è come se sforzasse per andare oltre..

Allora, cominciamo dall'inizio

  1. Che servo hai ?
  2. Lo alimenti dal +5V di Arduino ?
  3. Comincia con caricare questo sketch.... poi apri il monitor seriale e girando il trimmer controlla fino a quali valori gira correttamente
/*
  Arduino Starter Kit example
 Project 5  - Servo Mood Indicator
 
 This sketch is written to accompany Project 5 in the
 Arduino Starter Kit
 
 Parts required:
 servo motor 
 10 kilohm potentiometer 
 2 100 uF electrolytic capacitors
 
 Created 13 September 2012
 by Scott Fitzgerald
 
 http://arduino.cc/starterKit
 
 This example code is part of the public domain 
 */

// include the servo library
#include <Servo.h>

Servo myServo;  // create a servo object 

int const potPin = A0; // analog pin used to connect the potentiometer
int potVal;  // variable to read the value from the analog pin 
int angle;   // variable to hold the angle for the servo motor 

void setup() {
  myServo.attach(9); // attaches the servo on pin 9 to the servo object 
  Serial.begin(9600); // open a serial connection to your computer
}

void loop() {
  potVal = analogRead(potPin); // read the value of the potentiometer
  // print out the value to the serial monitor
  Serial.print("potVal: ");
  Serial.print(potVal);

  // scale the numbers from the pot 
  angle = map(potVal, 0, 1023, 0, 179);

  // print out the angle for the servo motor 
  Serial.print(", angle: ");
  Serial.println(angle); 

  // set the servo position  
  myServo.write(angle);

  // wait for the servo to get there 
  delay(15);
}

ho collegato una batteria a 9v e il motore funziona anche se non mi sembrano proprio 20000rpm ma comunque non mi interessa mandarlo al massimo..

Non e' un problema di mandarlo o no al massimo... ma di corrente disponibile
Una batteria da 9V eroga circa 240 mAh, quel motore ne consuma ( senza carico ) 10 volte di piu' e se sotto sforzo 300 volte di piu'.
Ti sarai accorto che anche se gira collegato a codesta batteria, basta un niente per fermarlo

il servo è questo http://www.bycmo.com/servo-bycmo-422-s-rf-ht1214.html

è attaccato sulla linea 5V e GND della basetta;

con le ruote a destra senza sforzo il valore è questo
potVal: 731, angle: 127
e poi tutto a sinistra
potVal: 389, angle: 68

per quanto riguarda il ponte H non sapresti dirmi quale usare?

bene, ti sei trovato i valori Min e Max

per quanto riguarda il ponte H dipende molto dal tipo di batteria che vuoi usare.
Ti spiego:
Quel motore assorbe a vuoto 2,7A, in condizioni normali 13A e in stallo ( cioe' bloccato ) 70A.
Quindi se usi una batteria che puo' erogare detta corrente( ad esempio una LiPo ) ti serve un ponte che regga quella corrente. E siamo su delle cifre notevoli.
Se poi pensi di usare delle batterie stilo, anche ricaricabili ( 6 x 1,2V = 7,2V ), puoi cercare un ponte che regga anche solo 4/5A, visto che dette batterie non ce la faranno mai ad erogare una simile corrente ( Amper )
Il problema e' che se non scorre abbastanza corrente, il motore con un po' di carico nemmeno si muove ( o quasi ).

In conclusione, visto che il gioco non vale la candela, non c'era una centralina in codesta macchinetta, potresti riusare quella

questa è l'auto http://images29.fotosik.pl/87/ff869b7502ec6555.jpg, ha due servo, uno regola la sterzata e uno non capisco cosa regola..

mi sembra tanto un regolatore meccanico di velocita'

Brunello:
mi sembra tanto un regolatore meccanico di velocita'

Si è un vecchissimo regolatore a reostato, poco efficiente e molto poco affidabile.

guixi:
perchè se imposto così il loop resta solo da un lato?

Imposta la map in questo modo:

 val = map(val, 0, 1023, 45, 135);

Con la servo.write il centro del servo vale 90, per l'escursione standard di +/-45°, pure troppi per lo sterzo, devi stare entro 45 e 135 come valori.