• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Robot - brak reakcji od strony bluetooth
#1
Witam.
Po pewnym czasie postanowiłem odkopać arduino i stworzyć z powrotem robota. Sam robot posiada dwa silniki z jedną osią jezdną z tyłu sterowane przez układ L298 (dostępny w botlandzie) czujnik ruchu HC SR 04 i bluetooth HC-06 FC114 i serwomechanizm (z którego prawdopodbnie zrezygnuje ze względu na brak miejsc pinów zasilania w arudino) . Kiedyś już tworzyłem taką konstrukcje i miałem problem z  kodem jednak po rozmowie tutaj na forum uzyskałem kod który działał . Niestety teraz odtwarzając projekt 1:1 wystąpił problem otóż : Po podłączeniu wszystkich część i połączeniu się przez smartfon z bluetooth arduino wogóle nie reaguje tak jakby nie otrzymywało informacji (świadczy o tym mrugnięcie diod TX/RX).Z początku myślałem że jest coś nie tak z arduino ale po podłączeniu do komputera i wysłaniu czegokolwiek przez monitor portu szeregowego ów diody mrugają. Nie wiem czego może dotyczyć bład będe wdzięczny za wszelką okazaną pomoc jak i konstruktywną krytykę Smile

Zasilanie:
Arduino- bateria 9V przez wtyk DC 2.1/5.5 (czerwony środek / czarny obudowa)
Sterownik L298 - koszyk baterii 6xAA
Podłączenie:
Sterownik - przewody do silników / 4 przewody do arduino na pin 4,5,6,7
Bluetooth- 1-GND 2-3,3V  3-TX-RX 4-RX-TX
Czujnik odległości 1-GND 2-5V 3-ECHO-12pin 4.TRIG-11pin
Serwo-aktualnie nie podłaczone brak portów zasilających
2 silniki DAGU 4,5V 48:1 podłaczone do kanałów sterownika


Kod - wcześniej działał dzięki uprzejmości moderatora jasqa
Kod:
#include <Servo.h>
Servo myservo;
#include <NewPing.h>
#define TRIGGER_PIN  11
#define ECHO_PIN     12  
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int pos = 0;  
byte state = 1;
long pm = 0;
byte echo = 0;

int Motor1 = 4;
int Motor2 = 5;
int Motor3 = 6;
int Motor4 = 7;

char command = 'S';
int velocity = 0;


void setup()
{  
Serial.begin(9600);                  
pinMode(Motor1, OUTPUT);
pinMode(Motor2, OUTPUT);
pinMode(Motor3, OUTPUT);
pinMode(Motor4, OUTPUT);
pinMode(TRIGGER_PIN, OUTPUT); //Pin, do którego podłączymy trig jako wyjście
pinMode(ECHO_PIN, INPUT);

myservo.attach(8);  

}

void loop(){


{
 long cm = millis();

if ( cm - pm > 1 )echo = sonar.ping_cm();
if ( cm - pm > 10 and state == 1){
  pos = constrain(pos, 0, 180);
 
  pos++;
  myservo.write(pos);              
if (pos >= 180)state = 2;
  pm = cm;}

if ( cm - pm > 10 and state == 2){
  pos = constrain(pos, 0, 180);
  pos--;
  myservo.write(pos);              
if (pos <= 0)state = 1;
  pm = cm;}
   
//   Serial.print(pos);
//   Serial.print(" - ");
//   Serial.print(echo);
//   Serial.println("cm");
   
}
    if (Serial.available() > 0)command = Serial.read();
   
   
 if ( echo < 10)command = 'S';  
   
  switch(command){
  case 'F':  
  digitalWrite(Motor1, HIGH);    
  digitalWrite(Motor4, HIGH);
     break;
  case 'B':  
     digitalWrite(Motor2, HIGH);
     digitalWrite(Motor3, HIGH);
    break;
  case 'R':  
     digitalWrite(Motor2, HIGH);
     digitalWrite(Motor4, HIGH);
    break;
  case 'L':
     digitalWrite(Motor1, HIGH);
     digitalWrite(Motor3, HIGH);
    break;
  case 'S':  
     digitalWrite(Motor1, LOW);
     digitalWrite(Motor2, LOW);
     digitalWrite(Motor3, LOW);
     digitalWrite(Motor4, LOW);
    break;

   
     }
}
 
Odpowiedź
#2
Sprawdź czy działa jeśli zostawisz tylko część programu odpowiedzialna za komunikację.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
A więc tak podłączyłem same bluetooth z tym programem:
Kod:
#include "SoftwareSerial.h"
SoftwareSerial mySerial(A0, A1); // RX, TX - odwrotnie
void setup() {
 mySerial.begin(9600);
}
void loop() {
 mySerial.print(";");
 delay(100);
}

Dioda tx cały czas miga po podłączeniu z bt .Normalnie na porcie widać odczytywanie komend typu S F B bez zakończenia a więc wykluczyłbym uszkodzenie bluetooth
 
Odpowiedź
#4
(04-02-2017, 21:40)Bator11 napisał(a): A więc tak podłączyłem same bluetooth z tym programem:
Kod:
#include "SoftwareSerial.h"
SoftwareSerial mySerial(A0, A1); // RX, TX - odwrotnie
void setup() {
 mySerial.begin(9600);
}
void loop() {
 mySerial.print(";");
 delay(100);
}

Dioda tx cały czas miga po podłączeniu z bt .Normalnie na porcie widać odczytywanie komend typu S F B bez zakończenia a więc wykluczyłbym uszkodzenie bluetooth

Na podstawie czego chcesz wykluczyć uszkodzenie portu szeregowego(piny 0, 1) skoro test zrobiłeś na innych pinach? Dodatkowu tu wysyłasz dane za arduino a tam odbierałeś?
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#5
Testy nie robiłem na innych pinach.Bluetooth został tak samo podłączony jak był i tylko ten program wgrany został . Tutaj w tym programie chciałem zobaczyć tylko czy arduino odbiera sygnał z bluetooth żeby sprawdzić czy bt działa.
 
Odpowiedź
#6
(04-02-2017, 22:06)Bator11 napisał(a): Testy nie robiłem na innych pinach.Bluetooth został tak samo podłączony jak był i tylko ten program wgrany został . Tutaj w tym programie chciałem zobaczyć tylko czy arduino odbiera sygnał z bluetooth żeby sprawdzić czy bt działa.
W programie który zamieściłeś arduino niczego nie odbiera a wysyła.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#7
Sądzę że chodzi tobie o ten krótki do sprawdzenia.To w takim razie jeśli arduino nic nie odbiera to czemu po połączeniu z bluetooth i program na smartfonie naciskając klawisz odpowiedzialny za przesłanie "F" monitor portu szeregowego wyświetlał F i analogicznie F B R L itd. Będę wdzięczny za odpowiedź i podziwiam za cierpliwość Smile
 
Odpowiedź
#8
Jak nie zastosujesz się do mojego pierwszego post to stracę cierpliwość.
Przeczytaj uważnie co i kiedy napisałeś i jak była moja odpowiedź.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#9
Coś czuję że się nie dogadamy :/ trochę się już sam pogubiłem we wszystkim :/
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości