dimamichev писал(а):танцевал в ритмично-динамичных местах композиции
Где танцы-то под музыку?
Добавлено спустя 3 минуты 18 секунд:
ilalexey писал(а):Вроде оно: http://www.komputer.de/zen/index.php?ma ... cts_id=192
Не открывается.
Технический форум по робототехнике.
dimamichev писал(а):танцевал в ритмично-динамичных местах композиции
ilalexey писал(а):Вроде оно: http://www.komputer.de/zen/index.php?ma ... cts_id=192
dimamichev писал(а):Старшим товарищам понравилось (отредактировали вариант описания конструкции за сутки - второй раз так за многие десятки публикаций)
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};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 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);
}
}
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 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);}
//процедура настройки начального времени – число минут
}
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 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;}//условие смены позы в танце
}
}
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////