Прошу помощи - Проект Mecanum управление с Андроид планшета

NikiTeach

✩✩✩✩✩✩✩
28 Сен 2021
2
0
Доброго времени суток товарищи!!!

Решил собрать свой первый проект на Arduino и по всей видимости переоценил себя.
Проект Телега на всенаправленных колёсах | AlexGyver , прекрасный проект к слову. всё собрал за исключением джостика и модуля к нему - не смог найти, решил сделать управление на планшете через блютус используя Virtuino или RemoteXY. И тут я понял что ни чего не понял. Подскажите начинающему бородатому ученику - это возможно? И понимая что нет ни чего не возможного, подскажите - что почитать, может уже были подобные проекты и темы. Спасибо.
 

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@NikiTeach, На каком именно этапе возникают проблемы?
Заменяете метод ps2x.Analog() на свой, откуда собираетесь получать данные да и все по сути.
Направление:
    int valLX = map(ps2x.Analog(PSS_LX), 0, 256, -MAX_SPEED, MAX_SPEED);
    int valLY = map(ps2x.Analog(PSS_LY), 256, 0, -MAX_SPEED, MAX_SPEED); // инвертируем
    int valRX = map(ps2x.Analog(PSS_RX), 0, 256, -MAX_SPEED, MAX_SPEED);
    int valRY = map(ps2x.Analog(PSS_RY), 256, 0, -MAX_SPEED, MAX_SPEED); // инвертируем
Зашел на RemoteXY, ткнул два джойстика и вот

RemoteXY:
/*
   -- New project --
  
   This source code of graphical user interface
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 3.1.6 or later version
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.8.01 or later version;
     - for iOS 1.5.1 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.   
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>

#include <RemoteXY.h>

// настройки соединения
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600


// конфигурация интерфейса 
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,4,0,0,0,21,0,13,13,1,
  5,0,2,21,30,30,2,26,31,5,
  0,33,20,30,30,2,26,31 };
 
// структура определяет все переменные и события вашего интерфейса управления
struct {

    // input variables
  int8_t joystick_1_x; // =-100..100 координата x положения джойстика
  int8_t joystick_1_y; // =-100..100 координата y положения джойстика
  int8_t joystick_2_x; // =-100..100 координата x положения джойстика
  int8_t joystick_2_y; // =-100..100 координата y положения джойстика

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////



void setup()
{
  RemoteXY_Init ();
 
 
  // TODO you setup code
 
}

void loop()
{
  RemoteXY_Handler ();
 
 
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных
  // не используйте функцию delay()


}

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

Направления RemoteXY:
int valLX = map(RemoteXY.joystick_1_x, 0, 256, -MAX_SPEED, MAX_SPEED);
int valLY = map(RemoteXY.joystick_1_y, 256, 0, -MAX_SPEED, MAX_SPEED); // инвертируем
int valRX = map(RemoteXY.joystick_2_x, 0, 256, -MAX_SPEED, MAX_SPEED);
int valRY = map(RemoteXY.joystick_2_y, 256, 0, -MAX_SPEED, MAX_SPEED); // инвертируем
 
  • Лойс +1
Реакции: NikiTeach

NikiTeach

✩✩✩✩✩✩✩
28 Сен 2021
2
0
Спасибо огромное, буду разбираться.

Я правильно понимаю что вот тут -
// настройки соединения
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3

Мы задаем пин для подключения блютус модуля. а если я подключаю к портам RXD и ТXT мне надо их указывать как 1 и 0 ?
 

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@NikiTeach, Если я вас правильно понял, то не советую, т.к. USB-UART контроллер подключен как раз именно к этим пинам.
Лучше подключить блютуз модуль к любым другим пинам. Неплохо было бы написать, какой именно микроконтроллер собираетесь использовать и какой именно блютуз модуль
 

The Phantom

✩✩✩✩✩✩✩
20 Окт 2022
1
0
Здравствуйте) Подскажите как сделать данную модель на самодельном приемнике NRF2401 c arduino nano? Что нужно изменить добавить в коде ?