Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

joystick etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
joystick etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Mayıs 2021 Pazar

Joystick Modülü kullanarak Servo Motor Kontrolü

Joystick Modülü kullanarak Servo Motor Kontrolü


Joystick modülü, kullanımı en kolay modüldür ve projelerinize daha fazla esneklik katar. Bir çok mikrodenetleyici ile kullanılabilir ama biz Arduino kullanıyoruzAnalog Joystickler analog değerleri döndürür. Bunlar temelde potansiyometrelerdir. Bu değerler 0 ile 1023 arasında değişmektedir. Joystick dinlenme konumunda olduğunda analog değer 512 olacaktır. Arduino analog pinleri verileri yatay ve dikey pinlerden okuyacak ve butonu okumak için dijital pin kullanılacaktır. . Joystick modülünün 5 pimi vardır ve bunlar
  • Besleme gerilimi (VCC)
  • Zemin
  • X tuşu (Yatay tuş).
  • Y tuşu (Dikey Tuş)

Joystick aşağıya basılarak etkinleştirilebilen bir "seçmek için basın" basma düğmesi de vardır. Bunlar, modülünüzü nereden satın aldığınıza bağlı olarak farklı olabilir. Kullandığımız joystick analogdur ve basit yönlü joysticklerden daha doğru okumalar sağlar. 





















Joystick modülünün arduino ile bağlantısı

Bağlantı şeması çok kolaydır. Arduino 5 v'yi joystick'in VCC'sine bağlayın. Sonra A0 ve A1'i joystick'in VER ve HOR'una bağlayın. Son olarak, Arduino'nun 2. pinini joystick'in SEL'e ve Arduino'nun GND'sini joystick'in GND'sine bağlayın.joystick modülü arduino ile arayüz oluşturuyor

Arduino Joystick

A0  -------VER

A1 ------- KOR

Pin2 ------- SEL

GND ------- GND

Arduino ile joystick arayüzünün kodu

// Oyun çubuğu modülü kodu

int x_key = A1 ;                                                 // initializing A1 for storing the joystick’s x key value

int y_key = A0 ;                                                 // initializing A0 for storing the joystick’s y key value

int Push_Button= 2 ;                                       // initializing digital pin 2 for joystick’s press to select button

int Horizontal_Position = 0 ;                         // Declaring a variable for storing the value

int y_Position = 0 ;                                           // Declaring a variable for storing the value

int button_State = 0 ;                                     // Declaring a variable for storing the value

void setup ( ) {

  Serial.begin ( 9600 ) ;                                    // initializing serial communications at 9600 bps:

  pinMode ( x_key, INPUT ) ;                       // Selecting Arduino analog A1 pin as input

  pinMode ( y_key, INPUT ) ;                       // Selecting Arduino analog A0 pin as input

  pinMode (Push_Button, INPUT_PULLUP ) ;     // This will activate pull-up resistor on the push-button pin

  // If you have Arduino version previous to Arduino 1.0.1, then use these commands for activating pull-up resistor.

  // pinMode ( button_Pin , INPUT ) ;

  // digitalWrite ( button_Pin , HIGH ) ;

}

void loop ( ) {

Horizontal_Position = analogRead ( x_key ) ;  // Reading the value from A1 and storing in Horizontal_Position

  y_Position = analogRead ( y_key ) ;                       // Reading the value from A0 and storing in y_Position

  button_State = digitalRead ( Push_Button) ;     // Reading the digital pin 2 is high or low

  Serial.print ( " Value of X key is " ) ;                        // Printing “ Value of X key is ” on the disply

  Serial.print ( Horizontal_Position ) ;                        // Printing value of x key on the display

  Serial.print ( " | Value of Y key is " ) ;                     // Printing “ Value of Y key is ” on the screen

  Serial.print ( y_Position ) ;                                   // Printing value of y key on the display

  Serial.print ( " | Button State is " ) ;                        // Printing “ Button state ” on the display

  Serial.println ( button_State ) ;                               // Printing the button is high or low on the display

  delay ( 1000 ) ;                                                 // This will add delay between readings

}

İki servo motorlu Arduino kullanarak joystick tabanlı servo motor kontrolü

















joystick tabanlı servo motor kontrol devre şeması ve gerçek uygulama yukarıda ve aşağıda gösterilmiştir.Şimdi joystick modülü yardımıyla iki servo motoru nasıl kontrol edebileceğimizi göreceğiz. İki adet servo motor kullanıyoruz. Joystick modülünün x ekseni ile bir servo motor kontrol edilebilmekte, diğer servo motor ise joystick modülünün y ekseni ile kontrol edilmektedir. Bu örnekte, bir joystick kullanarak 2 servo motoru kontrol edeceğiz. Bu örnek, oyun denetleyicileri ve elektronik oyuncak arabalar gibi birçok projede kullanılmaktadır.














Joystick ile servo motor kontrolü için gerekli bileşenler

Gerekli bileşenler aşağıdaki gibidir

  • 2 servo
  • Oyun kolu
  • Arduino uno (herhangi birini kullanabilirsiniz)
  • Breadboard

Servo motorun üç bağlantısı vardır.

  • Pozitif
  • Olumsuz
  • Sinyal

Bağlantılar çok daha kolay. Servoları ve kumanda çubuğunu şekilde gösterildiği gibi bağlayın.

Joystick tabanlı servo motor kontrol kodu

Bu kod için önce servo kütüphanesini indirmeniz gerekecek.

// Controlling 2 Servos Using a Joystick.

#include < Servo.h >                       // including the library of servo motor

int First_Signal_Pin = 6 ;                // initializing pin 6 for first servo

int Second_Signal_Pin =  7 ;         // initializing pin 7 for first servo

int Horizontal_Joystick_Pin = A0 ;  // initializing A0 for horizontal movement

int Vertical_Joystick_Pin = A1 ;  // initializing A1 for vertical movement

// initializing the min and max values for horizontal and vertical movement

int Horizontal_Min = 0 ;

int Horizontal_Max = 180 ;

int Vertical_Min = 0 ;

int Vertical_Max = 180 ;

Servo First_Servo ;

Servo Second_Servo ;

// Declaring variables for storing values

int Horizontal_Value ;

int Horizontal_Servo_Value ;

int Vertical_Value ;

int Vertical_Servo_Value ;

void setup ( )

{

  First_Servo.attach ( First_Signal_Pin ) ;                                // Enabling pin 6 for first servo

  Second_Servo.attach ( Second_Signal_Pin ) ;                    // Enabling pin 7 for first servo

}

void loop ( )

{

  Horizontal_Value  = analogRead ( Horizonta_Joystick_Pin ) ;  // Reading the value from A0

  Vertical_Value  = analogRead ( Vertical_Joystick_Pin ) ;    // Reading the value from A1

// Mapping the values for horizontal and vertical movement of joystick.

 Horizontal_Servo_Value  = map ( Horizontal_Value, 0 , 1023, ServoH_Min , ServoH_Max ) ;

  Vertical_Servo_Value  = map ( Vertical_Value, 0, 1023, ServoH_Min , ServoH_Max ) ;

// Moving the servos

  First_Servo.write ( Horizontal_Servo_Value ) ;

  Second_Servo.write ( Vertical_Servo_Value ) ;

  delay ( 2000 ) ;    // Delay of 2 seconds

}

Gördüğünüz gibi arduino ve servo motor kontrol kodu ve devre şeması ile joystick'i Arduino uno R3 kullanarak kullanmak çok kolaydır.


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.

24 Nisan 2021 Cumartesi

2 Eksenli Joystick Nasıl Çalışır ve Arduino + İşleme

 

2 Eksenli Joystick Nasıl Çalışır ve Arduino + İşleme

Donanıma Genel Bakış

Bu, PS2 (PlayStation 2) denetleyicilerindeki 'analog' oyun çubuklarına çok benzeyen bir kumanda koludur. Bu, kendi kendine merkezlenen yaylı bir joysticktir, yani joystick'i bıraktığınızda kendisini ortalayacaktır. Aynı zamanda baş parmak hissi veren rahat bir fincan tipi düğme / başlık içerir.


Joystick'in amacı, hareketi 2 boyutlu (2 eksenli) bir Arduino ile iletmektir. Bu, iki bağımsız 10K potansiyometre (eksen başına bir) barındırarak elde edilir. Bu potansiyometreler, kontrol çubuğu biçiminde 2 Eksenli analog giriş sağlayan çift ayarlanabilir voltaj bölücüler olarak kullanılır.

Potansiyometreler, joystick'in yanlarındaki iki mavi kutudur. Her bir potansiyometrenin merkez şaftını izlerken kumanda kolunu hareket ettirirseniz, potansiyometrelerin her birinin yalnızca bir yönde hareket algıladığını görürsünüz. Aslında nasıl çalıştıklarını biraz sonra tartışacağız.


Bu kumanda kolu ayrıca, kapağı aşağı doğru bastırdığınızda etkinleşen bir anahtar içerir. Anahtar, kumanda çubuğunun arkasındaki küçük siyah kutudur. Başlığı aşağı bastırırsanız, anahtarın başını aşağı doğru iten bir kol görebilirsiniz. Kol, kumanda kolu hangi konumda olursa olsun çalışır.

PS2 2 eksenli başparmak kumanda kolu modülü nasıl çalışır?

Bir joystick'in temel fikri, çubuğun konumunu iki eksende - X ekseni (soldan sağa) ve Y ekseni (yukarı ve aşağı) bir Arduino'nun işleyebileceği elektronik bilgilere çevirmektir. Bu biraz zor olabilir, ancak iki potansiyometre ve bir Gimbal Mekanizmasından oluşan kumanda kolunun tasarımı sayesinde .

Gimbal Mekanizması

2 Eksenli Joystick Çalışan Gimbal Mekanizması










Kumanda kolunu döndürdüğünüzde, başparmak kolu iki dönebilir yarıklı şafta (Gimbal) oturan dar bir çubuğu hareket ettirir. Millerden biri X ekseninde (sol ve sağ) harekete izin verirken, diğeri Y ekseninde (yukarı ve aşağı) harekete izin verir. Çubuğu ileri ve geri eğmek, Y ekseni milini bir yandan diğer yana döndürür. Soldan sağa eğildiğinde, X ekseni şaftını döndürür. Çubuğu çapraz olarak hareket ettirdiğinizde, her iki şaftı da döndürür.

Joystick Modülünde Çalışan Potansiyometre









Her bir kumanda kolu miline, çubuğun konumunu analog okumalar olarak yorumlayan bir potansiyometre bağlanır. Yarıklı millerin hareket ettirilmesi, potansiyometrenin kontak kolunu döndürür. Başka bir deyişle, çubuğu sonuna kadar iterseniz, potansiyometre temas kolunu rayın bir ucuna çevirir ve kendinize doğru geri çekerseniz, temas kolunu diğer yöne çevirir.

Joystick'ten analog değerleri okuma

Joystick'in fiziksel konumunu okumak için, bir potansiyometrenin direncindeki değişikliği ölçmemiz gerekir. Bu değişiklik, ADC kullanılarak bir Arduino analog pini ile okunabilir.

Arduino kartının 10 bitlik ADC çözünürlüğü olduğundan, her analog kanaldaki (eksen) değerler 0 ila 1023 arasında değişebilir. Dolayısıyla, çubuk X ekseni üzerinde bir uçtan diğerine hareket ettirilirse, X değerleri değişecektir. 0'dan 1023'e kadar ve benzer bir şey Y ekseni boyunca hareket ettirildiğinde gerçekleşir. Joystick merkez konumunda kaldığında değer 512 civarındadır.Aşağıdaki grafik, X ve Y yönlerini gösterir ve ayrıca joystick çeşitli yönlere itildiğinde çıkışların nasıl tepki vereceğini gösterir.



Bu başparmak kumanda kolunu kullanmak için, hangi yönün X ve hangi yönün Y olduğunu anlamak isteyeceksiniz. Ayrıca, X veya Y yönünde itildiği yönü de çözmeniz gerekecek.

Başparmak Joystick Modülü PinoutPinout PS2 Joystick Modülü

GND Arduino üzerindeki GND pinini bağladığımız Ground Pin'tir.

VCCmodül için güç sağlar. Arduino'nuzdan 5V çıkışa bağlayabilirsiniz.

VRx joystick'in yatay yönde (X koordinatı), yani joystick'in sola ve sağa ne kadar itildiğini gösterir.

VRy joystick'in dikey yönde (Y koordinatı), yani joystick'in ne kadar yukarı ve aşağı itildiğini gösterir.

SWbutonun çıktısıdır. Normalde açıktır, yani SW pininden gelen dijital okuma YÜKSEK olacaktır. Düğmeye basıldığında, GND'ye bağlanarak DÜŞÜK çıkış verir.



Kablolama - Başparmak Joystick Modülünü Arduino UNO'ya Bağlama

Artık modül hakkında her şeyi bildiğimize göre, onları kullanmaya başlama zamanı!

Bildiğimiz gibi joystick'in X ve Y koordinatlarını belirlemek için her iki analog çıkışı da joystick'ten Arduino'daki analog pinlere bağlamamız gerekiyor. Arduino kartımız için, VRx'i Arduino'nun analog pin A0'a ve VRy'yi Arduino'nun analog pin A1'e bağlarız.

Joystick düğmesine basılıp basılmadığını okumak için, joystick'in SW pinini Arduino'nun dijital pin D8'ine bağlarız.Bunun dışında, joystick'in sadece güce ihtiyacı var. VCC pini Arduino'nun 5V terminaline ve GND pini Arduino'nun GND terminaline bağlanır.PS2 2 eksenli Joystick Modülü ile Arduino Kablolama Fritzing Bağlantıları
Arduino UNO ile PS2 2 eksenli Joystick Modülü Kablolama

Bu kadar. Artık Joystick manipülasyon becerilerinizi göstermeye hazırsınız.

Arduino Kodu

Program çok basit. Ölçümü iki analog girişten ve bir dijital girişten okuyacağız. Ardından sonucu seri monitörde göstereceğiz.

// Arduino pin numbers
const int SW_pin = 8; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(9600);
}

void loop() {
  Serial.print("Switch:  ");
  Serial.print(digitalRead(SW_pin));
  Serial.print(" | ");
  Serial.print("X-axis: ");
  Serial.print(analogRead(X_pin));
  Serial.print(" | ");
  Serial.print("Y-axis: ");
  Serial.print(analogRead(Y_pin));
  Serial.println(" | ");
  delay(200);
}

Her şey yolundaysa, aşağıdaki çıktıyı seri monitörde görmelisiniz.

PS2 Joystick Modülü Seri pencerede Arduino Sketch Çıkışı
Seri Monitör Üzerindeki Kumanda Kolu Modülü Çıkışı
Kod Açıklaması :

Çizim, Joystick modülünün Arduino üzerindeki bağlantılarını başlatarak başlar. SW pini Arduino Pin # 8'e bağlıyken VRx ve VRy pinleri Analog pin # 0 ve # 1'e bağlanır.
// Arduino pin numbers
const int SW_pin = 8; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

In setup()fonksiyonu: Biz girdi olarak GB pimini başlatmak ve YÜKSEK saklayın. Bunun nedeni, SW pimi YÜKSEK olduğu sürece düğmeye basılmadığını biliyoruz. Ayrıca seri iletişimi de başlatıyoruz.

  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(9600);

In loop()fonksiyonu: Biz sadece kullanılarak GB pin değerini okumak digitalRead()fonksiyonu, VRX & VRY kullanarak pimi analogRead()seri monitörde ve ekranı.

  Serial.print("Switch:  ");
  Serial.print(digitalRead(SW_pin));
  Serial.print(" | ");
  Serial.print("X-axis: ");
  Serial.print(analogRead(X_pin));
  Serial.print(" | ");
  Serial.print("Y-axis: ");
  Serial.print(analogRead(Y_pin));
  Serial.println(" | ");
  delay(200);

Arduino Projesi

IDE İşlemede Joystick Hareketlerini Canlandırma

İşleme IDE'de animasyonları kontrol etmek için basit bir 2 Eksenli Joystick modülünün nasıl kullanılabileceğini göstermek için hızlı bir Arduino projesi oluşturalım. Öncelikle Arduino'muzu x ekseni, y ekseni ve düğme durumu değerlerini seri port üzerinde yayınlayacak şekilde programlayacağız. IDE İşleminde seri porttan gelen bu değerleri alacağız. Bu değerler daha sonra oyun çubuğu konumunu canlandırmak için kullanılabilir. Harika! Sağ?

Çıktı böyle görünüyor.

Arduino Projesi - IDE'yi Önceden Hazırlarken Animasyon Joystick'i
Precessing IDE'de joystick hareket animasyonu
Elbette bu proje karakterleri canlandırmak, gözetleme projeleri yapmak veya insansız araçları kontrol etmek için genişletilebilir.

Arduino Kodu

Başlangıç ​​olarak, Arduino'muzu seri port üzerinde x ekseni, y ekseni ve düğme durumu değerlerini kullanacak şekilde programlamamız gerekir. Program, seri monitörde yazdırdığımız değerler virgülle ayrılmış olması dışında yukarıdakiyle tamamen aynıdır Neden virgülle ayrılmış? Çünkü bu, bir uygulamadan diğerine veri aktarımı için popüler bir formattır. IDE işlenirken, gelen değerleri 'virgül' karakterine bölebilir ve verilerimizi geri alabiliriz.

Aşağıdaki çizimi Arduino'nuza yükleyin.

int xValue = 0 ; // read value of the X axis	
int yValue = 0 ; // read value of the Y axis	
int bValue = 0 ; // value of the button reading	

void setup()	
{	
	Serial.begin(9600) ; // Open the serial port
	pinMode(8,INPUT) ; // Configure Pin 2 as input
	digitalWrite(8,HIGH);	
}	

void loop()	
{	
	// Read analog port values A0 and A1	
	xValue = analogRead(A0);	
	yValue = analogRead(A1);	

	// Read the logic value on pin 2	
	bValue = digitalRead(8);	

	// We display our data separated by a comma	
	Serial.print(xValue,DEC);
	Serial.print(",");
	Serial.print(yValue,DEC);
	Serial.print(",");
	Serial.print(!bValue);

	// We end with a newline character to facilitate subsequent analysis	
	Serial.print("\n");

	// Small delay before the next measurement	
	delay(10);	
}

Kodu

Program Arduino'ya yüklendikten sonra, İşleme IDE'de Joystick konumunu canlandırmaya başlayabiliriz. Arduino'nuzu takılı tutun ve İşleme kodunu takip ederek çalıştırın.

import processing.serial.*; //import the Serial library
Serial myPort;

int x; // variable holding the value from A0
int y; // variable holding the value from A1
int b; // variable holding the value from digital pin 2
PFont f; // define the font variable
String portName;
String val;

void setup()
{
  size ( 512 , 512 ) ; // window size
  
  // we are opening the port
   myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n'); 
  
  // choose the font and size
  f = createFont("Arial", 16, true); // Arial, 16px, anti-aliasing
  textFont ( f, 16 ) ; // size 16px
}

// drawing loop
void draw()
{
  fill(0) ; // set the fill color to black
  clear() ; // clean the screen
  
  fill(255) ; // set the fill color to white
  
  if (b == 1) // check if the button is pressed
  {
    // draw a larger circle with specified coordinates
    ellipse(x/2,y/2, 50, 50);
  } 
  else
  {
    // we draw a circle with a certain coordinates
    ellipse(x/2,y/2, 25, 25);
  }
  
  // we display data
  text("AnalogX="+(1023-x)+" AnalogY="+(1023-y),10,20);
}


// data support from the serial port
void serialEvent( Serial myPort) 
{
  // read the data until the newline n appears
  val = myPort.readStringUntil('\n');
  
  if (val != null)
  {
        val = trim(val);
        
    // break up the decimal and new line reading
    int[] vals = int(splitTokens(val, ","));
    
    // we assign to variables
    x = vals[0];
    y = vals[1] ;
    b = vals[2];

  }
}

Kod Açıklaması:

Hızlı bir arıza yapalım. Öncelikle seri porttan gelen değerleri okumak için seri kütüphaneyi içe aktarmamız gerekiyor.

import processing.serial.*; //import the Serial library
Serial myPort;

Daha sonra, x ekseni, y ekseni ve düğme durumu değerlerini tutan değişkenler bildirilir.

int x; // variable holding the value from A0
int y; // variable holding the value from A1
int b; // variable holding the value from digital pin 2
PFont f; // define the font variable
String portName;
String val;

Kurulum işlevinde, animasyonumuzu göstermek için 512 × 512 boyutunda bir pencere oluşturmamız gerekir. Daha sonra, parametreyi geçerek kullanılabilir bir seri port açıyoruz Serial.list()[0]Bu sizin için işe yaramazsa, Arduino'nun bağlı olduğu bağlantı noktasına değiştirin. Değerlerimizi pencerede animasyonla birlikte göstermek için bir yazı tipi oluşturmamız gerekiyor.

  size ( 512 , 512 ) ; // window size
  
  // we are opening the port
   myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n'); 
  
  // choose the font and size
  f = createFont("Arial", 16, true); // Arial, 16px, anti-aliasing
  textFont ( f, 16 ) ; // size 16px

Çizim fonksiyonunda önce pencerenin arka planı siyah renkle doldurulur. Ardından, joystick'in konumunu temsil eden küçük bir daire çizmek için beyaz bir renk seçiyoruz. Şimdi, düğme durumuna bağlı olarak if ifadesini kullanarak küçük veya büyük bir daire çizeriz.

fill(0) ; // set the fill color to black
  clear() ; // clean the screen
  
  fill(255) ; // set the fill color to white
  
  if (b == 1) // check if the button is pressed
  {
    // draw a larger circle with specified coordinates
    ellipse(x/2,y/2, 50, 50);
  } 
  else
  {
    // we draw a circle with a certain coordinates
    ellipse(x/2,y/2, 25, 25);
  }

Ardından, pencerenin sol üst köşesine x ekseni ve y ekseni değerlerini yazdırıyoruz.

  // we display data
  text("AnalogX="+(1023-x)+" AnalogY="+(1023-y),10,20);

Yeni serialEvent(Serial myPort)satır karakteri görünene kadar diziyi seri bağlantı noktasında okuyan özel bir işlevdir. Dize daha sonra 'virgül' karakteriyle bölünür ve ilgili değişkenlere atanır.

void serialEvent( Serial myPort) 
{
  // read the data until the newline n appears
  val = myPort.readStringUntil('\n');
  
  if (val != null)
  {
        val = trim(val);
        
    // break up the decimal and new line reading
    int[] vals = int(splitTokens(val, ","));
    
    // we assign to variables
    x = vals[0];
    y = vals[1] ;
    b = vals[2];

  }
}

Analog Oyun Çubukları ile ilgili sorun

Analog joystick sistemiyle ilgili birkaç küçük ama önemli sorun var.

  • Her şeyden önce, sistem gerçek bir analogdan dijitale dönüştürücüye sahip olmadığından, kaba analogdan dijitale dönüştürme süreci çok doğru değildir. Bu, joystick'in hassasiyetini bir şekilde tehlikeye atar.
  • İkincisi, mikro denetleyici, çubuğun konumunu belirlemek için joystick sistemini düzenli olarak "sorgulamak" için çok fazla işlem gücü ayırmalıdır. Bu, diğer işlemlerden çok fazla güç alır.

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.