Голосование

Гимн :pozor:

И вновь продолжаем позор!
89 (20%)
И снова позорно в груди!
63 (14.2%)
Позор такой молодой
63 (14.2%)
И юный позор впереди!
82 (18.5%)
81 (18.2%)
перечитывать позор - это всё равно что следить за развитием рулона туалетной бумаги :pozor:
66 (14.9%)

Проголосовало пользователей: 256

Автор Тема: Клуб любителей смайлика :pozor: 2  (Прочитано 6677198 раз)

0 Пользователей и 14 Гостей просматривают эту тему.

Оффлайн akl

  • Живу на форуме
  • *******
  • Сообщений: 8114
  • не шарю ваще
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247410 : Марта 05, 2017, 14:01:51 »
eViLL, играй в 1.6 ???

... и добавил:

сервопривод работает как надо :dance:
только вот с батарейкой крона вообще не тянет, при кручении привода проседает питание и в итоге плата просто не может включиться. но с внешним БП норм.

... и добавил:

просто надо плату питать от отдельной батарейки
« Последнее редактирование: Марта 05, 2017, 14:03:43 от akl »

Оффлайн Rolly

  • Живу на форуме
  • *******
  • Сообщений: 9351
  • Мнение - не повод получить пулю сразу.
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247411 : Марта 05, 2017, 15:14:32 »
Есть тут кто к розетке прислонютый? :D

Оффлайн legis14

  • Завсегдатай
  • ***
  • Сообщений: 286
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247412 : Марта 05, 2017, 15:25:01 »
я начал играть в контер страйк го :pozor: кажется я становлюсь полным уродом :pozor: там 10летние дети писклявыми голосами трахают друг друга мамок :pozor:

... и добавил:

помогите мне :oh-no-no:
  :D :D :D, в мьют их кидай и норм,там еще есть поляки)) и читеров навалом :pozor:
« Последнее редактирование: Марта 05, 2017, 15:28:53 от legis14 »

Оффлайн akl

  • Живу на форуме
  • *******
  • Сообщений: 8114
  • не шарю ваще
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247413 : Марта 05, 2017, 15:36:40 »
настроил все три сервоприводы. но возможно придется еще калибровать, т.к. у того который я использовал (один из трех) угол поворота по факту больше 180, и когда он уходит за какой-то предел он начинает безостановочно жужжать, пытаясь куда-то дальше продвинуться. ограничил ему максимальный угол на 160 стало нормально, причем поворачивает он за эти 160 как раз на 180 :pozor:

Оффлайн vira

  • Опытный
  • ****
  • Сообщений: 811
  • музыка-придуманный способ обмана...
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247414 : Марта 05, 2017, 15:40:02 »
 :pozor:

Оффлайн gwynbleidd_2004

  • Эксперт
  • *****
  • Сообщений: 1288
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247415 : Марта 05, 2017, 15:43:40 »
Покупал для неё какие-то провода тоже... 5лет назад :pozor:
а мне по приколу на старом железе сидеть  :pozor:

gwynbleidd_2004, а у тебя че у гитары rca :7:
да причем здесь гитара  :pozor: мне колонки надо подключить  :pozor:

Оффлайн r3d0ut

  • Ветеран форума
  • ******
  • Сообщений: 3837
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247416 : Марта 05, 2017, 15:46:01 »
akl,  :clapping:

Оффлайн NikkiShem

  • Ветеран форума
  • ******
  • Сообщений: 3146
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247417 : Марта 05, 2017, 15:53:55 »
а мне по приколу на старом железе сидеть  :pozor:
Да я и не говорю ничего в плане "старое/новое". У самого креативовская звуковуха, которую вроде как уже и не выпускают. :pozor:

Оффлайн akl

  • Живу на форуме
  • *******
  • Сообщений: 8114
  • не шарю ваще
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247418 : Марта 05, 2017, 15:56:03 »
r3d0ut, а если мне надо оператор, который будет тру только если одно из нескольких условий верно, можно написать вот так? :hmmm:

fire_on = ((digitalRead(8) || digitalRead(9)) || (digitalRead(10) || digitalRead(11)));
типа если хотя бы один пин горит, то оператор включен.

и можно ли вот так, если помимо одного из пинов должен быть включен еще один оператор?
fire_on = (((digitalRead(8) || digitalRead(9)) || (digitalRead(10) || digitalRead(11))) && pin4);

... и добавил:

 8)
8 :pozor:

Оффлайн Rolly

  • Живу на форуме
  • *******
  • Сообщений: 9351
  • Мнение - не повод получить пулю сразу.
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247419 : Марта 05, 2017, 16:04:00 »
NikkiShem, мне тут вопрос задали, на каком языке поют Gypsy Kings, я покопался, похоже на испанском, но на каком-то диалекте, некоторые правила произношения не соблюдают... Ты вроде говорил, что Офанкилло тоже таким балуются :pozor:

... и добавил:

fire_on = ((digitalRead( :pozor: || digitalRead(9)) || (digitalRead(10) || digitalRead(11)));
типа если хотя бы один пин горит, то оператор включен.

и можно ли вот так, если помимо одного из пинов должен быть включен еще один оператор?
fire_on = (((digitalRead( :pozor: || digitalRead(9)) || (digitalRead(10) || digitalRead(11))) && pin4);

:pozor: :pozor: :pozor:

... и добавил:

Вспомнил "Олебяки" :pozor:
« Последнее редактирование: Марта 05, 2017, 16:05:56 от Rolly »

Оффлайн akl

  • Живу на форуме
  • *******
  • Сообщений: 8114
  • не шарю ваще
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247420 : Марта 05, 2017, 16:10:23 »
нет, пин4 там не нужен вот так пусть будет
fire_on = ((pin8 || pin9) || (pin10 || pin11));

Оффлайн r3d0ut

  • Ветеран форума
  • ******
  • Сообщений: 3837
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247421 : Марта 05, 2017, 16:20:49 »
akl, в принципе, да

fire_on = ((digitalRead(8) || digitalRead(9) || digitalRead(10) || digitalRead(11)) && pin4);
Но:
Во-первых, digitalRead() возвращает не bool, и я не уверен, как эти типы приводятся :pozor:
Во-вторых, логическое или не вычисляет следующее выражение, если предыдущее уже верно. Здесь это неважно, но имей в виду, если будешь использовать в будущем.
Если digitalRead(8) окажется верным, то digitalRead(9) и прочие выполняться не будут :pozor:

Оффлайн akl

  • Живу на форуме
  • *******
  • Сообщений: 8114
  • не шарю ваще
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247422 : Марта 05, 2017, 16:34:05 »
r3d0ut, я ввел булевые пин8-11 и вот так написал
  fire_on = ((pin8 || pin9) || (pin10 || pin11));

кстати, заработало уже - сделал систему поочередного поджига запалов с предохранителем - работает так -
сначала надо нажать кнопку "старт", она на 3 секунды поджигает пин4, который будет потом светодиодом светить типа "заряжено", за эти 3 секунды пока он горит надо нажать на кнопку запуска ракет, тогда при условии что все запальные пины выключены, на одну секунду загорится один из запалов по очереди по кругу (там прибавляется через формулу с %)

Оффлайн r3d0ut

  • Ветеран форума
  • ******
  • Сообщений: 3837
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247423 : Марта 05, 2017, 16:41:03 »
зачем там столько скобок :pozor:

Оффлайн akl

  • Живу на форуме
  • *******
  • Сообщений: 8114
  • не шарю ваще
Re: Клуб любителей смайлика :pozor: 2
« Ответ #247424 : Марта 05, 2017, 16:51:11 »
зачем там столько скобок :pozor:
а можно без скобок? я просто думал что это || только попарно работает :pozor:



вот текущая программа, все работает вроде :pozor:


#include <Servo.h>  // библиотека управления сервоприводами

// имена для сервоприводов
Servo servoX;
Servo servoY;
Servo servoZ;

// булевые триггеры пинов
boolean pin7 = false; 
boolean pin4 = false;
boolean pin8 = false;
boolean pin9 = false;
boolean pin10 = false;
boolean pin11 = false;

// засечки времени
unsigned long time_s = millis();
unsigned long time_z = millis();
unsigned long time_f = millis();

// триггер активности запальных пинов
boolean fire_on = false;
int zapal = 0; // счетчик запальных пинов

// отслеживают положения сервоприводов
int x = servoX.read();
int y = servoY.read();
int z = servoZ.read();

// кучка пустых переменных - пришлось добавить из-за бага с компиляцией на винХП - помогло
int aa;
int ab;
int ac;
int ad;
int ae;
int af;
int ag;
int ah;


void setup() {
  //назначения пинов
  pinMode(7, OUTPUT);
  pinMode(4, OUTPUT);

  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);

  // назначение сервоприводов и исходных положений
  servoX.attach(5);
  servoX.write(75);
  servoY.attach(6);
  servoY.write(75);
  servoZ.attach(3);
  servoZ.write(5);

  // запуск блютуса
  Serial1.begin(9600);
  while (!Serial1) {;}
}

void loop() { 
  // засекают текущие положения приводов
  x = servoX.read();
  y = servoY.read();
  z = servoZ.read();

  // засекают текущие состояния пинов
  pin7 = digitalRead(7);
  pin4 = digitalRead(4);
  pin8 = digitalRead(8);
  pin9 = digitalRead(9);
  pin10 = digitalRead(10);
  pin11 = digitalRead(11);

  // 1 если хоть один из запальных пинов активен
  fire_on = ((pin8 || pin9) || (pin10 || pin11));

  // таймер автоотключения пина готовности пуска
  if (millis() - time_s > 3000 && pin4) {
    digitalWrite (4, LOW); }
  // таймер автовозвращения привода Z
  if (millis() - time_z > 1000 && z > 45) {
    servoZ.write(5); }
  // таймер автоотключения всех запальных пинов
  if (millis() - time_f > 1000 && fire_on) {
     digitalWrite(8, LOW);
     digitalWrite(9, LOW);
     digitalWrite(10, LOW);
     digitalWrite(11, LOW);  }

  // пока поступают сигналы через блютус
  while (Serial1.available() > 0) {
    char cmd = Serial1.read(); // считывает команду

    // циклически вкл-выкл лазерный пин
    if (cmd == 'A') {
      digitalWrite (7, !pin7);}

    // вкл. пин готовности пуска и засечка времени
    else if (cmd == 'S') {
      digitalWrite (4, HIGH);
      time_s = millis(); }

    // кручение сервопривода Х
    else if (cmd == 'L') {
      if (x < 160) { servoX.write(x + 1); }
      else { servoY.write(y - 1); } }
    else if (cmd == 'R') {
      if (x > 0) { servoX.write(x - 1); }
      else { servoY.write(y + 1); } }

    // кручение сервопривода Y
    else if (cmd == 'U') {
      if (y < 150) { servoY.write(y + 1); }
      else { servoY.write(y - 1); } }
    else if (cmd == 'D') {
      if (y > 20) { servoY.write(y - 1); }
      else { servoY.write(y + 1); } }   

    // запуск сервопривода Z
    else if (cmd == 'Z') {
      servoZ.write(90);
      time_z = millis(); }

    // запускает текущтй запальный пин, переводит счетчик на следующий и засекает время
    else if (cmd == 'F' && !fire_on && pin4) {
      digitalWrite((8 + zapal), HIGH);
      zapal = ((zapal + 1) % 4);
      time_f = millis(); }
   
    }
 delay(10);
}

... и добавил:

хочу еще сделать регулировку скорости приводов, чтобы можно было менять режим между +-1 градус и +-5 например типа точный/резкий

... и добавил:

и после этого еще останется одна свободная кнопка :hitrez:
« Последнее редактирование: Марта 05, 2017, 16:56:27 от akl »