roboforum.ru

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

Вопросы новичка.

Re: Вопросы новичка.

Madf » 18 мар 2017, 12:28

dimamichev писал(а):танцевал в ритмично-динамичных местах композиции

Где танцы-то под музыку? :Bravo:

Добавлено спустя 3 минуты 18 секунд:
ilalexey писал(а):Вроде оно: http://www.komputer.de/zen/index.php?ma ... cts_id=192

Не открывается.

Re: Вопросы новичка.

ilalexey » 18 мар 2017, 12:37

Madf писал(а):Не открывается.

У меня открывается.
Вложения
Flower-soic-black.jpg
Flower-soic-04.jpg

Re: Вопросы новичка.

dimamichev » 18 мар 2017, 16:39

Спасибо за советы. Буду пробовать переделывать на будущее... С танцами (и видео),.. вчера мучили человечка часа два, терзали три версии скетча,.. сегодня поломал,занялся кубиком с кнопкой (тренируюсь с аппаратным прерыванием). Под настроение как нибудь снимем...

Re: Вопросы новичка.

Dmitry__ » 18 мар 2017, 18:58

dimamichev писал(а):Старшим товарищам понравилось (отредактировали вариант описания конструкции за сутки - второй раз так за многие десятки публикаций)

Вот это прям так и ушло в печать? Сильно :shock: :D
dimamichev писал(а):int tabl[120]={1,1,0,0, 0,0,0,0, 1,1,0,0, 0,0,0,0, 0,0,1,1, 0,0,0,0, 0,0,1,1, 1,1,0,0, 0,0,1,1, 1,1,0,0,
                        1,0,1,0, 0,1,0,1, 1,0,1,0, 0,1,0,1, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,1,1,0, 1,0,0,1, 0,0,0,0,
                        0,1,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 0,1,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 1,0,1,0, 0,1,0,1};

Re: Вопросы новичка.

dimamichev » 18 мар 2017, 20:03

Не..ее, ушла более простая версия...Во такая... Дим, ну напиши, я прочту, как надо начинающим.
Код: Выделить всёРазвернуть
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//Программа акустического переключения танцующего человечка//
unsigned int  x=0;

void setup()   
   {
          pinMode(6, OUTPUT); //канал сигнала для левой руки /
          digitalWrite(6,LOW);       
          pinMode(7, OUTPUT); //канал сигнала для правой руки /
          digitalWrite(7,LOW);     
          pinMode(8, OUTPUT); //канал сигнала для левой ноги /
          digitalWrite(8,LOW);   
          pinMode(9, OUTPUT); //канал сигнала для правой ноги /
          digitalWrite(9,LOW); 
         
        pinMode(A0, INPUT); // подключение датчика/
   }
        void loop()
      {
       
x=analogRead(A0);
if (x<=650)//если звуковой сигнал получен...
{
  digitalWrite(6,random (0,2));//псевдослучайно меняем логическое состояние выходов...
  digitalWrite(7,random (0,2));
  digitalWrite(8,random (0,2));
  digitalWrite(9,random (0,2));
  delay(300);
  }     
 
       }
   
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Весело, ох весело.., а как надо???

Re: Вопросы новичка.

dimamichev » 20 мар 2017, 22:47

:durak: Возникло желание переделать под Ардуино управление старую поделку - одноглазого и одномоторного "пограничника" (рис...), шаркающего вдоль черно-белой границы полигона. Как альтернативу Н-мосту выбрал реле на 5 В с током срабатывания в 40мА. За счёт резистора и гистерезиса ток удержания составляет всего 15 мА...Сколько не пробовал мосты на биполярных транзисторах "сквознячки" составляли всегда 15-40мА. Может я чего не учитываю?
Вложения
внешний вид 2.JPG
схема отшельник пограничник.jpg

Re: Вопросы новичка.

dimamichev » 23 мар 2017, 18:11

Завершая свой нулевой курс "самообучения Ардуине" сделал по подобию часы (мои нижние)...Точность "кварцевая" конечно будет не ах, но думаю, можно как то корректировать (программно и по обстоятельствам)...Вообщем, перевожу меня в первый класс - буду "асваивать" библиотеки, шаговики, сервы и т.д. и т.п.
Код: Выделить всёРазвернуть
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа №2 для часов на микроамперметре//
int  n=0;
int  k=0;
int  k1=0;
int  j=0;
int  j1=0;
long y1=0;
long y2=0;
long y3=0;
void setup()
{
pinMode(6, OUTPUT);//канал для отсчёта часов и минут
digitalWrite(6,LOW);
pinMode(4, OUTPUT);//канал- указатель индикации
digitalWrite(4,LOW);
pinMode(5, INPUT);//канал начальных установок времени
}

void loop() 
{
y2=millis();

if(y2-y1>=60000){k++;y1=y2;}//условие отсчёта минут
if(k==60){k=0;j++;}//условие отсчёта часов
if(j==24){j=0;}//условие обнуления числа часов за сутки

if(y2-y3>=10000&n==1){n=0;y3=y2;k1=map(k,0,60,0,255);analogWrite(6,k1);}
//условие индикации числа минут

if(y2-y3>=10000&n==0){n=1;y3=y2;j1=map(j,0,24,0,255);analogWrite(6,j1);}
//условие индикации числа часов

digitalWrite(4,n);//указатель для индикации часов, минут

if(digitalRead(5)==HIGH&n==1){j++;if(j==24){j=0;}
j1=map(j,0,24,0,255);analogWrite(6,j1);delay(200);}
//процедура настройки начального времени - число часов

if(digitalRead(5)==HIGH&n==0){k++;if(k==60){k=0;}
k1=map(k,0,60,0,255);analogWrite(6,k1);delay(200);}
//процедура настройки начального времени – число минут
}
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Вложения
podborkq.jpg
IMG_6264.JPG

Re: Вопросы новичка.

dimamichev » 01 апр 2017, 21:48

Переделал индикатор человечка на светодиоды 10мм, на макетку паечную с шагом отверстий в 2,5 мм. Добавил к динамике переключения смену яркости свечения. Как обещал, выкладываю ролик...
Вложения
IMG_6275.JPG
IMG_6274.JPG

Re: Вопросы новичка.

Madf » 02 апр 2017, 11:43

"Это видео недоступно."

Re: Вопросы новичка.

dimamichev » 02 апр 2017, 11:56

Странно... Попробовал с форума... работает. Вот ссылка - https://youtu.be/OmM7wCrEclc

Re: Вопросы новичка.

Madf » 02 апр 2017, 16:25

Это видео недоступно.

ps: ничего странного, у хозяина через куки рега доступна :)

Re: Вопросы новичка.

dimamichev » 02 апр 2017, 17:35

Вроде поправил - "аборигена съели куки"

Re: Вопросы новичка.

Madf » 03 апр 2017, 09:44

во, теперь показывает...выглядит круто по началу, а вот потом как-то однообразно становится, надо как-то увеличить количество комбинаций движений или не изобретать велосипед и просто поставить матрицу 8х8 :)

Re: Вопросы новичка.

dimamichev » 03 апр 2017, 15:40

Да,! томит даже не кол-во поз человечка - одинаковость времени переключения.Сейчас код подправил чуть:
Код: Выделить всёРазвернуть
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа акустического переключения танцующего человечка//
unsigned int  x=0;
unsigned int  k=0;
unsigned int  i=0;
unsigned int  z=10;


int tabl[120]={1,1,0,0, 0,0,0,0, 1,1,0,0, 0,0,0,0, 0,0,1,1, 0,0,0,0, 0,0,1,1, 1,1,0,0, 0,0,1,1, 1,1,0,0,
                        1,0,1,0, 0,1,0,1, 1,0,1,0, 0,1,0,1, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,1,1,0, 1,0,0,1, 0,0,0,0,
                        0,1,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 0,1,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 1,0,1,0, 0,1,0,1};// данные для поз человечка
void setup()   
   {
          pinMode(6, OUTPUT); // ШИМ канал сигнала для левой ноги /
          digitalWrite(6,LOW);       
          pinMode(7, OUTPUT); //цифровой канал сигнала для левой ноги /
          digitalWrite(7,LOW);     
          pinMode(8, OUTPUT); //цифровой канал сигнала для правой ноги /
          digitalWrite(8,LOW);   
          pinMode(9, OUTPUT); //ШИМ канал сигнала для правой ноги /
          digitalWrite(9,LOW); 
          pinMode(2, OUTPUT); //цифровой канал сигнала для левой руки /
          digitalWrite(2,LOW);       
          pinMode(3, OUTPUT); //ШИМ канал сигнала для левой руки /
          digitalWrite(3,LOW);     
          pinMode(4, OUTPUT); //цифровой канал сигнала для правой руки /
          digitalWrite(4,LOW);   
          pinMode(5, OUTPUT); //ШИМ канал сигнала для правой руки /
          digitalWrite(5,LOW); 
          pinMode(10, OUTPUT); //ШИМ канал сигнала для туловища /
          digitalWrite(10,LOW); 
         
         
          pinMode(A0, INPUT); // подключение датчика/
         
       
   }
        void loop()
      {
       
x=analogRead(A0);// считывание данных с датчика

if (x<=650)//если звуковой сигнал получен...

{
  if(x>=250&x<=450){z=255;k=k+3;}//если сигнал сильный...
  if(x>450&x<=550){z=50;k=k+2;}//если сигнал средний...
  if(x>550){z=10;k=k+1;}//если сигнал слабый...
  if(i>=120){i=0;}//условие запрета на выход за границы массива
  digitalWrite(2,tabl[i]);digitalWrite(4,tabl[i+1]);digitalWrite(7,tabl[i+2]);digitalWrite(8,tabl[i+3]);//по таблице (массиву) меняем логическое состояние выходов...
  if(tabl[i]==0){analogWrite(3,z);}else{analogWrite(3,255-z);}
  if(tabl[i+1]==0){analogWrite(5,z);}else{analogWrite(5,255-z);}
  if(tabl[i+2]==0){analogWrite(6,z);}else{analogWrite(6,255-z);}
  if(tabl[i+3]==0){analogWrite(9,z);}else{analogWrite(9,255-z);}
  analogWrite(10,z);
   delay(30);
  if (k>=12){i=i+4;k=1;}//условие смены позы в танце
}     
 
       }
   
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Но всё равно монотонно получается...Что касается матрицы. 8*8 маловато для человечка даже в 16 позах. Даже смайлик скромненький.
Получилось бы наверное, в матрице 16 на 16, но с Ардуино УНО у меня пока "жабры коротки". Сын предложил сделать в 3D "по технологии LED куба" индикатор на N позиций, но пока тоже мысли в разброде...
Вложения
ID870_LRG.jpg

Re: Вопросы новичка.

dimamichev » 04 апр 2017, 17:40

Надумал пока в плане усиления динамики "танцОв" видоизменить индикатор (сиамские близнецы) - двигать туловище танцора... Да и в программе надо отказаться от использования массива, а задавать вид поз в зависимости от темпо-громкости "данной музыки". Буду в свободное время экспериментировать.
Вложения
танцующий человечек.jpg


Rambler\'s Top100 Mail.ru counter