Komut
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
#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
#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ış birbyte
veyaint
. 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.