Vai al contenuto

195891450

Utente
  • Numero contenuti

    2
  • Iscritto

  • Ultima visita

Su 195891450

  • Compleanno 08/13/1993

Obiettivi di 195891450

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Badge recenti

0

Reputazione Forum

  1. 195891450

    Problema con la macchina RC

    Salve a tutti, Sono nuovo sull'arduino, dopo aver seguito alcune guide su Youtube sui led ho deciso di portare una tesina di maturità sulle macchine RC comandato dall'arduino uno. L'idea era come una cosa del genere http://www.instructables.com/id/RC-Car-to-Robot/?ALLSTEPS, ma con una variazione, che quando la macchina incontra uno ostacolo giri, muovendo avanti le ruote destra oppure sinistra e muovendo indietro contemporaneamente le ruote destra nel caso si muovesse avanti quelle sinistra e viceversa. Questo è la macchina(dove sono arrivato al momento), ho caricato anche la mappa, però oltre alla programmazione, che non ho la minima idea come farla(ho trovato sui forum qualcosa che vi metto sotto), la motor shield L298N come lo collegata cioè il positivo(dei due motori a destra) nell'output 2 e il negativo(dei due motori a sinistra) nell'output 1, la stessa cosa a sinistra con + nel output 3(filo giallo se guardate l'immagine). Vi spiego come ho collegato: Il sensore con:GND,INPUT,OUT,5V. Ho collegato il GND nella ground dell'arduino, INPUT nel pin 5, OUTPUT nel pin 6 e 5V alimentato direttamente dall'arduino. La motor shield L298N: IN1 nel pin8, IN2 nel pin9,IN3 nel pin12, IN4 nel pin13; poi ENA e ENB nel pin 10 e pin 11(PWM), dopo aver letto gli altri post ho capito che servono semplicemente a spegnere e accendere la velocità? non a controllare la velocità della macchina. poi l'alimentazione lo fornisco attraverso una batteria DC esterna da 6V e il ground lo messo sull'arduino(anche quella della batteria). Non ho ancora messo la batteria da 9V(quella per alimentare l'arduino). Poi mi scuso se ho scritto così tanto, perché sono veramente disperato....non conosco nessuno che mi possa dare una mano, l'unico posto che potevo chiedere era qui....ringrazio in anticipo!!! mi serve soprattutto una mano sulla programmazione please!!!e grazie mille!!! Programmazione(so che qui la luce già non mi serve): //motore anteriore int m1 = 3; int m1_a = 4; int m1_b = 5; //motore posteriore int m2 = 9; int m2_a = 6; int m2_b = 7; //sensore ultrasuoni int ali = 11; int triggerPort = 12; int echoPort = 13; //luce int L1 = 1; int L2 = 2; int ferma(){ analogWrite( m2, 255 ); digitalWrite( m2_a, LOW ); digitalWrite( m2_b, LOW ); } void avanti(){ analogWrite( m2, 255 ); digitalWrite( m2_a, LOW ); digitalWrite( m2_b, HIGH ); } int indietro(){ analogWrite( m2, 155 ); digitalWrite( m2_a, HIGH ); digitalWrite( m2_b, LOW ); } void sx(){ digitalWrite( m1, HIGH ); digitalWrite( m1_a, LOW ); digitalWrite( m1_b, HIGH ); } void dx(){ digitalWrite( m1, HIGH ); digitalWrite( m1_a, HIGH ); digitalWrite( m1_b, LOW ); } void dritto(){ digitalWrite( m1, HIGH ); digitalWrite( m1_a, LOW ); digitalWrite( m1_b, LOW ); } int scan(){ //porta bassa l'uscita del trigger digitalWrite( ali, HIGH ); digitalWrite( triggerPort, LOW ); //invia un impulso di 10microsec su trigger digitalWrite( triggerPort, HIGH ); delayMicroseconds( 10 ); digitalWrite( triggerPort, LOW ); long duration = pulseIn( echoPort, HIGH ); long r = 0.034 * duration / 2; Serial.print( "durata: " ); Serial.print( duration ); Serial.print( " , " ); Serial.print( "distanza: " ); //dopo 38ms è fuori dalla portata del sensore if( duration > 38000 ) Serial.println( "fuori portata"); else { Serial.print( r ); Serial.println( "cm" );} //aspetta 1.5 secondi delay( 500 ); return r; } void ostacolo(){ ferma; delay(500); indietro(); delay( 1500 ); dx(); avanti(); delay( 2500 ); dritto(); } void setup() { pinMode( L1, OUTPUT ); pinMode( L2, OUTPUT); pinMode( m1, OUTPUT ); pinMode( m1_a, OUTPUT); pinMode( m1_b, OUTPUT ); pinMode( m2, OUTPUT ); pinMode( m2_a, OUTPUT ); pinMode( m2_b, OUTPUT ); pinMode( triggerPort, OUTPUT ); pinMode( echoPort, INPUT ); pinMode( ali, OUTPUT ); Serial.begin( 9600 ); Serial.println( "Sensore ultrasuoni: "); } void loop() { int m=0; Serial.print( m); m= scan(); while(m>20) { m= scan(); avanti(); } m= scan(); ostacolo(); } <a href="http://it.tinypic.com?ref=2zzp283" target="_blank"><img src="http://i61.tinypic.com/2zzp283.jpg" border="0" alt="Image and video hosting by TinyPic"></a> <a href="http://it.tinypic.com?ref=w6pgrd" target="_blank"><img src="http://i57.tinypic.com/w6pgrd.jpg" border="0" alt="Image and video hosting by TinyPic"></a> <a href="http://it.tinypic.com?ref=15x1ruo" target="_blank"><img src="http://i57.tinypic.com/15x1ruo.jpg" border="0" alt="Image and video hosting by TinyPic"></a> <a href="http://it.tinypic.com?ref=28wmnp5" target="_blank"><img src="http://i59.tinypic.com/28wmnp5.jpg" border="0" alt="Image and video hosting by TinyPic"></a> <a href="http://it.tinypic.com?ref=vopws9" target="_blank"><img src="http://i62.tinypic.com/vopws9.jpg" border="0" alt="Image and video hosting by TinyPic"></a>
  2. 195891450

    ciao a tutti

    ciao a tutti mi chiamo andrea e sono nuovo, sono qui per imparare qualcosa di arduinoasdasd
×
×
  • Crea Nuovo...