Монстр шилд

Автор Deny, 22:05:34

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Deny

в архиве скетча нашел разводку под ардуино моторшилд. а пока пины 



// PINS                       ARDUINO PIN      ARDUINO   DIRECTION                                             ATMEGA PORT PIN       OTHER
// -------------------------------------------------------------------------------------------------------------------------------------------------->
    // RESERVED                          0            // D0    Input     - This is the serial RX pin                      PD0
    // RESERVED                           1            // D1    Output    - This is the serial TX pin                      PD1
    const byte RC2 =                     2;           // D2    Input     - RC input for motor 2                           PD2              INT0
    const byte RC1 =                    3;           // D3    Input     - RC input for motor 1                           PD3              INT1 / Timer 2 / PWM OC2B
    const byte M2_DirA =              4;           // D4    Output    - Motor 2 direction A                            PD4
    const byte M1_DirA =              5;           // D5    Output    - Motor 1 direction A                            PD5              Timer 0 / PWM OC0B
    const byte AddressSwitch =     6;           // D6    Input     - Address selection switch                       PD6              Timer 0 / PWM OC0A
    const byte M1_DirB =              7;           // D7    Output    - Motor 1 direction B                            PD7
    const byte M1_DIAG =            8;           // D8    Input     - Motor 1 status                                 PB0
    const byte M2_PWM =             9;           // D9    Output    - Motor 2 PWM (Left/Turret Rotation)             PB1              Timer 1 / PWM OC1A
    const byte M1_PWM =           10;           // D10   Output    - Motor 1 PWM (Right/Barrel Elevation)           PB2              Timer 1 / PWM OC1B
    const byte Fan_PWM =          11;           // D11   Output    - Fan motor PWM                                  PB3              Timer 2 / PWM OC2A / MOSI
    const byte EmergencyStop = 12;           // D12   Input     - Emergency stop                                 PB4              MISO
    const byte RedLED =            13;           // D13   Output    - Red LED - used to indicate errors              PB5              SCK
    const byte M1_CS =             14;           // A0    Input     - Motor 1 current sense                          PC0              ADC0
    const byte TempSense =        15;           // A1    Input     - Thermistor                                     PC1              ADC1
    const byte M2_DirB =          16;           // A2    Output    - Motor 2 direction B                            PC2              ADC2
    const byte BlueLED =          17;           // A3    Output    - Blue LED - used to indicate status             PC3              ADC3
    const byte M2_CS =            18;           // A4    Input     - Motor 2 current sense                          PC4              ADC4
    const byte M2_DIAG =          19;           // A5    Input     - Motor 2 status                                 PC5              ADC5
    const byte VSense =           A6;           // A6    Input     - Battery voltage reading through divider        N/A              ADC6
    // ADC6 and ADC7 are not broken out in the DIP version of the 328 chip and are therefore not referenced by the original Arduino Duemilanove board.
    // They are however broken out on the TQFP chip and if we set our board type to Nano we can reference the names A6 and A7 in Arduino code.
​Не говорите, если это не изменит тишину к лучшему.

Deny

Попробовал развести, как указано в скетче, результата не получил ((((
 Интересно, что в схеме разводки и в скетче указаны разные пины))))
​Не говорите, если это не изменит тишину к лучшему.

Deny

​Не говорите, если это не изменит тишину к лучшему.

Deny

Ну, что, дорогие друзья. Мне удалось запустить монстр-шилд с ардуиной 328 с программным обеспечением от OpenPanzer, точнее Scout-ESC-master. Все отлично работает, сейчас недостаток в куче проводов. Не запускался у меня этот монст-шилд по одной причине.  У Люка в программе заложен фактор  контроля питания  const byte VSense = A6; // A6 Input - Battery voltage reading through divider N/A ADC6. Так вот пока я от батареи не кинул провод на ардуину, у меня ничего не запускалось!
Теперь осталось дождаться плату TCB и посмотреть будет ли это все вместе работать))))
​Не говорите, если это не изменит тишину к лучшему.

Deny

Доброго времени суток!  Подключил к ардуино меге приемник флайскай  а так же регуляторы скорости HobbyKing XCar 45A, библиотека для IBUS https://github.com/aanon4/FlySkyIBus. Получил стабильное управление моторами. Есть одна особенность, для того что бы изменить направления движения следует увести  стик в крайнее противоположное положение, а потом в ноль и начать движение в другую сторону.
Управление пока диагональное, но это решается программным путем.

программа



#include "FlySkyIBus.h"
#include <Servo.h>//Using servo library to control ESC
Servo esc; //Creating a servo class with name as esc
Servo esc1;


void setup()
{
  Serial.begin(115200);
  IBus.begin(Serial1);
  esc.attach(8); //Specify the esc signal pin,Here as D8
  esc.writeMicroseconds(1000); //initialize the signal to 1000
  esc1.attach(7);
  esc1.writeMicroseconds(1000); //initialize the signal to 1000
}


void loop()
{
  IBus.loop();
  Serial.print(IBus.readChannel(0));
  Serial.print(" - ");
  Serial.print(IBus.readChannel(1));
  Serial.print(" - ");
  Serial.print(IBus.readChannel(2));
  Serial.print(" - ");
  Serial.print(IBus.readChannel(3));
  Serial.print(" - ");
  Serial.println(IBus.readChannel(4));


  int val; //Creating a variable val
  int val1; //Creating a variable val1
  val = IBus.readChannel(1); //Read input from IBus.readChannel(1)and store in val
  val1 = IBus.readChannel(0); //Read input from IBus.readChannel(0)and store in val1
  // val = map(val, 0, 1023, 1200, 1900); //mapping val to minimum and maximum(Change if needed)
  esc.writeMicroseconds(val); //using val as the signal to esc
  esc1.writeMicroseconds(val1); //using val as the signal to esc
}
​Не говорите, если это не изменит тишину к лучшему.

Deny

Сергей, вопрос! У меня никак не получается развернуть программно каналы, чтобы получилось стандартное управление. Стик вверч - движение обоих редукторов вперед, стик вниз - движение обоих редукторов назад, ну и соответственно диагонали - повороты. Сейчас у меня диагонали это движение вперед и назад,  а стик вверх и вниз повороты.
​Не говорите, если это не изменит тишину к лучшему.

Sergevk

Нужно где-нибудь поменять полярность одного двигателя

Deny

Сергей, полярность автоматом меняется в регуляторах скорости.  Ардуино только передает точные данные.
у меня получилось развернуть одну диагональ


ch1= IBus.readChannel(0) ;
ch2 = IBus.readChannel(1);

int CH1;
CH1 = (ch1*0.707 + ch2 *0.707) *0.707;
[COLOR=#333333]esc.writeMicroseconds(CH1);
[/COLOR]esc1.writeMicroseconds(CH1);



См. Скетч выше.

а сейчас пришла мысль в голову, надо проверить, что надо все сминусовать и поделить

int CH2;
CH2 = (ch2/0.707 - ch1*0.707)*0.707;
esc.writeMicroseconds(CH2);
esc1.writeMicroseconds(CH2);
​Не говорите, если это не изменит тишину к лучшему.

Deny

Нет, с минусом вариант не прошел
​Не говорите, если это не изменит тишину к лучшему.

Deny

"TCB на самом деле способен наносить более тонкие или даже случайный и непредсказуемые повреждения, хотя эта функция все еще находится в разработке. На вкладке «Battle» в программе OP Config вы можете выбрать, какой «Вариант повреждений» вы будете использовать. «Tamiya Spec» будет следовать формуле Tamiya для постепенного снижения скорости, а вариант «Experimental» позволит разработчикам создавать различные эффекты повреждений. Однако большинство клубов, вероятно, захотят использовать спецификацию Tamiya для совместимости с другими моделями Tamiya".
Сергей, смотри, оказывается Люк заложил возможность использования более тонких повреждений, это к вопросу о возможности отключения во время боя гусениц, башни выстрела и так далее
​Не говорите, если это не изменит тишину к лучшему.