Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

30 Nisan 2021 Cuma

ARDUINO ve BLYNK KULLANARAK WIFI KONTROLLÜ ROBOT

 

ARDUINO ve BLYNK KULLANARAK WIFI KONTROLLÜ ROBOT


ARDUINO ve BLYNK KULLANAN WIFI KONTROLLÜ ROBOT: millet, umarım iyisindir  ve harika gömülü sistemler projeleri yaparsınız Bu, kontrol robotları serimizin üçüncü projemiz. Son yazımızda Arduino'yu kullanarak ses kontrollü bir robot projesi yayınladık Geçenlerde Engelden Kaçınma ve Sesle kontrol robotu hakkında yazılar yazdım Bu projede robotu Wi-Fi üzerinden Blynk uygulamasını kullanarak kontrol ediyoruz Biz kullandığınız ESP8266 Wifi modülü , Motor Sürücü kalkan, Arduino Unove bu projede 4WD Araç şasisi ve akü paketi. Ayrıca, Blynk uygulamasını Google Play Store'dan indirmemiz gerekiyor. Bu, sesten ziyade robotu kontrol etmenin etkili bir yoludur çünkü wifi kontrolü% 100 doğruluğa sahiptir.

arduino kullanarak wifi kontrollü robot

Arduino kullanan wifi kontrollü robotun Blok Şemasıarduino blok diyagramını kullanarak wifi kontrollü robot

Gerekli Bileşenler:

  • Arduino Uno: Arduino Uno bu proje için mükemmeldir çünkü motor sürücü kalkanı ile uyumludur ve ayrıca ESP8266 wifi modülüne güç sağlamak için 3.3v sağlar. Aynı zamanda ucuzdur, kullanımı kolaydır ve daha az yer kaplar, böylece her şey araç şasisine yerleştirilir.
  • Motor Sürücü Kalkanı: Motor sürücü kalkanı iki L293D ve 74HC595 IC'ye dayanmaktadır. L293D, dörtlü bir Yarı H sürücüsüdür. Kanal başına 1 ampere kadar iletebilir. 4,5 ile 36 volt arasında geniş bir besleme gerilimi aralığına sahiptir. 0 ile 70 derece santigrat arasında çalışabilir. 74HC595, 3 durumlu çıkış yazmaçlarına sahip 8 bitlik Kaydırma Kaydı'dır. Bu motor sürücü kalkanı, DC motorları, Step motorları ve servo motorları çalıştırmak için kullanılır. Aynı anda 2 servo motor ve 4 DC motoru çalıştırabilir.
  • ESP8266 Wifi modülü: ESP8266, ucuz bir Wifi yongasıdır ve tam TCP / IP yığını sağlar. Adından da anlaşılacağı gibi ESP8266 mikro denetleyicisine dayanmaktadır. Modülün pazarında yaklaşık 14 model var ancak ilkini kullanıyorum çünkü Arduino Uno ile kullanmak ve arayüz kullanmak doğu. 3.3V ile çalışır. Ayrıca Arduino pinini kullanabileceğimiz GPIO'ya sahiptir.
  • 4wd Araç Şasi: 4 tekerlekli araç şasisi kullandım. 2 platform, 4 lastik, 4 dişli Dc motor ve 4 hızlı enkodere sahiptir. Her şeyi şasiye yerleştirmek için çok fazla alan sağlar, ancak çok kırılgan bir malzemedir ve çok daha az darbeyle kırılır, bu nedenle araba şasisini monte ederken dikkatli olun.
  • Pil Paketi: Voltajı artırmak için seri olarak 3 li-ion 3.7V ve 2200mA pil kullandım. Bu hücreler şarj edilebilir, yaklaşık 1000 yaşam döngüsüne sahiptir.

ARDUINO KULLANILARAK WIFI KONTROLLÜ ROBOTUN Devre Şemasıarduino devre şemasını kullanarak wifi kontrollü robot

WIFI KONTROLLÜ ROBOT BAĞLANTISI

ESP8266'dan Arduino'ya:

  • ESP8266 Vcc pini 3,3v'ye.
  • ESP8266 CH_PD pinini 3.3v'ye.
  • ESP8266 Rx pinini Arduino Uno Tx'e.
  • ESP8266 Tx pini Arduino Uno Rx'e.

Motor Sürücü Kalkanını Arduino Uno üzerine monte edin. Sol motorları ekranın M3 ve M4 terminaline ve sağ taraftaki motorları ekranın M1 ve M2 terminallerine bağlayın.

Pil takımını + M'ye ve blendajın toprak terminaline bağlayın.

ARDUINO KULLANARAK WIFI KONTROLLÜ ROBOTLA ÇALIŞMA

  • İndir Blynk Google Play Store'dan.
  • Uygulamayı açın, Kaydolmanızı ister: Facebook veya Gmail kimliğini kullanarak Giriş Yapabilirsiniz. Yeni Proje'yi seçin ve ardından proje adını girin, cihaz adını seçin ve bağlantı türünü seçin.
  • Widget Box'a gidin ve listeden Joystick'i seçin.
  • Ardından Somun simgesine basarak Proje ayarına gidin. Ardından, Tümünü e-posta ile gönder seçeneğini seçin ve kimlik doğrulama jetonunu almak için daha önce girdiğiniz E-posta hesabına gidin.
  • E-postayı açın ve Alınan Yetkilendirmeyi kopyalayıp koda yapıştırın. Joy Stick ayarına gidin ve V1 değişkenini seçin.

Rx ve Tx Pinlerini Arduino Uno'dan ayırın ve ardından kodu Arduino'ya yükleyin. RX ve Tx'i Arduino'ya bağlayın SSID'si ve şifresi daha önce kodda tanımlanan Wifi'a bağlanmak için birkaç saniye bekleyin. Blynk Uygulamasını açın ve Robotun hareketini kontrol etmek için kumanda çubuğunu hareket ettirin.

#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

#include <SoftwareSerial.h>
SoftwareSerial EspSerial(2, 3); // RX, TX
#define ESP8266_BAUD 9600 
ESP8266 wifi(&Serial);
char auth[] = "281f8675c5cc4c55a4d259ef7518d313";

#include<AFMotor.h>

AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR12_1KHZ); 
AF_DCMotor motor4(4, MOTOR12_1KHZ);

void setup()
{
// Set console baud rate
Serial.begin(9600);
delay(10);
Serial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, "PTCL-BB", "F4C0A9AB"); // wifi username and password
}
BLYNK_WRITE(V1) 
{
int x = param[0].asInt();
int y = param[1].asInt();
// Do something with x and y

if(y>220)
forward();
else if(y<35)
backward();
else if(x>220)
right();
else if(x<35)
left();
else
Stop();
}
void loop()
{
Blynk.run();
}


void forward()
{
motor1.setSpeed(255); 
motor1.run(FORWARD); 
motor2.setSpeed(255); 
motor2.run(FORWARD); 
motor3.setSpeed(255); 
motor3.run(FORWARD); 
motor4.setSpeed(255); 
motor4.run(FORWARD);
}

void backward()
{
motor1.setSpeed(255); 
motor1.run(BACKWARD); 
motor2.setSpeed(255); 
motor2.run(BACKWARD); 
motor3.setSpeed(255); 
motor3.run(BACKWARD); 
motor4.setSpeed(255); 
motor4.run(BACKWARD); 
}

void left()
{
motor1.setSpeed(255); 
motor1.run(FORWARD); 
motor2.setSpeed(255); 
motor2.run(FORWARD); 
motor3.setSpeed(0);
motor3.run(RELEASE); 
motor4.setSpeed(0);
motor4.run(RELEASE); 



}

void right()
{
motor1.setSpeed(0);
motor1.run(RELEASE); 
motor2.setSpeed(0);
motor2.run(RELEASE); 
motor3.setSpeed(255); 
motor3.run(FORWARD); 
motor4.setSpeed(255); 
motor4.run(FORWARD); 


}

void Stop()
{
motor1.setSpeed(0);
motor1.run(RELEASE); 
motor2.setSpeed(0);
motor2.run(RELEASE); 
motor3.setSpeed(0);
motor3.run(RELEASE);
motor4.setSpeed(0);
motor4.run(RELEASE); 
}



ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

AC ve DC akım ölçümü Arduino ile arabirim Acs712 akım sensörü

 

AC ve DC akım ölçümü Arduino ve Acs712 akım sensörü


Asc712 hall efekt sensörünü kullanarak dc akımı nasıl ölçülür ? ve acs712 hall efekt sensörü kullanılarak ac akımı nasıl ölçülür ? Acs712, endüstri, enerji sektörü ve iletişim uygulamalarında akım algılama için ucuz bir çözümdür. Bu eğitimde ayrıca Lcd'de akımların ölçülen değerinin nasıl görüntüleneceğini ve bu verilerin Arduino'nun seri iletişimini kullanarak bilgisayara nasıl gönderileceğini göstereceğim. AC akım ölçümü ve dc akım ölçümünün birçok uygulaması vardır. Olduğu gibi güç sistemleri koruma Transformatör ve jeneratörlerin korunması için aşırı yük akımını ölçmek için AC akım ölçüm teknikleri kullanılmaktadırBu AC akım ölçüm tekniğini kullanan internet üzerinden trafo sağlığının nasıl ölçüleceğine dair bir proje yayınladım Ve benzer şekilde, ac güç ölçer veya enerji sayaçları tasarlamak için ac veya DC akım ölçüm devreleri kullanıyoruz. Ayrıca geri besleme kontrolü için üç fazlı asenkron motor akımı ölçümünde kullanılır.  

ACS712 akım sensörü

Bu tamamen ac712 hall etkili akım sensörünün tanıtımı ve bazı uygulamaları ile ilgili. Şimdi, acs712 hall efekt sensörünü kullanarak AC ve DC akımın nasıl ölçüleceği bu makalenin ana konusuyla başlayalım. İlk olarak size ac712 akım sensörü, çalışması ve acs712 akım sensörlerinin türlerini tanıtacağım.

Acs712 akım sensörüne giriş

Acs712, hall etkisi tabanlı bir akım sensörüdür. Hem doğru akımı hem de alternatif akımı ölçebilir. Doğrusal tip bir sensördür. Bu, Allegro tarafından tasarlanan çok ünlü bir entegre devredir   . Gürültü giderme, çok yüksek tepki süresi özelliklerine sahiptir. Çıkış hatası yaklaşık yüzde 1,5'tir, ancak bazı akıllı programlama ile ve ölçülen değeri standart sensör hatasıyla çarparak çözülebilir. Girişine DC akım verirseniz sensör çıkışında orantılı dc gerilimi verir ve acs712 girişinde AC akım verirseniz çıkışta orantılı AC gerilimi verir. Orantılı terim, sensörün çıkış hassasiyetine bağlıdır. Acs712 sensörünün orantılı hassasiyetini bu makalenin ilerleyen kısımlarında açıklayacağım.

acs712 akım sensörünün çalışması

Bu acs712 sensörü, bakır iletim yolu ile birlikte doğrusal bir salon etkisi devresinden oluşur. Bakır iletim yolu, kalıbın yüzeyinin etrafında bulunur. AC veya DC akımı bakır bir iletim yolundan geçtiğinde manyetik alan üretir. Bu elektromanyetik alan, salon etkisi sensörü ile etkileşime girer. Hall etkisi devresi, giriş akımı türüne bağlı olarak bu elektromanyetik alanı AC veya DC orantılı gerilime dönüştürür. Bu çıkış voltajı arduino veya herhangi bir mikrodenetleyici yardımı ile ölçülür. Bu voltajı ölçtükten sonra, daha sonra açıklayacağım duyarlılık denklemlerini kullanarak tekrar akıma dönüştürüyoruz.

ACS712 Hall Etkili Akım Sensörünün Pin Şeması

Acs712 akım sensörünün pin çıkışı aşağıda verilmiştir. 1, 2 ve 3, 4 numaralı pinler mevcut örnekleme için kullanılır. Diğer bir deyişle. Bu pimleri, ölçmek istediğiniz akımın yüküne seri olarak bağlayacaksınız. acs712 akım sensörünün pin çıkışıPin numarası 5 volt güç kaynağının toprak bağlantısıdır ve 6 numaralı pin filtre kondansatörünü bağlamak için kullanılır. Filtre kondansatörünün bir terminali 6 numaralı pin ile diğer terminali toprağa bağlanmalıdır. Benzer şekilde 8 numaralı pin de bir güç kaynağı pinidir ve ona dc 5 volt bağlamanız gerekir. 7 numaralı pin, acs712 akım sensörünün çıkış pinidir. Çıkış pininden arduino yardımı ile voltajı ölçeceğiz ve nasıl yapılacağını daha sonra göreceğiz. Yükünüzü IP + ve IP + ile paralel bağlamadığınızdan emin olun, bu cihazınıza zarar verir ve ayrıca AC güç kaynağı veya AC yükü ile uğraşırsanız size zarar verebilir. ACS712 akım sensörü pimleri açıklaması

ACS712 akım sensörü türleri

Sensörlerin mevcut derecelendirmesine göre üç tip acs712 sensör mevcuttur. Aşağıdaki tablolar, üç tip acs712 salon efekti sensörünün derecelendirmesini ve tüm ayrıntılarını sağlar. ACS712 akım sensörü türleri

  • ACS712ELCTR-05B: Sensör artı eksi 5 Amper aralığında akımı ölçebilir ve çıkış hassasiyeti 185mv / A'dır. Akım sensörünün çıkış pininde görünecek çıkış voltajının salon efekt sensöründen geçen her amper için 185 mili volt olduğu anlamına gelir. Diğer sensörler için de benzer şekilde ancak hassasiyet onlar için farklıdır.
  • ACS712ELCTR-20A-T: 20 ve -20 amper akımları çok kolay ölçebilir ve çıkış hassasiyeti 100mv / A'dır.
  • ACS712ELCTR-30A-T: 30 ve -30 amper akımları çok kolay ölçebilir ve çıkış hassasiyeti 66mv / A'dır.

ACS712 sensörünün çıkış voltajından akım nasıl ölçülür?

Acs712 akım sensörünün çıkış geriliminden akımı hesaplamak için aşağıdaki noktalara göre hesaplamalar yapmalısınız:

  • Sensörden geçen akım olmadığında, çıkış voltajı Vcc / 2 olacaktır. Burada Vcc, acs712'ye akım sensörüne verilen güç kaynağı voltajıdır.
  • Vcc = 5 volt ise, akım sensörünün çıkış voltajı, sensörden geçen akım olmadığında 2,5'e eşit olacaktır.
  • 2,5 volt, ölçülen voltajdan çıkarılması gereken sensörün ofset voltajı veya temel voltajıdır.
  • Akım sensörden geçmeye başladığında çıkış voltajı azalır.
  • Dolayısıyla aşağıdaki komutları kullanarak dc akımını hesaplayabiliriz:
Adcvalue analogRead (A0 ;
Gerilim (adcv alue 1024,0 5000 ;
akım  Gerilim -  voltaj_ ofset mVperAmp ;

Üç satırlık Arduino kodunu kullanarak akımı ölçebiliriz. Öyleyse bu satırların neyle ilgili olduğunu ve bu üç satır kodun dc akımını nasıl ölçtüğünü görelim. İlk satırda, hall etkisi akım sensörünün çıkış voltajını ölçmek için Arduino kitaplıktaki analogRead fonksiyonunu kullanıyoruz. Ölçülen dijital değer, değişken 'Adcvalue'da saklanır. İkinci satırda gerilimin sayısal değerini, çözünürlük faktörü ile çarpıp 1000'e bölerek mili amper cinsinden analog gerilime çevirerek mili amper gerilime dönüştürüyoruz. Üçüncü satırda, ölçülen voltaj, ofset voltajından çıkarılır ve ölçülen voltajdan akım elde etmek için duyarlılık faktörüne bölünür. Umarım bu açıklama, bu kodun nasıl çalıştığını ve acs712 hall etkili akım sensörü ile dc akımını nasıl ölçebileceğinizi anlamanıza yardımcı olur.

Arduino Acs712 hall efekt sensörü

Aşağıdaki şekil acs712 akım sensörünün arduino ile arayüzlenmesinin bağlantı şemasını göstermektedir. Bu sensör, aşağıdaki resimde gösterildiği gibi modül şeklinde de mevcuttur: Arduino ile arayüz oluşturan ACS712 akım sensörü

Akım sensörü modülünün Vcc pini Arduino'nun 5V pinine, Ground pinine ise Arduino'nun Ground pinine ve akım sensörü modülünün çıkış pini Arduino'nun analogdan dijitale dönüştürücüsünde yerleşik olan Arduino'nun Analog kanal 0'a bağlanır Yük, IP + ve IP-pin ve dc pil ile seri olarak bağlanır. Bağlantıları yukarıda gösterildiği gibi yapmalısınız.

ACS712 akım sensörü ve arduino kullanarak DC akım ölçümü

DC akım ölçümü için şematik ve proteus simülasyonu aşağıda verilmiştir:

acs712 akım sensörü kullanarak dc akım ölçüm simülasyonu





LCD'de gösterildiği gibi, birinci satır ölçülen adc değerini ve ikinci satır voltajı gösteriyor ve üçüncü satır, proteustaki sanal amper ölçer ile ölçtüğümüz aynı akımın tam olarak aynı olduğunu gösteriyor. Acs712 hall efekt sensörü kullanılarak DC akım ölçümü için kod aşağıda verilmiştir.


Aşağıdaki kod, 5 amper, 20 amper ve 30 amper akım sensörü olmak üzere üç tip sensörün tümü için kullanılabilir. Koddaki duyarlılığın değerini değiştirmeniz yeterlidir ve kodun geri kalanı kendiliğinden açıklayıcıdır. Anlayışınız için yorumlar kodda da yapılır. Ayrıca acs712 hall efekt sensörüyle ac akımının nasıl ölçüleceğine dair bu makaleyi de güncelleyeceğim.

ACS712 akım sensörü kullanılarak DC akım ölçümü için kod

// include the library code:
#include <LiquidCrystal.h> //library for LCD
 
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
 
//Measuring Current Using ACS712
 
const int analogchannel = 0; //Connect current sensor with A0 of Arduino
int sensitivity = 185; // use 100 for 20A Module and 66 for 30A Module
int adcvalue= 0;
int offsetvoltage = 2500; 
double Voltage = 0; //voltage measuring
double ecurrent = 0;// Current measuring
 
void setup() {
 //baud rate
 Serial.begin(9600);//baud rate at which arduino communicates with Laptop/PC
 // set up the LCD's number of columns and rows:
 lcd.begin(20, 4); //LCD order
 // Print a message to the LCD.
 lcd.setCursor(1,1);//Setting cursor on LCD
 lcd.print("MICROCONTROLLERSLAB");//Prints on the LCD
 lcd.setCursor(4,2);
 lcd.print(".com");
 delay(3000);//time delay for 3 sec
 lcd.clear();//clearing the LCD display
 lcd.display();//Turning on the display again
 lcd.setCursor(1,0);//setting LCD cursor
 lcd.print("Reading Values from");//prints on LCD
 lcd.setCursor(1,1);
 lcd.print("DC Current Sensor");
 lcd.setCursor(5,2);
 lcd.print("ACS 712");
 delay(2000);//delay for 2 sec
}
 
void loop() //method to run the source code repeatedly
{
 
 adcvalue = analogRead(analogchannel);//reading the value from the analog pin
 Voltage = (adcvalue / 1024.0) * 5000; // Gets you mV
 ecurrent = ((Voltage - offsetvoltage) / sensitivity);
 
//Prints on the serial port
 Serial.print("Raw Value = " ); // prints on the serial monitor
 Serial.print(adcvalue); //prints the results on the serial monitor
 
 lcd.clear();//clears the display of LCD
 delay(1000);//delay of 1 sec
 lcd.display();
 lcd.setCursor(1,0);
 lcd.print("adc Value = ");
 lcd.setCursor(13,0);
 lcd.print(adcvalue);
 
 Serial.print("\t mV = "); // shows the voltage measured 
 Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
 
 lcd.setCursor(1,1);
 lcd.print("Voltage = ");
 lcd.setCursor(11,1);
 lcd.print(Voltage,3);
 lcd.setCursor(17,1);
 lcd.print("mV");//Unit for the voltages to be measured
 
 Serial.print("\t ecurrent = "); // shows the voltage measured 
 Serial.println(ecurrent,3);// the '3' after voltage allows you to display 3 digits after decimal point
 
 lcd.setCursor(1,2);
 lcd.print("Current = ");
 lcd.setCursor(11,2);
 lcd.print(ecurrent,3);
 lcd.setCursor(16,2);
 lcd.print("A"); //unit for the current to be measured
 delay(2500); //delay of 2.5 sec
}

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.