Текущее время: 20 авг 2019, 17:04

Город ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

Робот на Ардуино - Создание ИИ

Тут собраны схемы различных устройств сделанных на контроллерах Ардуино, Лазерный гравер на Ардуино, Металлоискатель на Ардуино, Метеостанция, Кодовый замок, и множество других устройств и изобретений
Аватар пользователя
 
Сообщений: 701
Зарегистрирован: 27 мар 2013, 22:12

Робот на Ардуино - Создание ИИ

Сообщение -=dp=- » 01 авг 2019, 09:33

Робот на Ардуино - Создание ИИ

И вот, решил я создать для детворы робота на Ардуино :)
Хочу попробовать в направлении разработки искусственного интеллекта :idea:
Идей в этом направлении очень много, буду потихоничку воплощать их в реале.
Все наработки в этой области буду выкладывать в этой теме, по принципу - от простого к сложному ;)

На данном этапе я уже создал механическую часть робота на колесах 4х4.
Робот уже может двигаться вперед, назад, поворачивать на определенный угол влево, вправо, разворачиваться на 180 градусов, видеть перед собой препятствия, измерять расстояние до них, может получать команды по радиоканалу 433 МГц.

Комплектующие для робота на Ардуино:
Плата контроллера Ардуино УНО - 1шт
Мотор шилд на чипе L293D (Motor Shield L293D) - 1 шт
Мотор колесо - 4 шт
Модуль приемника на 433МГц - 1 шт
Аккумуляторы 18650 - 2 шт
Кнопка питания - 1 шт

Выкладываю схему соединения электрических частей робота на Ардуино :
(на этой схеме ультразвуковой датчик расстояния отсутствует)

Robostar 01 sxema.jpg
Робот на Ардуино - Создание ИИ



Аватар пользователя
 
Сообщений: 701
Зарегистрирован: 27 мар 2013, 22:12

Re: Робот на Ардуино - Создание ИИ

Сообщение -=dp=- » 01 авг 2019, 09:52

Скетч выложу чуть позже.

Выкладываю фото робота на Ардуино

Робот на Ардуино.jpg
Робот на Ардуино


Схему и скетч пульта управления выложил тут viewtopic.php?f=98&t=1464



Аватар пользователя
 
Сообщений: 701
Зарегистрирован: 27 мар 2013, 22:12

Re: Робот на Ардуино - Создание ИИ

Сообщение -=dp=- » 01 авг 2019, 10:07

Выложил видео на ютубе Робот на Ардуино часть 1

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

Robostar 01 part 1.jpg
Робот на Ардуино часть 1
Robostar 01 part 1.jpg (28 KiB) Просмотров: 147



Аватар пользователя
 
Сообщений: 701
Зарегистрирован: 27 мар 2013, 22:12

Re: Робот на Ардуино - Создание ИИ

Сообщение -=dp=- » 01 авг 2019, 10:09

И еще одно видео после доработок - Робот на Ардуино часть 2

https://www.youtube.com/watch?v=RKqda-TJNJs

Robostar 01 part 2.jpg
Робот на Ардуино часть 2
Robostar 01 part 2.jpg (30.16 KiB) Просмотров: 147



Аватар пользователя
 
Сообщений: 701
Зарегистрирован: 27 мар 2013, 22:12

Re: Робот на Ардуино - Создание ИИ

Сообщение -=dp=- » 01 авг 2019, 21:25

Выкладываю скетч первой версии робота:

Код: выделить все
#include <AFMotor.h>
#include <VirtualWire.h>
byte message[VW_MAX_MESSAGE_LEN];
byte messageLength = VW_MAX_MESSAGE_LEN;
const int receive_pin = 2;
const int indicate_pin = 13;
int pos = 0;
int dalnomer = 0;
int prog1 = 0;
int echoPin = 14;
int trigPin = 15;
int duration, cm;
int mspeed = 200;
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
int dviz = 300;
void setup() {
  Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);   // set up Serial library at 9600 bps
  Serial.println("Start");
  pinMode(indicate_pin, OUTPUT);
vw_set_rx_pin(receive_pin);
Serial.begin(9600);
Serial.println("RX is ready");
vw_setup(2000);
vw_rx_start();
  // turn on motor
 motor1.run(RELEASE);
 motor2.run(RELEASE);
 motor3.run(RELEASE);
 motor4.run(RELEASE);
}

void loop() {
 
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  cm = duration / 58;
Serial.print("Dalnomer: ");
 Serial.println(cm);
  uint8_t i;
  motor1.setSpeed(mspeed);
  motor2.setSpeed(mspeed);
  motor3.setSpeed(mspeed);
  motor4.setSpeed(mspeed);
  if (vw_get_message(message, &messageLength))
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++)
{
char c = message[i];
Serial.print(c);
//Vpered
if(c == '1') {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(FORWARD);
  delay(dviz);
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
};

//Nazad
if(c == '2') {
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(BACKWARD);
  delay(dviz);
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
};
//Levo
if(c == '0') {
motor1.run(FORWARD);
motor3.run(FORWARD);
motor2.run(BACKWARD);
motor4.run(FORWARD);
 delay(dviz/2);
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
};

//Pravo
if(c == '4') {
motor1.run(BACKWARD);
motor3.run(BACKWARD);
motor2.run(FORWARD);
motor4.run(BACKWARD);
  delay(dviz/2);
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
};


}
Serial.println();
}
//programm 1
/*
  if (cm <=3){
motor1.run(BACKWARD);
motor3.run(BACKWARD);
motor2.run(FORWARD);
motor4.run(BACKWARD);
  delay(dviz);
  delay(dviz);
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
  } else {

  };
*/ 

 
}



Библиотека VirtualWire.h
VirtualWire.zip
Библиотека VirtualWire.h
(18.4 KiB) Скачиваний: 8


Библиотека AFMotor.h
AFMotor.zip
Библиотека AFMotor.h
(10.44 KiB) Скачиваний: 8




Вернуться в Устройства на Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4