Сферробот или колобочек

А сам шарик такой откуда?


На али продают как контейнеры-шары на ёлку.

1 лайк

ИК приёмник будет ловить сигналы сразу от двух кнопок, получится чехарда, а не код кнопки.

ИК? Ну тогда не знаю…

Пробовал разные пульты - от телека, муз. центра, проектора, дивиди старого. По фигу всё читает приёмник на 38 кГц и соответственно мешают друг другу пульты. Тогда вспомнил, что на этой же библиотеке можно сделать самодельный пульт с выставляемой частотой. Сделал, менял частоты - 36,38,40. Всё ровно, код кнопки нажать-отпустить читается приёмником без ошибок. Получается частоты несущие для красоты?
скетч пульта:

#include <IRremote.h>
//ИК-светодиод должен быть подключен к ШИМ-контакту 3 Arduino. 
IRsend irsend;
int khz = 38; // Несущая частота 38 кГц
 unsigned int irSignal_1[] = {3250,650,1000,750,1000,750,1000,1350,500,1350,500,1400,500,750,1000,750,1000,750,1000,1350,450}; //ВПЕРЁД 9F4FDCF9
 unsigned int irSignal_0[] = {3250,1350,400,850,950,800,950,800,950,1400,450,1400,450,800,950,850,900,850,900,1400,500}; //СТОП 9E614B1D
 int fl=0;//
 
void setup()
{
 pinMode(8, INPUT);//кнопку подключить
 digitalWrite(8, HIGH);// включить подтягивающий резистор к ней  
}

void loop() {
 
 if(fl!=1&&digitalRead (8)==LOW){
  irsend.sendRaw(irSignal_1, sizeof(irSignal_1) / sizeof(irSignal_1[0]), khz); //ВПЕРЁД  отсылаем 9F4FDCF9
  fl=1;//
 }
 if(fl!=0&&digitalRead (8)==HIGH){
   irsend.sendRaw(irSignal_0, sizeof(irSignal_0) / sizeof(irSignal_0[0]), khz); //СТОП отсылаем 9E614B1D
  fl=0;//
 }
  delay(10); //
}

Нужно не частоту менять, а разный набор кодов кнопок.

Нет, смысл в чём: два сферробота, два пульта, одновременное нажатие кнопок ломает код восприятия. Скажем первому вперёд это 11111111, второму 22222222, а в итоге оба получают 12123333 :slight_smile:

Откуда берется 1213333?
Я в формате сообщений не разбирался, но, судя по всему, передается двадцать одно 12-разрядное число. При частоте 38 кГц время передачи сигнала - менее 7 мс. Вероятность “одновременно” довольно низкая. И, если это все-таки случится, команды попросту будут проигнорированы. А потеря части команд - штатный режим работы пульта.
Так в чем проблема?

Проблема в том, что одновременное воздействие двух пультов на ИК приёмник приводит к совершенно случайным кодам получаемых команд. Плюс в варианте скетча робота предусмотрен режим удержания кнопки - пока жмём команда выполняется, отпустили или потеряли связь, или потеряли часть команд - остановка. Думал, что соседние частоты приводят к игнорированию приёмником приёма.

  1. Очевидно, что приемник должен игнорировать случайные коды.
  2. Жмем - автоповтор. Как правило, темп автоповтора не превосходит темп пулемета - 10 команд в секунду. Итого: сама команда 7 мс, интервал между командами 93 мс. Т.е. теряться даже в худшем случае будет не более 8% команд. Что приемлемо.
  3. А как они могут игнорироваться, если передаются по единственному каналу.
  1. Скетч их игнорирует, а приёмник принимает :slight_smile:
  2. При нажатой кнопке вражеского пульта команды или не проходят, или искажаются в коде.
  3. Мне казалось, что приёмник на данной частоте только воспринимает сигналы.

Для начала надо бы выяснить, что это за частота. Если “частота модуляции”, то да, она позволяет отселектировать сигнал частотно-зависимыми цепями. Если же это частота цифровой передачи данных - то - нет.

Повторюсь: я в формате сообщений не разбирался, поэтому мог изложить лишь предположения либо общие рекомендации. Для более предметного разговора нужно хотя бы снять осциллограмму выходного сигнала.

:slight_smile:
Прочитал наконец википедию.
Обычно в пультах используется одна частота модуляции несущей (то есть частоты излучения ИК-светодиода) — на неё настроен и пульт, и приёмник. Частоты модуляции обычно стандартны — это 36 кГц, 38 кГц, 40 кГц (Panasonic, Sony). Редкими считаются частоты 56 кГц (Sharp). Фирма Bang & Olufsen использует 455 кГц, что является большой редкостью. Использование приёмника с частотой модуляции, не точно совпадающей с частотой передатчика, не означает, что он не будет принимать — приём останется, но его чувствительность может очень сильно упасть.