this document



Yeni Bir Mod Tanımlayın

  • İşletim sisteminizde Arduino skeçler klasörüne gidin.
  • Seçtiğiniz metin düzenleyicisinde "kütüphaneler / Robot_Control / ArduinoRobot .h" ve "kütüphaneler / Robot_Motor / ArduinoRobotMotorBoard .h" yi açın.
  • Her dosyada, mod tanımlarının bulunduğu bölümü bulun. Şöyle görünüyor:

// motor kartı modları
#define MODE_SIMPLE 0
#define MODE_LINE_FOLLOW 1
#define MODE_ADJUST_MOTOR 2
#define MODE_IR_CONTROL 3

  • her iki dosyaya da bunlardan sonra yeni bir mod ekleyin, "#define MODE_MY_MODE_NAME num". num diğer modlardan farklı bir sayı olmalıdır.
  • ArduinoRobotMotorBoard .h ve ArduinoRobot .h dosyalarını kaydedip kapatın
  • "Kütüphaneler / Robot_Motor / ArduinoRobotMotorBoard .cpp" dosyasını açın
  • "Process ()" tanımını bulun. Modun adına karşılık gelen yeni bir koşul ekleyin. Buradaki kod loop() biçiminde yürütülecektir, bu yüzden mantığınızı çiziminizdeki gibi yazın.
  • Kaydedin ve kapatın ArduinoRobotMotorBoard .cpp
  • Robot Kontrol Panosu için çizimlerinizde artık yeni moda geçmek için "setMode (MODE_MY_MODE_NAME)" kullanabilirsiniz

Komutları

İki farklı komut türü vardır:

  • siparişler (1 yönlü iletişim): motorsWrite () 'a benzer şekilde, Kontrol kartı Motor Kartının aldığı ve gerçekleştirdiği bir komut gönderir. Komut panosuna hiçbir şey geri gönderilmez.

  • sorgular (2 yönlü iletişim): updateIR () ile olduğu gibi, kontrol kartı motor kartına bir mesaj gönderir ve bu da verileri kontrole döndürür.

Yeni bir komut oluşturmak için komut kodunu tanımlamanız ve bunun için gönderme / alma kodunu yazmanız gerekir.

Yeni Bir Komut Tanımlama

  • İşletim sisteminizde Arduino skeçler klasörüne gidin.
  • "Kütüphaneler / Robot_Control / ArduinoRobot .h" ve "kütüphaneler / Robot_Motor / ArduinoRobotMotorBoard .h" dosyasını açın
  • İstediğiniz metin düzenleyicide "kütüphaneler / Robot_Control / ArduinoRobot .h" ve "kütüphaneler / Robot_Motor / ArduinoRobotMotorBoard .h" yi açın.
  • Her dosyada, komut tanımlarının bulunduğu bölümü bulun. Şöyle görünüyor:

// Komut kodu
#define COMMAND_SWITCH_MODE 0
#define COMMAND_RUN 10
#define COMMAND_MOTORS_STOP 11
..........
#define COMMAND_READ_TRIM_RE 81
#define COMMAND_PAUSE_MODE 90
#define COMMAND_LINE_FOLLOW_CONFIG 100

  • her iki dosyaya da bunlardan sonra yeni bir komut ekleyin: "#define COMMAND_MY_COMMAND_NAME num". num , diğer komutlardan farklı bir sayı olmalıdır.
  • Komutunuz 2 yönlü bir sorgu ise, burada başka bir komut kodu tanımlayın: "# define COMMAND_MY_COMMAND_NAME_RE num1", geri dönen komut için kullanılacak. "Num1" ifadesinin yukarıdaki "num" ifadesinden farklı bir sayı olduğunu unutmayın.
  • Komutunuzun yapısını planlayın. int depolanmış bir byte veya int . Bir komut gönderirken / alırken, karşılık gelen verilerin yazılması / okunması aynı sırada olmalıdır. Örnekler için "Mesaj yapısı şöyle olacaktır:" ile başlayan yoruma bakın.
  • Komutu göndermek için RobotControl kütüphanesinde bir işlev oluşturmanız gerekir. Nasıl mesaj gönderileceğine ilişkin bir örnek için motors.cpp dosyasındaki "motorsWrite ()" işlevine veya sensor.cpp dosyasındaki "updateIR ()" işlevine bakın.
  • Komutu tanımlamak için ArduinoRobotMotorBoard .cpp'de "parseCommand ()" işlevini bulun . Daha önce tanımladığınız komutla aynı ada sahip vaka yan tümcesine yeni bir koşul ekleyin. Örnek olarak diğer koşullara bakınız.
  • Komutunuz bir emirse, mantığı yürütmek için işlevi yazın ve hazırsınız. Bir sorgu ise, komutu yürüten işlevi ve istenen bilgileri döndürmek için bir işlevi yazmanız gerekir. Örnek için ArduinoRobotMotorBoard .cpp içindeki "_digitalRead ()" konusuna bakın.