Возникла интересная задача - подключить к контроллеру ROBO TX несколько обычных рулевых машинок так, чтобы ими можно было управлять из программы, созданной в ROBO Pro. Опишу решение, которое у меня получилось.
У контроллера ROBO TX нет штатных средств для управления rc-сервомашинками. Поэтому для решения задачи нам понадобится некое промежуточное устройство, которое будет принимать команды от ROBO TX и выдавать на рулевые машинки нужные сигналы управления. У меня на столе лежала не пристроенная Arduino UNO, поэтому я долго не раздумывал над выбором железки для этой задачи.
Подключение
Arduino в моем решении подключается к ROBO TX через интерфейс I2C, доступный через разъем EXT2. Назначение контактов разъема EXT2 показано на рисунке ниже:
На плате Arduino UNO интерфейс I2C выведен на следующие пины: A4 (SDA), A5 (SCL).
Четыре стандартные рулевые машинки я подключил к выходам Arduino D6, D9, D10 и D11.
Программа
Скетч для Arduino, который принимает команды через I2C и выдает управляющие сигналы на рулевые машинки, написан с использованием двух библиотек - Wire и Servo. Он настолько простой, что все понятно из исходного кода:
Код: Выделить всё
//
// Created: 2012-12-05
// Author: Mr. Kubikus
//
#include <Wire.h>
#include <Servo.h> 
Servo myservo[4];
int pos[4];    // variable to store the servo position 
void setup()
{
  myservo[0].attach(6);   // Servo connected to D6
  myservo[1].attach(9);   // D9
  myservo[2].attach(10);  // D10
  myservo[3].attach(11);  // D11 
  delay(1000);
  Wire.begin(4);                // join i2c bus with address #4
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600);           // start serial for output
}
void loop()
{
  for(int ii = 0; ii < 4; ii++) {
    myservo[ii].write(pos[ii]);
  }
  delay(100);
}
void receiveEvent(int howMany)
{
  int ii = 0;
  while(Wire.available() > 0)
  {
    pos[ii] = Wire.read();
    Serial.print(pos[ii]);
    Serial.print(" ");
    ii+=1;
  }
  Serial.println(";");
}
Свойства программных элементов I2C Write №1-3:
Свойства программного элемента I2C Write №4:
Ссылки
Библиотека Wire
Библиотека Servo
Демонстрационная версия среды fischertechnik ROBO Pro