Rc управление с помощью Ардуино+ Nrf24l01

Тема в разделе "Arduino & Shields", создана пользователем vlad123419, 17 апр 2016.

  1. vlad123419

    vlad123419 Нерд

    Всем доброго времени суток! Вот хотел сделать катер, но столкнулся с определённым трудностями с модулями nrf24l01. Есть две Ардуино, одна Uno оригинальная, а вторая Nano ( китайская). Китайская плата работает, установил драйвера, программа загружается, все ок.

    Делаю катер по видео и там указаны такие коды приёмника и передатчика
    Это передатчик:
    Код (C++):
    #include <SPI.h>
    #include "RF24.h"
    RF24 radio(9,10);
    const uint64_t pipe = 0xF0F0F0F000LL;
    int msg[1];
    int potpin_1 = A0;
    int val_1;

    void setup(void){
    radio.begin();
    radio.openWritingPipe(pipe);

    }
    void loop() {
    val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 127),msg[0] = val_1,radio.write(msg, 1);



    }
     
    Это приемник:
    Код (C++):
    // Необходимо установить библиотеку для радиомодуля nRF24
    #include <Servo.h>
    #include <SPI.h>
    #include "RF24.h"
    Servo servo1;
    Servo servo2;

    RF24 radio(9,10);
    const uint64_t pipe = 0xF0F0F0F000LL;
    int msg[1];
    int data;
    int pos;
    int fspeed;           // forward speed
    int bspeed;           // backward speed

    void setup()
    {

    servo1.attach(3);
    servo2.attach(5);
    delay(50);
    radio.begin();
    radio.openReadingPipe(1,pipe);
    radio.startListening();
    }

    void loop()
    {
      if (radio.available())radio.read(msg, 1);
      if (msg[0] <127 && msg[0] >-1)data = msg[0], pos = map(data, 0, 126, 0, 180),servo1.write(pos);



    }
     
    Но там еще используется регулятор скорости для бесколлекторного двигателя, по этому там 2 джойстика, а я хочу пока что управлять только одним сервоприводом, что бы когда отводишь джойстик вбок он поворачивал сервопривод. И чтобы вся эта конструкция была построена на Ардуино Уно оригинальной и китайской Ардуино Нано.

    Прошу объяснить как запитать и подключить nrf24l01 (я слышал, что для питания от 3,3 в надо припаять конденсатор, но толком не нашел как его припаять), как законектить две эти платы? И по возможности подправьте мой код, чтобы он был исправен ( и какие библиотеки надо установить для этого?)
    Заранее спасибо за ответы и предложения!

    https://goo.gl/photos/eY4ZY3ByigyNQtMb6
    https://goo.gl/photos/Zt2Jtz92tFkFZzv87
    https://goo.gl/photos/ofFkjk5ZLGotsgdN8
    https://goo.gl/photos/Ux2a4LkkVS46x8s76
    https://goo.gl/photos/yi6KQsycZEzSq9c39
    https://goo.gl/photos/VvB27Fvhko1K3XYy7
    https://goo.gl/photos/LhB5QaBDpRjFCPpD9
    https://goo.gl/photos/bXgCpkrRJsgsQSih7
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

     
    Последнее редактирование: 17 апр 2016
  2. vlad123419

    vlad123419 Нерд

    Всем доброго времени суток! Вот хотел сделать катер, но столкнулся с определённым трудностями с модулями nrf24l01. Есть две Ардуино, одна Uno оригинальная, а вторая Nano ( китайская). Китайская плата работает, установил драйвера, программа загружается, все ок.

    Делаю катер по видео и там указаны такие коды приёмника и передатчика
    Это передатчик:

    #include <SPI.h>
    #include "RF24.h"
    RF24 radio(9,10);
    const uint64_t pipe = 0xF0F0F0F000LL;
    int msg[1];
    int potpin_1 = A0;
    int val_1;

    void setup(void){
    radio.begin();
    radio.openWritingPipe(pipe);

    }
    void loop() {
    val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 127),msg[0] = val_1,radio.write(msg, 1);



    }


    Это приемник:

    Код (C++):

    // Необходимо установить библиотеку для радиомодуля nRF24
    #include <Servo.h>
    #include <SPI.h>
    #include "RF24.h"
    Servo servo1;
    Servo servo2;

    RF24 radio(9,10);
    const uint64_t pipe = 0xF0F0F0F000LL;
    int msg[1];
    int data;
    int pos;
    int fspeed; // forward speed
    int bspeed; // backward speed

    void setup()
    {

    servo1.attach(3);
    servo2.attach(5);
    delay(50);
    radio.begin();
    radio.openReadingPipe(1,pipe);
    radio.startListening();
    }

    void loop()
    {
    if (radio.available())radio.read(msg, 1);
    if (msg[0] <127 && msg[0] >-1)data = msg[0], pos = map(data, 0, 126, 0, 180),servo1.write(pos);



    }


    Но там еще используется регулятор скорости для бесколлекторного двигателя, по этому там 2 джойстика, а я хочу пока что управлять только одним сервоприводом, что бы когда отводишь джойстик вбок он поворачивал сервопривод. И чтобы вся эта конструкция была построена на Ардуино Уно оригинальной и китайской Ардуино Нано.

    Прошу объяснить как запитать иподключить nrf24l01 (я слышал, что для питания от 3,3 в надо припаять конденсатор, но толком не нашел как его припаять), как законектить две эти платы? И по возможности подправьте мой код, чтобы он был исправен ( и какие библиотеки надоустановить для этого?)
    Заранее спасибо за ответы и предложения!

    https://goo.gl/photos/eY4ZY3ByigyNQtMb6
    https://goo.gl/photos/Zt2Jtz92tFkFZzv87
    https://goo.gl/photos/ofFkjk5ZLGotsgdN8
    https://goo.gl/photos/Ux2a4LkkVS46x8s76
    https://goo.gl/photos/yi6KQsycZEzSq9c39
    https://goo.gl/photos/VvB27Fvhko1K3XYy7
    https://goo.gl/photos/LhB5QaBDpRjFCPpD9
    https://goo.gl/photos/bXgCpkrRJsgsQSih7