roboforum.ru

Технический форум по робототехнике.

Простая аниматроника на Ардуино

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Простая аниматроника на Ардуино

Сообщение Angel71 » 04 мар 2020, 23:25

лотерейные билетики по 500р, прикольно. а призовой фонд какой?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 08 мар 2020, 11:32

Лотерея удалась. Первые элементы легли в размер точно.Такая пока мутация... Остались лапы, шея,хвост и элементы-рамка крепления качалки. В 500 явно не попаду:)
Пластик хрупкий, лопнул выступ при закручивании самореза, однако секундный клей спас - саморез таки вкрутил. Нет ли простых приложений чтоб комплектацию деталек (stl расширение) для конструкций визуализировать в одной картинке?
Вложения
chvost.png
20200307_133832.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение sergey2x » 08 мар 2020, 13:28

dimamichev писал(а):Нет ли простых приложений чтоб комплектацию деталек (stl расширение) для конструкций визуализировать в одной картинке?


В самом openscad:
import("имя.stl");
sergey2x
 
Сообщения: 235
Зарегистрирован: 14 янв 2015, 16:18
Откуда: СПб

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 08 мар 2020, 15:15

Спасибо за подсказку.
Вложения
sborka.png
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 11 мар 2020, 21:13

Наткнулся на вкладке "Вид" на опцию "анимировать". Где про использование можно почитать?
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 12 мар 2020, 11:16

Нашёл подсказку
https://www.instructables.com/id/Animat ... -OpenSCAD/

Добавлено спустя 1 час 15 минут 37 секунд:
Внутри опенскад видео крутится, но как сохранить отдельным файлом не ясно:(
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 13 мар 2020, 21:45

Вариант сборки такой получился... с видео так и не понял, можно экспортировать анимацию или нет.

Добавлено спустя 1 час 2 минуты:
Вложения
sborka_vid.png
рис.1.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение Scorpio » 13 мар 2020, 23:18

Прикольный зверь!
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 14 мар 2020, 22:17

Ещё на таком шасси потренироваться можно...пока посылка с саморезами идёт (сервы уже пришли - за 2 недели, во дают китайцы!, не умереть бы :( ).
https://www.pololu.com/docs/0j42/all
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение Scorpio » 15 мар 2020, 00:26

dimamichev писал(а):..пока посылка с саморезами идёт

Уже и саморезы у нас не делают?
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 15 мар 2020, 09:55

В городе не нашёл и близко М2*8мм, это как для крепления серв sg90. Вообще вкручивание в печатный пластик, особенно вдоль слоёв, так себе авантюра, клей надёжнее. Да и на трении если размеры по форме подобрать-крепко держаться должен.
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 16 мар 2020, 21:21

Пока такой вариант безголовый вытанцовывается. Морда лица с датчиком препятствия не видится...С анимацией попробовал собирать "гифку"- собирается, но воспроизводить на компе почти нечем.
Вложения
osnova4.png
osnova3.png
osnova2.png
osnova1.png
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 19 мар 2020, 14:30

Решил просто сделать пока печатное шасси без намёка на голову:)
Вложения
osnova.png
0J2125.1200.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 26 мар 2020, 21:12

Для шасси придумал тест-скетч на 6 движений.
Код: Выделить всёРазвернуть
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//ПАУК 3 СЕРВОПРИВОДА ТЕСТ
//
#include <Servo.h>
byte dd=10;//амплитуда ходьбы
byte n=5;// постоянная временного интервала
byte i=0;//счётчик
byte j=0;//счётчик
byte a=90;//угол "серединный"
byte b=90;//угол "серединный"
byte c=95;//угол "серединный"

////////////////////////////
Servo servo_a;
Servo servo_b;
Servo servo_c;

void setup()
{
  servo_a.attach(5);//вывод управления сервоприводом ПРАВАЯ ПАРА
  servo_a.write(a+dd);// установка начального значения
 
  servo_b.attach(6);//вывод управления сервоприводом ЛЕВАЯ ПАРА
  servo_b.write(b+dd);// установка начального значения
 
  servo_c.attach(7);//вывод управления сервоприводом ЦЕНТРАЛЬНАЯ ПАРА
  servo_c.write(c-dd);// установка начального значения
}
/////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
  for(j=0;j<12;j++)//шаги вперёд
  {
vpered();
  }
delay(1000);//пауза
//////////////////
for(j=0;j<12;j++)//шаги назад
  {
nazad();
}
delay(1000);//пауза
//////////////////
for(j=0;j<7;j++)//шаги-разворот влево
  {
levo();
}
delay(1000);//пауза
for(j=0;j<7;j++)//шаги-разворот вправо
  {
pravo();
}
delay(1000);//пауза
///////////////////
for(j=0;j<20;j++)//виляние тушкой на месте
  {
vilanie();
}
delay(1000);//пауза
///////////////////
for(j=0;j<15;j++)//шаги-топтание на месте
  {
na_meste();
}
delay(1000);//пауза
}
/////////////////////////////////////////////////////////////////////////////////////////
void vpered(){
  ///////////// ВПЕРЁД  /////////////
  servo_c.write(c-dd);// установка начального значения
  servo_a.write(a+dd);// установка начального значения
  servo_b.write(b+dd);// установка начального значения
 
  /////////// такт 1 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()-1);
  servo_b.write(servo_b.read()-1);
  delay(n);
  }
  /////////// такт 2 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()+1);
  delay(n);
  }
/////////// такт 3 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()+1);
  servo_b.write(servo_b.read()+1);
  delay(n);
  }
   /////////// такт 4 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()-1);
  delay(n);
  }
}
///////////////////////////////////////////////////////////////////////////////////////
void nazad(){
  ///////////// НАЗАД  /////////////
  servo_c.write(c+dd);// установка начального значения
  servo_a.write(a+dd);// установка начального значения
  servo_b.write(b+dd);// установка начального значения
 
  /////////// такт 1 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()-1);
  servo_b.write(servo_b.read()-1);
  delay(n);
  }
  /////////// такт 2 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()-1);
  delay(n);
  }
/////////// такт 3 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()+1);
  servo_b.write(servo_b.read()+1);
  delay(n);
  }
  /////////// такт 4 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()+1);
  delay(n);
  } 
}
/////////////////////////////////////////////////////////////////////////////////////////
void levo(){
  ///////////// ВЛЕВО /////////////
  servo_c.write(c-dd);// установка начального значения
  servo_a.write(a+dd);// установка начального значения
  servo_b.write(b-dd);// установка начального значения
 
  /////////// такт 1 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()-1);
  servo_b.write(servo_b.read()+1);
  delay(n);
  }
  /////////// такт 2 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()+1);
  delay(n);
  }
/////////// такт 3 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()+1);
  servo_b.write(servo_b.read()-1);
  delay(n);
  }
   /////////// такт 4 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()-1);
  delay(n);
  }
}
///////////////////////////////////////////////////////////////////////////////////////////
void pravo(){
  ///////////// ВПРАВО /////////////
  servo_c.write(c-dd);// установка начального значения
  servo_a.write(a-dd);// установка начального значения
  servo_b.write(b+dd);// установка начального значения
 
  /////////// такт 1 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()+1);
  servo_b.write(servo_b.read()-1);
  delay(n);
  }
  /////////// такт 2 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()+1);
  delay(n);
  }
/////////// такт 3 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()-1);
  servo_b.write(servo_b.read()+1);
  delay(n);
  }
   /////////// такт 4 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()-1);
  delay(n);
  }
}
///////////////////////////////////////////////////////////////////////////////////////////
void na_meste(){
  ///////////// ТОПТАНИЕ НА МЕСТЕ /////////////
  servo_c.write(c-dd);// установка начального значения
 
  /////////// такт 1 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()+1);
  delay(2*n);
  }

   /////////// такт 2 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_c.write(servo_c.read()-1);
  delay(2*n);
  }
}
///////////////////////////////////////////////////////////////////////////////////////////
void vilanie(){
  ///////////// ВИЛЯНИЕ ТУШКОЙ  /////////////
  servo_c.write(c-dd);// установка начального значения
  servo_a.write(a+dd);// установка начального значения

 
  /////////// такт 1 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()-1);
  delay(n);
  }

/////////// такт 2 ///////////
  for(i=0;i<2*dd;i++)
  {
  servo_a.write(servo_a.read()+1);
  delay(n);
  }
 
}
///////////////////////////////////////////////////////////////////////////////////////


Добавлено спустя 6 минут 59 секунд:
Вложения
шасси — копия.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Простая аниматроника на Ардуино

Сообщение dimamichev » 31 мар 2020, 20:57

Пробую разные уровни в одном скетче для создания поведения робота. 1 уровень - простые движения вперёд, назад, на месте и т.д. 2 уровень - сценарий поведения преграда-остановился-отошёл-развернулся-пошёл. 3 уровень - смена сценариев в зависимости от условий, например, каждые 20 сек меняем поведение... А дальше всё?, для 3 серв и датчика препятствий.
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Пред.След.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

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