Танк управляемый джойстиком PS-2

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Платки красивые в 3d.Я так понимаю в дип трасе нарисованы?Пора мастер класс устраивать посозданию таких красивых плат.Извиняюсь за флуд

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

наконец пришли с китая фрезы и можно делать гусеничное шасси на станке ЧПУ (вручную очень тяжело)

набросал первоначальный вариант

ну и у кого есть акробат можно посмотреть в 3D

http://yadi.sk/d/v5q-Kr9FK36jb

только настройте отображение в акробате

параметры просмотра-режим рендеринга модели-затененный рисунок

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

А diptrace умет сам платы рисовать? Типо добавил компоненты на плату нажал на кнопочку и всё дорожки нарисовались по всем правилам разводки.

И умеет ли тоже самое протеус? Мне в нём проще работать, ведь там и схема нарисованная.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

HWman пишет:

А diptrace умет сам платы рисовать? Типо добавил компоненты на плату нажал на кнопочку и всё дорожки нарисовались по всем правилам разводки.

добавил компоненты, соеденил их в схеме. нажал CTRL+B передалось в трассировщик. настроил правила трассировки (ширину дорожек, зазор между дорожками, односторонняя или двухсторонняя трассировка) запустил и все получилось. но вручную все равно дорабатываю. там также естьавторазмещение, но все равно размещаю в основном сам. автотрассировка позволяет увидеть как пролегают дорожки и перемещая и поворачивая элементы добится более оптимального. затем задаешь нужным дорожкам ширину (например если питание нужно сделать потолще). заливку можно добавить, указать с какой сетью соеденить и сигнал пойдет по заливке (общий провод например)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

КаК в песне-Мы рожждены ,чтоб сказку сделать былью.....Отлично получается.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

спасибо. теперь надо покрасить и моторы прицепить

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

jeka_tm пишет:

спасибо. теперь надо покрасить и моторы прицепить

Наблюдаю за вашей работой, хорошая реализация!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ZSeregaA пишет:

jeka_tm пишет:

спасибо. теперь надо покрасить и моторы прицепить

Наблюдаю за вашей работой, хорошая реализация!

постараюсь в ближайшие дни показать как будет ездить

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

jeka_tm пишет:

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

Выглядит классно! Так держать!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

стараюсь.

гонял его по полу и дивану. подкладывал интрументы руку как препятствие. без проблем. загнал его на одеяло, оно мягкое и ездить тяжелее. но ему без проблем, да еще и когда закопался попортил подъодеяльник.

я доволен. вот только не очень быстрый, моторы продаются с передаточным числом минимум 1:48. а это не очень быстро

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

#include <Wire.h>
#include <ArduinoNunchuk.h>
ArduinoNunchuk nunchuk = ArduinoNunchuk();

#define  dir_L  10
#define  pwm_L  11
#define  dir_R  8
#define  pwm_R  9

byte speed_L;
byte speed_R;
byte rul_L;
byte rul_R;

void setup() 
{ 
  nunchuk.init(); 
  pinMode(dir_L, OUTPUT);
  pinMode(pwm_L, OUTPUT);
  pinMode(dir_R, OUTPUT);
  pinMode(pwm_R, OUTPUT);
} 

void loop(){ 
  nunchuk.update();
  sped();

  if(nunchuk.analogX == 128){      //если по горизонтали в среднем положении 
    analogWrite(pwm_L, speed_L);   //значит на оба двигателя одинаковая скорость 
    analogWrite(pwm_R, speed_R);   //регулиется положением по вертикали
  }
  if(nunchuk.analogY > 128){       //по вертикали выше середины
    if(nunchuk.analogX > 128){     //если по горизонтали правее середины
      analogWrite(pwm_L, speed_L); //левый двигатель без ограничений
      analogWrite(pwm_R, speed_R - constrain(rul_R, 0, speed_R)); //правый ограничивается положением по горизонтали
                                                                  //вычитаем положение по горизонтали, максимальная скорость
                                                                  //при шим=255, но ограничиваем
                                                                  //положением по вертикали, чтобы при вычитании 
                                                                  //не произошло переполнение
    }
    if(nunchuk.analogX < 128){
      analogWrite(pwm_L, speed_L - constrain(rul_L, 0, speed_L)); //аналогично предыдущему
      analogWrite(pwm_R, speed_R);
    }
  }
  if(nunchuk.analogY < 128){      //по вертикали ниже середины
    if(nunchuk.analogX > 128){    //если по горизонтали правее середины
      analogWrite(pwm_L, speed_L);//левый двигатель без ограничений
      analogWrite(pwm_R, speed_R + constrain(rul_R, speed_R, 255));//правый ограничивается положением по горизонтали
                                                                   //прибавляем положение по горизонтали, так как максимальная
                                                                   //скорость при шим = 0,  но ограничиваем
                                                                   //положением по вертикали, чтобы при вычитании 
                                                                   //не произошло переполнение
    }
    if(nunchuk.analogX < 128){
      analogWrite(pwm_L, speed_L + constrain(rul_L, speed_L, 255)); //аналогично предыдущему
      analogWrite(pwm_R, speed_R);
    }
  }
}



//=============================================================================
//                                Функции
void sped(){
  if(nunchuk.analogY == 128){       //если по вертикали в среднем положении
    digitalWrite(dir_L, 0);         //тормозим двигатели
    digitalWrite(dir_R, 0);
    speed_L = 0;
    speed_R = 0;
  }
  if(nunchuk.analogY > 128){        //если по вертикали выше середины (значения от 129 до 255)
    digitalWrite(dir_L, 0);         //направление вперед (0 подаем)
    digitalWrite(dir_R, 0);
    speed_L = nunchuk.analogY*2-255;//преобразуем значения от 129 до 255 в значения от 3 до 255
    speed_R = nunchuk.analogY*2-255;//минимум "3" из-за погрешности кода, но ничем не мешает
  }
  if(nunchuk.analogY < 128){        //если по вертикали ниже середины (значения от 0 до 127)
    digitalWrite(dir_L, 1);         //направление назад (1 подаем)
    digitalWrite(dir_R, 1);
    speed_L = nunchuk.analogY*2;    //преобразуем значения от 0 до 127 в значения от 0 до 255
    speed_R = nunchuk.analogY*2;
  }
}



у меня такое ощущение что я напутал. нужен свежий взгляд. или предложение как упростить код для понимания

у меня 2 варианта. или писать прямо так и тестировать пока не получится

или разбить все направления джойтстика на 8 или больше направлений

 

Diemon
Offline
Зарегистрирован: 18.11.2011

У меня принцип чуть другой, но может поможет:

X = map (ps2x.Analog(PSS_LX),0, 255, -255, 255);//привожу к виду (-255,255)
    Y = map (ps2x.Analog(PSS_LY),0, 255, 255, -255);
    lSpeed=constrain(X+Y,0,255); //ограничиваю   
    rSpeed=constrain(Y-X,0,255);
    analogWrite(forward_l, lSpeed);
    analogWrite(forward_r, rSpeed); 
    if(Y<-5) 
    {
      Backward (); 
    }
    else
    {
      digitalWrite(backward_l, LOW);
      digitalWrite(backward_r, LOW); 
    }

Тут я шимом еду только вперед. Назад еду пока дискретно. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

интересная мысль. надо подумать как это работает.

у вас драйвер правильный? в смысле шим при любом направлении всегда от 0 до 255. у меня нет

вперед шим 0-255. 255 макс скорость. назад 255-0. 0 макс скорость. не стал заморачиваться с драйвером, решил кодом добиться нужного результата. но получилось сложновато, много условий. ваш код выглядит более правильным

я сделал так. ездит как надо

#include <Wire.h>
#include <ArduinoNunchuk.h>
ArduinoNunchuk nunchuk = ArduinoNunchuk();

#define  dir_L  10
#define  pwm_L  11
#define  dir_R  8
#define  pwm_R  9

byte speed_L;
byte speed_R;
byte rul;

void setup() 
{ 
  nunchuk.init(); 
  pinMode(dir_L, OUTPUT);
  pinMode(pwm_L, OUTPUT);
  pinMode(dir_R, OUTPUT);
  pinMode(pwm_R, OUTPUT);
} 

void loop(){ 
  nunchuk.update();
  sped();
  
   
  if(nunchuk.analogY == 128){       
    digitalWrite(dir_L, 0);    
    digitalWrite(dir_R, 0);
    speed_L = 0;
    speed_R = 0;
  }

  if(nunchuk.analogX == 128){      //вперед или назад
    analogWrite(pwm_L, speed_L); 
    analogWrite(pwm_R, speed_R);
  }
  if(nunchuk.analogY > 128){       //вперед и с поворотом
    if(nunchuk.analogX > 128){   
      analogWrite(pwm_L, speed_L);
      analogWrite(pwm_R, speed_R - constrain(rul, 0, speed_R));
    }

    if(nunchuk.analogX < 128){
      analogWrite(pwm_L, speed_L - constrain(rul, 0, speed_L));
      analogWrite(pwm_R, speed_R);
    }
  }
  if(nunchuk.analogY < 128){       //назад и с поворотом
    if(nunchuk.analogX > 128){  
      analogWrite(pwm_L, speed_L);
      analogWrite(pwm_R, 255-((255-speed_R)-constrain(rul, 0, (255-speed_R))));
    }
    if(nunchuk.analogX < 128){
      analogWrite(pwm_L, 255-((255-speed_L)-constrain(rul, 0, (255-speed_L ))));
      analogWrite(pwm_R, speed_R);
    }
  }
}



//=============================================================================
//                                Функции
void sped(){
  if(nunchuk.analogY == 128){       
    digitalWrite(dir_L, 0);    
    digitalWrite(dir_R, 0);
    speed_L = 0;
    speed_R = 0;
  }
  if(nunchuk.analogY > 128){ 
    digitalWrite(dir_L, 0); 
    digitalWrite(dir_R, 0);
    speed_L = nunchuk.analogY*2-255;
    speed_R = nunchuk.analogY*2-255;
  }
  if(nunchuk.analogY < 128){     
    digitalWrite(dir_L, 1);   
    digitalWrite(dir_R, 1);
    speed_L = nunchuk.analogY*2; 
    speed_R = nunchuk.analogY*2;
  }

  if(nunchuk.analogX == 128){ 
    rul = 0;
  }
  if(nunchuk.analogX > 128){ 
    rul = nunchuk.analogX*2-255;
  }
  if(nunchuk.analogX < 128){     
    rul = 255-nunchuk.analogX*2;
  }
}





тяжелее всего было с задним ходом и одновременным поворотом. никак не мог написать формулу рабочую

в итоге преобразовал к виду как вперед, обработал, а потом снова преобразовал

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

выкладываю видео как обещал

SLOM
Offline
Зарегистрирован: 06.11.2014

чем все закончилось? 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

теперь у меня нет принтера делать платы. пульт сгорел (китайцы подделывают китайцев. жесть)

а шасси стоит. поставил в него новые моторы. должен стать скоростнее. проверил новый драйвер для моторов

SLOM
Offline
Зарегистрирован: 06.11.2014

платы можно и готовые брать, а чего сгорел? спалили или сам сдох? 

какой у вас скетч был, тот уже не скачиваеться, что вначале статьи...(

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нафиг готовые. куплю принтер. надо только выбрать

да то было сто лет назад. того кода уже нет

сгорел потому что китайская подделка под ams1117 сдохла при 10в входного напряжения, а должна работать до 15В

 

SLOM
Offline
Зарегистрирован: 06.11.2014

а что можите посоветовать, я сейчас подумываю над переходом на джостиковое управление для 

https://www.youtube.com/watch?v=pqA7SqZK1ng

 

будет ли плавный старт с стиков? 

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

конечно. да как и  раньше говорил можно сделать ограничение разгона

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

переделал еще одну машинку для друга

все как обычно. из родного осталось шасси и мотор. в качестве джойстика нунчак от wii. сделал его беспроводным

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Будет ли обзор и исходники по переделке?или это все в топике есть?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

могу дать если нужно

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Если можно,то поподробнее -если не трудно.

SLOM
Offline
Зарегистрирован: 06.11.2014

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

мне надо 3 джойстика и гдето 4 кнопки 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хорошо. машинка обычная китайская за 500 рублей с управлением по 27мгц. работала на пальчиковых батарейках, управление только вперед назад влево вправо. без плавное регулировки скорости или управлением поворота колес

модернизация следующая: выкидываем всю электронику. в том числе пульт. оставляем только  мотор для задних колес

ставим ардуину, драйвер, стабилизаторы (для сервы я ставил отдельный), сервопривод, радиомодуль nrf24l01

в джойстик который общается по i2c ставим также арудину с радиомодулем и аккумулятор

ардуины самодельные, драйвер тоже

код для машинки

#include <SPI.h>
#include "RF24.h"
#include <Servo.h>

#define PWM_Nchannel 5
#define PWM_Pchannel 6
#define DIR          7

Servo myservo;

const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала передачи
RF24 radio(9,10);
byte msg[3];

void setup(){
  Serial.begin(9600);
  myservo.attach(A2); 
  pinMode(PWM_Nchannel, OUTPUT);
  pinMode(PWM_Pchannel, OUTPUT);
  pinMode(DIR, OUTPUT);
  //============================================================Модуль NRF24
  radio.begin();                      // Включение модуля
  radio.setAutoAck(1);                // Установка режима подтверждения приема;
  radio.setDataRate(RF24_250KBPS);    // Устанавливаем скорость
  radio.setChannel(70);               // Устанавливаем канал
  radio.openReadingPipe(1,pipe);      // Открываем 1 канал приема
  radio.startListening();             // Начинаем слушать эфир
}

void loop(){
  if (radio.available()){
    while (radio.available()){
      radio.read(&msg, sizeof(msg));

      myservo.write(msg[0]);
      Drive();
      Serial.print(msg[0]);
      Serial.print("\t");
      Serial.print(msg[1]);
      Serial.print("\t");
      Serial.println(msg[2]);
      
    }
  }
}

//========================================================Управление двигателем
void Drive(){
  if (msg[2]==0){ // Стоп
    digitalWrite(PWM_Nchannel, 0);
    digitalWrite(PWM_Pchannel, 0);
  }
  if (msg[1]==1 && msg[2]>0){ // Передний ход
    analogWrite (PWM_Pchannel, 0);
    digitalWrite(DIR,1);
    analogWrite (PWM_Nchannel, msg[2]);
  }
  if (msg[1]==0 && msg[2]>0){ // Задний ход
    analogWrite (PWM_Nchannel, 0);
    digitalWrite(DIR,0);
    analogWrite (PWM_Pchannel, msg[2]);
  }
}

для Wii

#include <Wire.h>
#include <ArduinoNunchuk.h>
#include <SPI.h>
#include "RF24.h"

ArduinoNunchuk nunchuk = ArduinoNunchuk();

const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала передачи
RF24 radio(10,9);
byte msg[3];

void setup(){
  //============================================================Модуль NRF24
  radio.begin();                      // Включение модуля
  radio.setAutoAck(1);                // Установка режима подтверждения приема;
  radio.setRetries(1,1);              // Установка интервала и количества попыток
  radio.setDataRate(RF24_250KBPS);    // Устанавливаем скорость
  radio.setPALevel(RF24_PA_MAX);      // Установка максимальной мощности;
  radio.setChannel(70);               // Устанавливаем канал
  radio.openWritingPipe(pipe);        // Открываем канал передачи
  //=============================================================Wii nunchuk
  nunchuk.init();
}

void loop(){
  nunchuk.update();
  
  msg[0] = map(nunchuk.analogX, 255, 0, 60, 130);

  if(nunchuk.analogY == 128) msg[2]=0;
  if(nunchuk.analogY > 128){
    msg[1] = 1;
    msg[2]=map(nunchuk.analogY, 129, 255, 15, 255);
  }
  if(nunchuk.analogY < 128){
    msg[1] = 0;
    msg[2]=map(nunchuk.analogY, 127, 0, 15, 255);
  }
  
  //nunchuk.zButton;
  //nunchuk.cButton;
  
  radio.write(&msg, sizeof(msg));

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

SLOM пишет:

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

мне надо 3 джойстика и гдето 4 кнопки 

зачем именно блютуз? если 2 джойстика и нескольких кнопок хватит проще такой пульт взять

http://www.banggood.com/ru/WLtoys-Transmitter-For-V202-V212-V222-RC-Quad...

или как называется тема, джойстик от PS2

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

кстати в нунчаках wii стоит акселерометр, но я его не использовал

 

SLOM
Offline
Зарегистрирован: 06.11.2014

люди говорят что если китайский PS2 то он глючит в управлении. 

если оригинал то вроде стоит недешево. 

я подумал может из таких собрать свой собственный? 

хотя конечно чтото типо 

 

былобы удобней. 

у меня на данный момент функции такие:

1. ход машины

вперед \назад

лево\ право

2. Башня водомета

верх\них

повороты лево\право

3. кнопка выстрел с водомета, при зажатии качает помпа. 

4. Клешня манипулятора

верх\низ

сжать\разжать

в будущем еще хочу добавит пушку, в фары. тоесть как минимум 2 кнопки еще надо. 

1, 2, 4 лучше стиками, чтоб было пропорциональное управление. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хз у меня чистый noname китаец. вполне меня устраивал. глюков не заметил. может просто повезло

а что если взять такой джойстик и просто кнопкой менять управление водомет/клешня. а один чисто на управление машинкой

врядли ты одновременно управляешь клешней и водометом. как по мне так рациональнее. и конструкция джойстика считай уже собранная. не нужно городить свое. а красивое свое нужен 3д принтер

я еще аккумулятор встроил в джойстик чтобы не было батарек, и плату зарядки вставил. где то фотка в этой теме есть

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хотя крестиком можно управлять водометом или клешней. там джойстик по сути не нужен

SLOM
Offline
Зарегистрирован: 06.11.2014

у меня тоже была мысль переключать кнопкой режимы работы. когда один из джойстиком веняет свою функцию. но как это реализовать програмно? 

я вон до сих пор с сервой неразобрался :( и плавный ход глючит. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

реализовать просто кнопкой переключаешь режим. меняется например boolean mode при нажатии на какую то клавишу

и если mode==1 то одно, если mode==0 то другое

с сервой ты не разобрался, но это твоя заслуга. предложения были

 

SLOM
Offline
Зарегистрирован: 06.11.2014

я немогу код написать, нужно мереть напряжение с внутренего резистора сервы, переводить его в грудусы зная конечные точки. 

и потом если серва остановилась, не смогла дойти до заданного угла то оставлять ее в текущем. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я тебя понял. дело твое как делать. здесь на эту тему не хочу разводить обсуждение. уже все обсудили

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Женя, подскажи, пожста - куда дальше копать...

имеется комплект THRUSTMASTER T-MINI V.1-6

переделать на 328P и nRF24 - расточительно, хотелось бы подружить 328P с модулем MAR105K на исполнительной стороне, оставив сам джойстик без переделки.....

схема модуля MAR105K вроде бы эта http://fccid.net/document.php?id=876177#axzz3RF628D00

GND, VDD, SI, CLK, /CS - более менее понятно, а чем ведают пины GDO_0, GDO_1 ( он же SO ), GDO_2 ?

может быть вы модернизировали и такую штуку ?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так он же изначально беспроводной. приемник соответственно отдельно. ты прововал к арудине подцепить приемник (не забывай про 3.3В) и проверить. должно ведь работать. переделывать не надо конечно

или тебя приемник не устраивает? может хочешь универсальный пульт на nrf24l01 сделать?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

так он же изначально беспроводной. ДА приемник соответственно отдельно. ты прововал к арудине подцепить приемник (не забывай про 3.3В) НЕ ПРОБОВАЛ, НЕ ЗАБЫЛ и проверить. должно ведь работать. переделывать не надо конечно

или тебя приемник не устраивает? УСТРАИВАЕТ может хочешь универсальный пульт на nrf24l01 сделать? НЕТ, НЕ ВЛЕЗУТ 328P И nRF24 В КОРПУС

не подсоединял ибо - GND, VDD, SI, CLK, /CS - более менее понятно, а чем ведают пины GDO_0, GDO_1 ( он же SO ), GDO_2 ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

и с упаковкой данных не ясно....

на пульт передаются  - вкл/выкл вибромотор1/вибромотор2

с пульта - 17 кнопок + 2 от джойстиков, с потенциометров джойстиков - X_1, Y_1, X_2, Y_2 ( 0...255 или 0...1023 )

я так понимаю что нужно переходить к опытам с данными от MAR105K на приёмной стороне ?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

подожди. тебя все устраивает но не работает с библиотекой?

картинку выкладывал же какие пины нужны. а есть которые не нужны. они для моторчиков насколько помню

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

на исполнительной стороне с приёмопередатчика 8 пинов - GND, VDD, SI, CLK, /CS - более менее понятно, а чем ведают пины GDO_0, GDO_1 ( он же SO ), GDO_2 ?

управление моторчиками при передаче и приём команд от пульта - какие пины ? всё упаковано в буфер....

накопал схему самого пульта, там больше инфы - камень SN8P1707Q, подключения матриц кнопок к нему, подключение MAR105K к нему - сижу вкуриваю....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

подключение приёмопередатчика и SN8P1707Q в пульте :

MAR105K                                                                                          SN8P1707Q 

1 - SPI SI ------------------------- P2.5 ------------------------------------------- P2.5

2 - SPI CLK ----------------------- P2.4 ------------------------------------------- P2.4

3 - SPI SO ------------------------ P2.3 ------------------------------------------- P2.3

4 - GDO_2 ------------------------ P2.2 ------------------------------------------- P2.2

5 - VDD

6 - GDO_0 ------------------------ P2.1 ------------------------------------------- P2.1

7 - SPI CS ------------------------ P2.0 ------------------------------------------- P2.0

8 - GND

https://yadi.sk/i/Oj6Ma02teZZpVhttps://yadi.sk/i/Oj6Ma02teZZpV

https://yadi.sk/i/E0EcjtxEeZZr9

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

jeka_tm пишет:

http://arduino.ru/forum/proekty/tank-upravlyaemyi-dzhoistikom-ps-2#comme...

этого тебе недостаточно?

знакомый вид :) - наверное, достаточно..... :) кабы моя знал об этом !!!!!!!!

СПАСИБО !

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так тему бы почитал. в начале еще было нарисовано

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

нарисовано.... но не всё понятно :( 

на передней панели приёмника 9 пинов - это выводы приёмопередатчика MAR105K ?

и библиотека общения с ним - недоступна.... в смысле - ссылка на неё....

уточню - моя хочет принимать инфу от пульта через MAR105K, который выпаян из штатной схемы, и отправлять через него инфу на пульт....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да понятия не имею чего (какой микросхемы) там пины))) подключил работает. радуюсь что не подделка

на пульт вроде только сигналы для моторов только можно отправлять