Купил на али сыну подарок, нужно найти скеч

ejik_off
Offline
Зарегистрирован: 24.02.2018

Всех приветствую! Для  ребенка заказал на али гусеничную платформу с ардуинкой. На странице есть ссылка на гитхаб, но там я не нашел для своей модели ни скеч схему подключения. Сам я в этом новичок, по этому прошу помощи. Помогите найти базовый скеч, что бы работала элементарно вперед, назад, в лево\право. Дальше уже буду разбираться, и докупать модули и тд. Самому очень интересна эта тема и хочу сына втянуть в это дело, пока проявляет интерес.  

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ejik_off пишет:

Всех приветствую! Для  ребенка заказал на али гусеничную платформу с ардуинкой. На странице есть ссылка на гитхаб, но там я не нашел для своей модели ни скеч схему подключения. Сам я в этом новичок, по этому прошу помощи. Помогите найти базовый скеч, что бы работала элементарно вперед, назад, в лево\право. Дальше уже буду разбираться, и докупать модули и тд. Самому очень интересна эта тема и хочу сына втянуть в это дело, пока проявляет интерес.  

 

Да, чой-то у них на вики нет ничего про IR. Имхо, лучшим вариантом будет написать на

И разобраться - цена таки не детская.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Да нет там ничего. Только под вайфай версии вижу. А тут IR-only, как я понимаю. Придется что-то в остальном интернете поискать... что-то типа "управление l293 через ИК" (судя по виду у вас именно этот драйвер моторов).

ejik_off
Offline
Зарегистрирован: 24.02.2018

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

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

sadman41 пишет:

Д Придется что-то в остальном интернете поискать...

К сожалению, беглое гугление не дало результатов по этому девайсу :( Написать код, конечно, не проблема, да и схему можно срисовать с платы (насколько я понял - там просто шилд для Uno) - но это - тоже время.

Поэтом советую всё же написать на почту производителю, параллельно начав срисовывать разводку шилда. Ну а потом, с готовой разводкой - сюда, и можно будет подыскать то-то похожее из готового, там не бином Ньютона, но надо, как минимум, знать, по каким выводам рулить моторами.

sadman41
Offline
Зарегистрирован: 19.10.2016

Шилд этот:  https://ru.aliexpress.com/item/-/32677358192.html

Но, судя по картинкам, на нем одновременно разведен и L293D и что-то типа PCA9685. IR, похоже, воткнут в пины для PCA9685, который умеет только на выход работать.  Вобщем, я тоже склоняюсь к переписке с продавцом, так как пока для меня схема подключения крайне неочевидна.

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ещё мысль, раз шилд с разъёмом для Wi-Fi: выкинуть IR, купить ESP, и прошить прошивкой от производителя, там на гитхабе есть под это дело, плюс софт под андроид. Кмк, это может быть оптимальным вариантом решения проблемы.

А IR с пультом оставить на потом, на предмет поиграться с каким-нибдь другим проектом, коих масса интересных, чтобы чадо заинтересовать. Например, сделать чего-нибудь со светодиодной лентой - гирлянду на ёлку, до НГ не так много ремени осталось ;) Мама будет довольна, думаю.

gfx125
Offline
Зарегистрирован: 27.05.2017

sadman41 пишет:

Шилд этот:  https://ru.aliexpress.com/item/-/32677358192.html

Но, судя по картинкам, на нем одновременно разведен и L293D и что-то типа PCA9685. IR, похоже, воткнут в пины для PCA9685, который умеет только на выход работать.  Вобщем, я тоже склоняюсь к переписке с продавцом, так как пока для меня схема подключения крайне неочевидна.

 

вот его "даташит" https://github.com/SmartArduino/ESPboard/blob/master/DataSheetforMotorSe...

ps ТС, танк уже приехал или еще в пути? может он уже с залитым скетчем?

 

 

ejik_off
Offline
Зарегистрирован: 24.02.2018

sadman41 пишет:

Шилд этот:  https://ru.aliexpress.com/item/-/32677358192.html

Но, судя по картинкам, на нем одновременно разведен и L293D и что-то типа PCA9685. IR, похоже, воткнут в пины для PCA9685, который умеет только на выход работать.  Вобщем, я тоже склоняюсь к переписке с продавцом, так как пока для меня схема подключения крайне неочевидна.

 

Да это он. Написал посмотрим как скоро ответит.

DIYMan пишет:

Ещё мысль, раз шилд с разъёмом для Wi-Fi: выкинуть IR, купить ESP, и прошить прошивкой от производителя, там на гитхабе есть под это дело, плюс софт под андроид. Кмк, это может быть оптимальным вариантом решения проблемы.

А IR с пультом оставить на потом, на предмет поиграться с каким-нибдь другим проектом, коих масса интересных, чтобы чадо заинтересовать. Например, сделать чего-нибудь со светодиодной лентой - гирлянду на ёлку, до НГ не так много ремени осталось ;) Мама будет довольна, думаю.

Это еще один месяц ждать:(

Посмрипи что ответят.

gfx125 пишет:

ps ТС, танк уже приехал или еще в пути? может он уже с залитым скетчем?

Пришол, но как посмотреть залит там скеч или нет?

Гриша
Offline
Зарегистрирован: 27.04.2014

ejik_off пишет:

Пришол, но как посмотреть залит там скеч или нет?

включить и "потыкать кнопки" :))))))) если чего-то залито, оно поедет :))))))))

ejik_off
Offline
Зарегистрирован: 24.02.2018

Гриша пишет:

включить и "потыкать кнопки" :))))))) если чего-то залито, оно поедет :))))))))

для этого нужно знать какие в коде пины используются, я уже писал что инструкцию по подулючению я не нашел. 

ejik_off
Offline
Зарегистрирован: 24.02.2018

Кто ни будь может сказать что это за мотор шилд? в инете не нашел ничего по данной модели. Как я понял подключать моторы нужно к клемам А+/- и В+/-. Так же вопрос по моторам, что за моторы используются, как найти название, у них разем на 6 пинов а задействованы 2? 

gfx125
Offline
Зарегистрирован: 27.05.2017

ejik_off пишет:

Кто ни будь может сказать что это за мотор шилд?

тремя постами выше http://arduino.ru/forum/obshchii/kupil-na-ali-synu-podarok-nuzhno-naiti-skech#comment-392793

Цитата:

Так же вопрос по моторам

https://github.com/SmartArduino/SZDOITWiKi/wiki/9V-motor-with-Hall-sensor

https://github.com/SmartArduino/ESPboard/blob/master/miniT100Instruction.pdf

https://github.com/SmartArduino/ESPboard/blob/master/T-Series%20Tank%20Assembly.pdf

 

 

 

 

ejik_off
Offline
Зарегистрирован: 24.02.2018

Написал китайцу, но он второй раз скидывает версию для WIFI.

//材料:UNO开发板*1+2路电机&16路舵机驱动板*1+DT-06 WiFi模块*1
//WiFi控制
/****************************IO引脚定义*****************************/
//电机引脚
#define PWMA 11 //左电机转速
#define DIRA 12 //左电机转向
#define DIRB 7 //右电机转向
#define PWMB 6 //右电机转速
//定义小车速度
uint8_t speedd=255;//小车正常速度
uint8_t speeddAG=250;//
//定义串口接收相关
#define MAX_PACKETSIZE 32  //串口接收缓冲区
char buffUART[MAX_PACKETSIZE];
unsigned int buffUARTIndex = 0;
unsigned long preUARTTick = 0;
//小车控制标志量
enum DS
{
  MANUAL_DRIVE,//手动控制
}Drive_Status=MANUAL_DRIVE;
//电机控制标志量
enum DN
{ 
  GO_ADVANCE, 
  GO_LEFT, 
  GO_RIGHT,
  GO_BACK,
  STOP_STOP,
  DEF
}Drive_Num=DEF;
//电机控制相关
bool flag1=false;
bool stopFlag = true;
bool JogFlag = false;
uint16_t JogTimeCnt = 0;
uint32_t JogTime=0;

uint8_t serial_update_flag =0;

//电机控制
void Car_GO_FORWARD(uint8_t spel, uint8_t sper, int tim=0)//小车前进
{
  uint8_t speeddl=spel;
  uint8_t speeddr=sper;
  digitalWrite(DIRA,HIGH);
  analogWrite(PWMA,speeddl);
  digitalWrite(DIRB,HIGH);
  analogWrite(PWMB,speeddr);
  delay(tim);
}
void Car_GO_LEFT(uint8_t spel,uint8_t sper, int tim=0)//车体左转    
{
  uint8_t speeddl=spel;
  uint8_t speeddr=sper;
  digitalWrite(DIRA,LOW);
  analogWrite(PWMA,speeddl);
  digitalWrite(DIRB,HIGH);
  analogWrite(PWMB,speeddr);
  delay(tim);
}  
void Car_GO_RIGHT(uint8_t spel,uint8_t sper, int tim=0)//车体右转
{
  uint8_t speeddl=spel;
  uint8_t speeddr=sper;
  digitalWrite(DIRA,HIGH);
  analogWrite(PWMA,speeddl);
  digitalWrite(DIRB,LOW);
  analogWrite(PWMB,speeddr);
  delay(tim);
}
void Car_GO_STOP(uint8_t spel,uint8_t sper, int tim=0)//车体停止
{
  uint8_t speeddl=spel;
  uint8_t speeddr=sper;
  digitalWrite(DIRA,LOW);
  analogWrite(PWMA,speeddl);
  digitalWrite(DIRB,LOW);
  analogWrite(PWMB,speeddr);
  delay(tim);
}
void Car_GO_BACK(uint8_t spel,uint8_t sper, int tim=0)//车体后退
{ 
  uint8_t speeddl=spel;
  uint8_t speeddr=sper;
  digitalWrite(DIRA,LOW);
  analogWrite(PWMA,speeddl);
  digitalWrite(DIRB,LOW);
  analogWrite(PWMB,speeddr);
  delay(tim);
}
//串口接收处理
void UART_Control()
{
  char Uart_Date=0;
  if(Serial.available()) 
  {
    size_t len = Serial.available();
    uint8_t sbuf[len + 1];
    sbuf[len] = 0x00;
    Serial.readBytes(sbuf, len);
    //parseUartPackage((char*)sbuf);
    memcpy(buffUART + buffUARTIndex, sbuf, len);//确保串口能读完整一帧数据
    buffUARTIndex += len;
    preUARTTick = millis();
    if(buffUARTIndex >= MAX_PACKETSIZE - 1) 
    {
      buffUARTIndex = MAX_PACKETSIZE - 2;
      preUARTTick = preUARTTick - 200;
    }
  }
  if(buffUARTIndex > 0 && (millis() - preUARTTick >= 100))//在APP发送标志量修改避障参数
  { //data ready
    buffUART[buffUARTIndex] = 0x00;
    if((buffUART[0]=='C') && (buffUART[1]=='M') && (buffUART[2]=='D')) //输入CMD+参数:修改循迹小车的速度
      {
        int arr = 0;
        Serial.println(buffUART);
        sscanf(buffUART,"CMD%d",&arr);
        if(arr >= 150 && arr <= 250)//限定修改的参数有效范围
        {
          speeddAG=arr;
          Serial.println(F("You have modified the Car_speeddAG!"));//提示已经修改循迹速度
          Serial.println(String("CMD:speeddAG=")+speeddAG);  
        }
        else 
        {
          Serial.println(F("Your input is incorrect and the change is invalid!"));//提示输入错误且修改无效
          Serial.println(F("Please re-enter the correct parameters!"));//提示请重新输入正确的参数 
        }
      }
      else Uart_Date=buffUART[0];
      buffUARTIndex = 0;
    }
    switch (Uart_Date)    //串口控制指令
    {
    case '2':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_ADVANCE;if(serial_update_flag!=1) {serial_update_flag=1;Serial.println(F("CAR GO_ADVANCE!"));} break;
    case '4':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_LEFT; if(serial_update_flag!=2) {serial_update_flag=2;Serial.println(F("CAR GO_LEFT!"));}break;
    case '6':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_RIGHT; if(serial_update_flag!=3) {serial_update_flag=3;Serial.println(F("CAR GO_RIGHT!"));}break;
    case '8':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_BACK; if(serial_update_flag!=4) {serial_update_flag=4;Serial.println(F("CAR GO_BACK!"));}break;
    case '5':Drive_Status=MANUAL_DRIVE; Drive_Num=STOP_STOP;if(serial_update_flag!=5) {serial_update_flag=5;Serial.println(F("car STOP!"));}break;
    default:break;
  }
}
//小车控制
void CAR_Control()
{
  if(Drive_Status == MANUAL_DRIVE)
  {
    switch (Drive_Num) 
    {
      case GO_ADVANCE:Car_GO_FORWARD(speedd,speedd);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;
      case GO_LEFT: Car_GO_LEFT(speedd,speedd);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;
      case GO_RIGHT:Car_GO_RIGHT(speedd,speedd);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;
      case GO_BACK:Car_GO_BACK(speedd,speedd);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;
      case STOP_STOP: Car_GO_STOP(0,0); JogTime = 0;JogFlag=false;stopFlag=true;break;
      default:break;
    }
    Drive_Num=DEF;
    //小车保持姿态300ms
    if(millis()-JogTime>=300)
    {
      JogTime=millis();
      if(JogFlag == true) 
      {
        stopFlag = false;
        if(JogTimeCnt <= 0) 
        {
          JogFlag = false; stopFlag = true;
        }
        JogTimeCnt--;
      }
      if(stopFlag == true) 
      {
        JogTimeCnt=0;
        Car_GO_STOP(0,0);
      }
    }
  }
}
//IO初始化
void GPIO_init()
{
  //电机
  pinMode(PWMA, OUTPUT);
  pinMode(DIRA, OUTPUT);
  pinMode(PWMB, OUTPUT);
  pinMode(DIRB, OUTPUT);
}
/**********************************************************************************************/
void setup()
{
  Serial.begin(9600); 
  GPIO_init();
  Car_GO_STOP(0,0);
}
void loop()
{
  UART_Control();//串口接收
  CAR_Control();//小车控制
}
/***********************************************************************************************/

Ee сложно переделать для ИК?

sadman41
Offline
Зарегистрирован: 19.10.2016

Схему-то он скидывает?

bwn
Offline
Зарегистрирован: 25.08.2014

Функцию UART_Control() перелопатить на IR. Только вряд ли вы осилите так с наскоку.((((( 

ejik_off
Offline
Зарегистрирован: 24.02.2018

Попросил, но либо он меня не понял, либо ее нет, спрошу еще раз

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ejik_off пишет:

Попросил, но либо он меня не понял, либо ее нет, спрошу еще раз

Они сразу начинают понимать ВСЁ, как только произносишь волшебное слово "REFUND" (именно так, прописными) ;)

ejik_off
Offline
Зарегистрирован: 24.02.2018

Хорошо, попробую)