Сворачиватель окон digispark с мини usb и hc-sr04

Тема в разделе "Посоветуйте детальки", создана пользователем Avas185, 18 дек 2021.

  1. Avas185

    Avas185 Гик

    Здравствуйте, все наверно знают этот ролик.
    Код (C++):

    #define FREQ 10               // частота генератора отправки данных
    #define KEY_PRESS KEY_D       // какая кнопка будет нажата
    #define MODIFIER MOD_GUI_LEFT // модификатор (кнопка win (gui))

    #define ATTEMPTS 3      // количество попыток распознать
    #define DEADZONE 8000   // мёртвая зона
    #define CLOSE_TIMEOUT 10000 // таймаут срабатывания
    #define RADIO_PIN 0     // пин P0
    #include "DigiKeyboard.h"

    byte counter = 0;
    uint32_t pulse = (long)1000000 / FREQ / 2;
    uint32_t toutTimer;

    void setup() {
      //Serial.begin(9600);
    }

    void loop() {
      long thisPulse = pulseIn(RADIO_PIN, HIGH, (long)pulse * 3);
      if (thisPulse < pulse + DEADZONE &&
          thisPulse > pulse - DEADZONE) {
        if (++counter >= ATTEMPTS) {
          //Serial.println("good!");
          if (millis() - toutTimer >= CLOSE_TIMEOUT) {
            toutTimer = millis();
            palundra();
          }
          counter = 0;
        }
      } else {
        //Serial.println("bad!");
        counter = 0;
      }
      //Serial.println(pulseIn(2, HIGH, (long)pulse * 3));
    }

    void palundra() {
      DigiKeyboard.sendKeyPress(KEY_PRESS, MODIFIER);
      DigiKeyboard.delay(100);
      DigiKeyboard.sendKeyPress(0);
    }
     


    Кто может его переделать под HC-SR04 подключения через провод без аудио модулей.
     
  2. Airbus

    Airbus Радиохулиган Модератор

    Как это кто? Гайвер может!
     
  3. Avas185

    Avas185 Гик

    это понятно а кто еще
     
  4. vvr

    vvr Инженерище

    дядьки на всех форумах только и сидят и смотрят гайвера)))))
     
  5. Avas185

    Avas185 Гик

    Так кто может переделать ???
     
  6. Bott

    Bott Гик

    Переведи на русский эту фразу
    Что подключить? Куда подключить? Зачем провода? Какие там Аудиомодули?
     
  7. parovoZZ

    parovoZZ Гуру

    Без малейшего понятия.
    Радиоклава в помощь.
     
  8. Avas185

    Avas185 Гик

    Неужели не понятно что я хочу убрать аудио приемник и передатчик. hc-sr04 подключить напрямую к digispark с мини usb
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Да ты чо? Кто не знает Гайвера? Саню знают все!
    Я дак тоже не понял. Убрать радиоканал? А смысл?
     
  10. Avas185

    Avas185 Гик

    будет стоять на столе в неприметном месте
     
  11. Airbus

    Airbus Радиохулиган Модератор

    Уз дальномер присобачить к digispark?
     
  12. Avas185

    Avas185 Гик

    угу
     
  13. Airbus

    Airbus Радиохулиган Модератор

    Я вечером покопаюсь но проверить не смогу у меня digispark не установлен в IDE. Так что это уже—самому
     
  14. Avas185

    Avas185 Гик

    спасибо, сочетания клавиш ctrl+alt+d
     
  15. ZAZ-965

    ZAZ-965 Гуру

    Во-первых, сочетание Win+D. Во-вторых, это сочетание сворачивает\разворачивает открытые окна, поэтому проще использовать Win+M (свернуть окна) или Win+L (заблокировать компьютер).
     
  16. Avas185

    Avas185 Гик

    на линуксе свои сочетания
     
  17. Airbus

    Airbus Радиохулиган Модератор

    Проверяй
    Код (Text):
    //При приближении включается Полундра
    #include "DigiKeyboard.h"
    #define Trig 1//TX
    #define Echo 0//RX
    #define KEY_PRESS KEY_D       // какая кнопка будет нажата
    #define MODIFIER MOD_GUI_LEFT // модификатор (кнопка win (gui))

    int impulseTime=0;
    int distance_sm=0;
    int dist= 50; //Заданная дистанция
    void setup()
    {
      pinMode(Trig, OUTPUT); //инициируем как выход
      pinMode(Echo, INPUT); //инициируем как вход
    }

    void loop()
    {
      digitalWrite(Trig, HIGH);
      // Подаем импульс на вход trig дальномера
      delayMicroseconds(10); // равный 10 микросекундам
      digitalWrite(Trig, LOW); // Отключаем
      impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса
      distance_sm=impulseTime/58; // Пересчитываем в сантиметры
         if (distance_sm < dist) // Если расстояние менее dist то Полундра
      {    
      DigiKeyboard.sendKeyPress(KEY_PRESS, MODIFIER);//Полундра!!!!
      DigiKeyboard.delay(100);
      DigiKeyboard.sendKeyPress(0);
        }
       delay(500);
        /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего.
       Это время называется периодом цикла (cycle period).Рекомендованный период между импульсами должен быть не менее 50 мс.  */
       }
     
  18. Airbus

    Airbus Радиохулиган Модератор

    Это в библиотеке "DigiKeyboard.h"
    Её у меня нет так что если что-сам смотри и правь под нужные команды
     
  19. Avas185

    Avas185 Гик

    работает но если человек или дверь рядом то постоянно срабатывает
     
  20. Airbus

    Airbus Радиохулиган Модератор

    В смысле? Измени расстояние сработки—измени dist сколько сантиметров надо столько и укажи. Или еще что то?