arduino nrf24l01 машинка.

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
Добрый день! Нужна ваша помощь.:( Зависли два проекта но програмист с меня никакой. Первый ето простая машинка на одном моторе и серво поворотб а второй ето маунтиборд из колес гироскутера. Немогу найти скетч и неумею дописать для управления ДЖОЙСТИКОМ плавно вперед и назад. Серво слава богу есть в прошивке ну и кнопка пригодится. Получилось лично дописать вторую серво и еще трикнопки и все работает а вот розделить джойстик на два плавных канала на выходе не получается.ЗАБЛУДИЛСЯ В ТРЬОХ СОСНАХ.
Помогите дописать скетч управления мотором вперед и назад плавно. подключатся будет к драйверу MX1508.
И еще одна задача отключить движки при потери связи с передатчиком.:(
Всем добра и удачных проектов.
 

Вложения

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
207
Джойстик это два потенциометра, один показывает смещение стика по горизонтали, второй -- по вертикали. Показания потенциометра считывать умеешь?
 

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
@Александр Симонов,
считать передатчиком путаюсь. Алгоритм понимаю.Аналог выводится в тыфру.( простите но клавиатура не работает).
Два резистора на входе приемника понимаю. Как записать виход для моторчика. Уже две недели сиджу и грызу интернет. Помогите чем сможете. или дайте почитать то что мне нужно. спасибо.
 

bort707

★★★★★★✩
21 Сен 2020
2,894
860
две недели сидишь, ничего не пробовал написать? - так и два года можно сидеть...
А если пробовал - показывай, чтоб было что обсуждать.
 

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
Вот что получилось. Могу добавить серво в скетч и кнопки. Управления моторчиком реверсом не получается.

@Александр Симонов,
Гуглю неделю. Ребята..помогите примером на мой скетч. Гуглю но найти не получается. не могу приклеить функыю __int к моему скетчу. хоть подскажите какой бло4к скетча прописать для мого проекта. Спасибо что хоть кто то отписался.

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

Вложения

  • 1.3 KB Просмотры: 10
  • 2.1 KB Просмотры: 5

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
@Александр Симонов,
"mx1508 ардуино yotube
"mx1508 ардуино google
Но не нашел как правильно создать пару для прием передача. Вот тут засада.

@bort707, @bort707, @bort707,
Я отсюда беру материал. Может я не правильно написал. Извините.

@Эдуард Анисимов,
Схему понимаю. ПРошивки не нашол. Подскажите как открыть в вашем файле прошивку.

@bort707,
RF24 myRadio (9, 10);
struct package
{
byte relay = 4;
int X=512;
int Y=512;
};

byte addresses[][6] = {"0"};
int OUT1 = 2;
int OUT2 = 3;
int OUT3 = 5;
int OUT4 = 6;
 

bort707

★★★★★★✩
21 Сен 2020
2,894
860
Юра, какой-то поток бессвязных слов
Найдите любой пример к библиотеке NRF24 - там всегда есть и приемник и передатчик
 

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
@bort707,
Примеров куча. но управления аналоговым джойстиком вперед назад по радио для моего драйвера немогу найти. Есть там и кнопки и серво но моторчика реверс плавно немогу найти. ищу дальше. Видать плохо ищу. иду в уроки ардуино и снгова буду пробовать чтото клеить. Брату кораблик хочу подарить для прикормки рыбы. Сдаватся не буду тпотому что тот проект годится для моего Маунтиборда.
 

bort707

★★★★★★✩
21 Сен 2020
2,894
860
Если вы будете искать управление именно аналоговым сигналом и именно вашего драйвера - скорее всего не найдете никогда. Ищите отдельно 1) передачу данных NRF24. 2) преобразование аналоговых сигналов и 3) работу с драйвером мотора
А уж комбинировать 1, 2 и 3 - вам придется самому, на то вы и человек, а не тупой компьютер
 

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
@bort707,
преобразование аналоговых сигналов
Вот ето меня заепило. Вот ето не думал. Спасибо Буду Искать. Надесь скоро отпишусь)) недели через две(
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
Млин, этих корабликов и машинок на YouTube как опавшей листвы осенью. Что мешает повторить?

*** Даже на этом форуме их хватает.
 

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
@kostyamat,
Добрый день. Куча скетчов в инете я знаю. Мне нужен один для обычного драйвера выше указанного. Приведите пример самого простого скетча вперед назад и одного серво. С джойстиком у меня засада. порка изучаю свой вопрос. Каждый человек должен заниматся своим делом. извените что в лез сюда с глупыми вопросами. Один добрый человек мне откликнулся и надеюсь я свой вопрос скоро закрою.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,188
1,280
Москва
Вот прям с этого сайта:
 

BMW25

✩✩✩✩✩✩✩
8 Дек 2019
5
0
gyver Motor ,
библиотека отлично работает с nrf24
 

Юра_1985

✩✩✩✩✩✩✩
29 Май 2021
27
0
@BMW25,
Добрый вечер!
Я пробовал библиотеку для моего драйвера ту что вы указали. Но неполучилось у меня. Я непонял как роспределить строчки в свой код передатчика и приемника.
 

BMW25

✩✩✩✩✩✩✩
8 Дек 2019
5
0
Оформи код соответствующим тэгом или сообщение будет удалено
C++:
GyverMotor lib + NRF24 + joystic    (TX)

/*

Arduino PV2 robot  NRF24L01

*/



#include <SPI.h>

#include "nRF24L01.h"

#include "RF24.h"



RF24 radio(9,10); // CE, CSN

byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

char xyData[32] = "";

  int joystick[2];



 

void setup() {

  Serial.begin(9600);





  radio.begin();

  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл

  radio.setRetries(0, 15);    //(время между попыткой достучаться, число попыток)

  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал

  radio.setPayloadSize(32);     //размер пакета, в байтах

  radio.openWritingPipe(address[0]);   //мы - труба 0, открываем канал для передачи данных

  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX

  radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS

  radio.powerUp(); //начать работу

  radio.stopListening();  //не слушаем радиоэфир, мы передатчик



///_______________________________________________________________________________///



}

void loop() {



              // джойстик на А0 и А1 //

int signalX = 255 - analogRead(0) / 2;

int signalY = 255 - analogRead(1) / 2;



    joystick[0] = signalX ;

    joystick[1] = signalY ;

 

   radio.write( joystick, sizeof(joystick) );

                                                                    

}



RX

/* 

Arduino PV2 robot NRF24L01

*/

#include <SPI.h>

#include "nRF24L01.h"

#include "RF24.h"

#include "GyverMotor.h"



  GMotor motorR(DRIVER3WIRE, 2, 4, 6, (LOW/HIGH) );

  GMotor motorL(DRIVER3WIRE, 7, 8, 5, (LOW/HIGH) );



RF24 radio(9, 10);

  byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

                      

  char recieved_data[32] = "" ;         

  int  xAxis, yAxis;

   int joystick[2];

    int signalY = 0 ;             

     int signalX = 0 ;       



void setup() {

 

   motorR.setMode(FORWARD);

   motorL.setMode(FORWARD);



  Serial.begin(9600);

  radio.begin();



///_________________________________________________________________///

  radio.begin(); //активировать модуль

  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл

  radio.setRetries(0, 15);    //(время между попыткой достучаться, число попыток)

  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал

  radio.setPayloadSize(32);     //размер пакета, в байтах

  radio.openReadingPipe(1, address[0]);     //хотим слушать трубу 0

  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX

  radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS

  radio.powerUp();          //начать работу

  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль                 

///_________________________________________________________________________________________________________///



}

void loop() {



  if (radio.available()) {

 

       radio.read( joystick, sizeof(joystick) );

  

    signalY = joystick[0];

    signalX = joystick[1];

   /// relay = sw[3];



    Serial.println(signalY);

    Serial.println(signalX);                                                 

//__________________________________________________

  // преобразуем по танковой схеме

  int dutyR = signalY + signalX;

  int dutyL = signalY - signalX;

//__________________________________________________

  motorR.setSpeed(dutyR);

  motorL.setSpeed(dutyL);

  }

}
кто может добавить в код 2-3 релейных канала?
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
2,894
860
В этот код рано что-то добавлять, вы сначала добейтесь, чтобы хотя это у вас заработало. Подозреваю, что вы просто накидали операторов как попало.
Например в коде приемника вы подряд принимаете массивы joystick и receiveddata. А с чего вы взяли, что они придут именно в этом порядке.? Я вам гарантирую, что при реальной передаче порядок очень быстро собьется и данные из двух массивов перепутаются
 

BMW25

✩✩✩✩✩✩✩
8 Дек 2019
5
0
код работает драйвер 3wire bts7960,
если ты знаешь, как сделать лучше, сделай это
 

bort707

★★★★★★✩
21 Сен 2020
2,894
860
Ребята, что у вас "работает"? Что за массив received_data вы принимаете в приемнике? - и главное зачем?
Вы же ничего подобного из передатчика не отправляете...
Когда копируете где-нить код - разбирайтесь в нем и не копируйте чепухи