Lekcja 4


Bluetooth


Poprzednia lekcja była krótka, a napewno ciekawa. Chcę aby każda lekcja pokazała ci co daje każdy dodatek do płytki Adruino. Teraz zajmiemy się (moim zdaniem) fajny dodatkiem dzięki któremu będziemy mogli sterować płytką bezprzewodowa, a użyjemy modułu komunikacyjnego bluetooth.bluetooth Są wielofunkcyjne dzięki prostej komunikacji poprzez port UART, dzięki któremu możemy wykorzystywać je w wielu projektach np. modeli RC po roboty. Omówmy na początek sam moduł. Składa on się z : pinu zasilania, odbiornika i pinu do nadawania danych. Działanie sieci bezprzewodowej na pewno znasz i każdy z nas posiada swój komunikator w telefonie,ale w skrócie powie ,że jeśli wysyłamy dane odbiorca zwykle je odbiera, ale w przypadku bluetooth potrzebne jest potwierdzenie i konfiguracja płytki zanim chcemy się z nią komunikować. Jeśli posiadasz pod ręką , widziesz że mamy aż 6 pinów.

Odpowiedzialne one są za: zad9
  • STATE - wyjście diody stanu
  • RXD - odbiór sygnału
  • TXD - nadawanie syganłu
  • GND - masa
  • VCC - zasilanie 3.3V-6V
  • EN - przycisk key



Jak widzisz na powyższym schemacie pokazane jest podłączenie modemu z płytką Arduino. Ale zanim wgramy kod to musisz przygotować swój telefon. Musisz zainstalować darmową aplikację do kontrolowania modelu. Jest wiele aplikacji, ale ja ci polecam Bluetooth Electronics.
screen5

Użytkowanie jest bardzo proste. Najlepiej to pokazać na przykadzie. Podłącz modem tak samo jak na schemacie, włącz aplikację. Zanim się podłączysz wgraj poniższy kod . Potem będziesz mógł swobodnie połączyć się z modemem. Ja będę korzystał z HC-06 Bluetooth Module.

UWAGA
Jeśli posiadasz inny modem i nie możesz się połączyć, zapewne potrzebna jest kalibracja poprzez wpisanie linijki kodu. Myślę że znajdziesz odpowiedź w internecie. Powodzenia.

Posłużymy się przykładem z 3 diodami. Przygotuj : 3 kolorowe diody, moduł Bluetooth, płytkę i kabelki pinowe.

Wpisz kod
int niebieski_pin = 9; 
int zielony_pin = 10; 
int czerwony_pin = 11; 

int niebieski=0;
int zielony=0;
int czerwony=0;

char BluetoothData; 

void setup() {

  pinMode(niebieski_pin, OUTPUT);
  pinMode(zielony_pin, OUTPUT);
  pinMode(czerwony_pin, OUTPUT);

  Serial.begin(9600);
}

void loop() {

  if (Serial.available()){
    BluetoothData=Serial.read(); 
    if(BluetoothData=='B') niebieski=Serial.parseInt();
    if(BluetoothData=='G') zielony=Serial.parseInt(); 
    if(BluetoothData=='R') czerwony=Serial.parseInt(); 
  }
  
  analogWrite(czerwony_pin, niebieski);
  analogWrite(zielony_pin, zielony);
  analogWrite(czerwony_pin, czerwony);
  
  delay(10);
  
}
zad1

Możesz zauważyć że w oknie sterowania lub tam gdzie są przykłady z różnymi sterownikami , że jest okno edycji i tam możesz zmieniać ukłąd i przeznaczenie danego przycisku np. dla zielonej diody jest przypisany warunek logiczny if(BluetoothData=='G') zielony=Serial.parseInt(); i w oknie edycji jest przypisana wartość G. Jest też wiele inncyh warunków i funckji , ale skupmy się na prostrzych przykładach.



Sonar+bluetooth


A teraz nastanie crossover tej lekcji z lekcją 2. Wykorzystam dobrze nam znany sonar i podłączym go do płytki. Zasada będzie ta sama tylko tym razem monitor szeregowy będziemy mieli na ekranie smartphonu.
Przygotuj: sonar,moduł Bluetooth, płytkę i kabelki pinowe.
zad1

Wpisz kod
int trig_pin = 7;
int echo_pin = 6;
long czas; 
float dystans; 

void setup() {
  Serial.begin (9600);
  pinMode(trig_pin, OUTPUT); 
  pinMode(echo_pin, INPUT);
  digitalWrite(trig_pin, LOW); 
}

void loop() {

  digitalWrite(trig_pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig_pin, LOW);

  czas= pulseIn(echo_pin, HIGH);
  dystans= 0.0001*((float)czas*340.0)/2.0;
  

  Serial.print("*T"+String(czas)+"*");
  Serial.print("*D"+String(dystans,1)+"*");
  if (dystans<20) Serial.print("*LR255G0B0*"); 
  if (dystans>=20&&dystans<=50) Serial.print("*LR255G200B0*"); 
  if (dystans>50) Serial.print("*LR0G255B0*"); 
  
  delay(100);
}

ZADANIE
A teraz zrób tak aby kolor odległości był na płytce zamias na monitorze. Usuń w sterowaniu diodę i dodaj diodę w realnych warunkach. Jedynie pozostanie pomiar odległości i czasu. Podziel się odpowiedzią na Facebooku.