Skip to content

Проект радиоуправляемого робота на платформе Arduino Leonardo.

Notifications You must be signed in to change notification settings

MuzaffarovAbdurashidkhon/bot-arduino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Робот на ардуино

Бот был протестирован на трассе. Время прохождения трассы - 5 минута 36 секунды. Пройдены 3/4 испытаний.

Робот на Arduino Leonardo с радиомодулем NRF24. Для лучшего сцепления с гладкой поверхностью на гусиницы был нанесен термоклей в небольшом количестве.

photo_2023-06-12_00-51-14

IMG_20230612_004057

В роботе использовалось:

Motor Shield,

Arduino Leonardo/Amperka Iskra Neo,

NRF,

NRF+,

акумуляторы 18650 x2,

DC motor x2,

RGB LED (12 светодиода),

servo 360 x1.

IMG_1014.MOV

Для контроллера использовалась плата Arduino Pro Micro. Джойствик отвечал за движение по оси Y,X

photo_2023-06-12_00-59-01 photo_2023-06-12_00-58-55

В контроллере использовалось:

Arduino Pro Micro,

NRF,

NRF+,

повербанк,

потенциометр,

джойстик.

Использованные библиотеки:

Servo by Michael Margolis (управление сервоприводами),

Adafruit NeoPixel by Adafruit (настройка светодиодной ленты),

RF24 by TMRh20 (управление радиомодулем).

  1. Код для контроллера:

#include <SPI.h> //RF24 by TMRh20 #include <nRF24L01.h> #include <RF24.h>

#define VRx A0 #define VRy A1

RF24 radio(8, 10); int data[2];

void setup(){

radio.begin();

radio.setChannel(4);

radio.setDataRate(RF24_1MBPS);

radio.setPALevel(RF24_PA_HIGH);

radio.openWritingPipe(0x1234567890LL);

radio.stopListening(); }

void loop(){

int valx = analogRead (VRx);

int valy = analogRead (VRy);

data[0] = valx;

data[1] = valy;

radio.write(&data, sizeof(data));

delay(100); }

  1. Код для робота:

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

#define SPEED_1 5

#define DIR_1 4

#define SPEED_2 6

#define DIR_2 7

#define MATRIX_PIN 0

#define LED_COUNT 12

Adafruit_NeoPixel matrix = Adafruit_NeoPixel(LED_COUNT, MATRIX_PIN, NEO_GRB + NEO_KHZ800);

RF24 radio(8, 10);

int data[2];

void setup() {

for (int i = 4; i < 8; i++) {

pinMode(i, OUTPUT);

} Serial.begin(9600);

radio.begin();

radio.setChannel(4);

radio.setDataRate(RF24_1MBPS);

radio.setPALevel(RF24_PA_HIGH);

radio.openReadingPipe(0, 0x1234567890LL);

radio.startListening(); }

void loop() {

if (radio.available()){

radio.read(&data, sizeof(data));

for (int i = 0; i < matrix.numPixels(); i++) {

  matrix.setPixelColor(i, 255, 255, 255);
  
  matrix.show();  
}


if (data[0] > 900 ) {
  digitalWrite (DIR_1, LOW);
  analogWrite(SPEED_1, 200);  
  digitalWrite (DIR_2, HIGH);
  analogWrite(SPEED_2, 200);  
}

else if (data[0] < 200) {
  digitalWrite(DIR_1, HIGH);
  analogWrite(SPEED_1, 200);
  digitalWrite(DIR_2, LOW);
  analogWrite(SPEED_2, 200);
}
else if (data[1] < 200) {
  digitalWrite(DIR_2, HIGH);
  analogWrite(SPEED_2, 200);
  digitalWrite(DIR_1, HIGH);
  analogWrite(SPEED_1, 200);
}

else if (data[1] > 900) {
  digitalWrite(DIR_2, LOW);
  analogWrite(SPEED_2, 200);  
  digitalWrite(DIR_1, LOW);
  analogWrite(SPEED_1, 200); 
}
else {  
  digitalWrite(DIR_1, HIGH);
  analogWrite(SPEED_1, 0);
  digitalWrite(DIR_2, HIGH);
  analogWrite(SPEED_2, 0);  
}

} }

About

Проект радиоуправляемого робота на платформе Arduino Leonardo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages