Как понять программно какой физический предмет рядом?
- Войдите на сайт для отправки комментариев
Всем здравствуйте!
Хочу сделать небольшую игрушку и столкнулся с такой задачей:
Есть 10 физических кубиков, каждый имеет свой уникальный номер [1][2][3][4][5][6][7][8][9][10]
Скажем я поставил несколько кубиков в определённом порядке относительно друг друга, [5][2][1][4]
Как узнать в каком порядке стоят кубики, имею виду программно получить их значения? Понятно, что им нужна какая то метка, чтобы они общались с друг другом и сообщали, какие кубики рядом и в каком они порядке стоят, возможно для этого потребуется какой-то главный блок/стартовый, это возможно.
Можно сделать сложную схему типа в каждый засунуть блютуз или RFID метку и ридер и тд, но это дорого получится, нужен какой-то бюджетный вариант, может по принципу адресной светодиодной ленты, только в ней мы можем обращаться к отдельному светодиоду, а тут нам нужно в обратном порядке, получить значение светодиодов или ID светодиода рядом.
Есть вариант размещать кубики на какой-то поверхности, под которой будет какой-то считыватель, но получится ли сделать бюджетную версию?
Уже всю голову сломал)
Что такое "бюджетная версия"?
Кому-то и Канары - дешевка...
Камера, машинное зрание, мини-компьютер. В 10к уложиться можно.
Чем дешевле тем лучше, 5-10 центов на 1 кубик будет более или менее
Думал об это варианте, сложно получается, поэтому и написал про адресную лед ленту
6 рублей на кубик? Надо вызывать Амаяка Акопяна с его ахалаем-махалаем.
Адресная лента на шт даже дешевле стоит )) Амаяк не отвечает, пробовал ))
Вы всё сами и придумали!-берём 10 кубиков в них по адресному светодиоду и кнопке(и) и... виртуально передвигаем - обмениваясь уникальным цветом меж любой парой. При этом программа уже догадывается где какой кубик.
Это тоже с машинным зрением? Или иначе, что-то не уловил мысль
Чем дешевле тем лучше, 5-10 центов на 1 кубик будет более или менее
Это шутка, наверно
Или иначе, что-то не уловил мысль
Виртуально - физически кубики неподвижны, обмениваясь цветом свечения как бы меняются местами. Просто иллюзия-игрушка.
Есть вариант размещать кубики на какой-то поверхности, под которой будет какой-то считыватель, но получится ли сделать бюджетную версию?
В каждый из кубиков встроить по резистору с разными номиналами, контакты от резистора вывести на дно кубика. Сами кубики ставить "на какой-то поверхности", куда выведены контакты для считывания. Измерив сопротивление - знаем кубик какого "номинала" установлен.
А это вариант, спасибо! Было бы идеально, если бы это было по воздуху, без контактов
По воздуху без контактов и за 5-10 центов???
Можно дно кубиков окрасить в разные цвета. Существуют модули распознавания цвета, правда, я не знаю сколько цветов они могут распознавать. Но как минимум 6 умеют, так как когда-то видел видео, как на лего делали аппарат для сборки кубика рубика и там использовался подобный принцип, чтобы распознать положение цветов на кубике.
Хмм нужно будет поискать, что за модули. Ну возможно до 30 центов, есть какие варианты?
Ну вы же должны понимать, что за такие деньги никакую беспроводную электронику в кубик не запихать (RFID метка вам не подходит). Т.е. кубики должны быть "пассивными", а различать их следует разве что по отличию их физических свойств.
Много вы знаете физических свойств твердых предметов, к тому же более-менее легко поддающихся измерению? Размеры, вес, цвет, температура, электропроводность, ну еще в некоторой степени материал. Все остальное, типа радиоактивности, твердости, прочности и т.п., никак не подходит.
Но главная проблема в другом - выбранное свойство должно отличаться во всех 10 кубиках, и отличаться настолько, чтобы можно было с уверенностью различать один кубик от другого.
Сдается мне, что "игрушка" в мелкосерии. Для единичного экземпляра давиться в 10 центов нормальный человек не будет.
Мне тоже так сдается, иначе центы бы не считали.
Но тема интересная. Вот, что еще вспомнил.
Когда-то очень давно в каком-то журнале (Юный техник или что-то подобное) помню была статья (даже две, ее потом напечатали еще раз лет через десять в другом выпуске). В ней была самоделка зайца на движущейся тележке. Заяц был привередливым - когда ему пихали в рот "морковку", то он двигался вперед, если же "перец", то назад. В "овощах" не было никакой электроники, просто в конце вмонтированы кусочки разного металла (железо и медь кажется). А рот зайца представлял из себя катушку на кольце с зазором. Когда в зазор попадал разный металл, по разному изменялась индуктивность катушки, на что реагировала схема.
Можно пойти по этому пути. Но и тут проблемы. Сложно подобрать 10 разных материалов для кубиков. Ну и близкое их расположение скорее всего будет влиять на соседние контуры.
Если вделать в дно кубиков таблетки от домофонных ключей, а на поверхности разместить "лузы" считывателей, то можно задать уникальные идентификаторы любому числу кубиков -хоть тысяче - и причем весьма бюджетно, поскольку китайская домофонная таблетка оптом стоит примерно 15 рублей - 25 центов
Зачем Даллас и его контакты?
RFID брелок тоже примерно столько же стоит.
Да интересный вариант, но столько металлов действительно не найти, у меня была мысль использовать датчики холла и в кубик встраивать магнит, либо выше либо ниже к основанию кубика, так же магниты можно было бы брать разной силы и на основании данных величины магнитного поля, можно было бы определять, какой кубик стоит на поверхности, но тут тоже есть свой минус, такой же и в конструкции с резисторами, для измерения показателей нужны аналоговые контакты, а их у нас на нанке всего 8. А если кубиков будет больше, то это уже проблема.
Нормальная мысль с магнитами, надо ее просто нормально додумать и внести необходимые ограничения.
Да, я тоже думал рабочий вариант, но только вот не знаю получится ли на 1 линию дата, тоесть на 1 PIN ардуины параллельно кинуть несколько датчиков холла, и снимать данные пошагово, поставили первый кубик посмотрели, ага кубик 1, запомнили, на второй датчик поставили другой кубик, данные изменились, ага это кубик 5 и ТД.
Ну вот вам для затравки, 4 магнита это 4 бита кода, они могут определить 15 разных кубиков.
Ну вот вам для затравки, 4 магнита это 4 бита кода, они могут определить 15 разных кубиков.
Я не настолько силён в программировании и технике, можно подробней?
Есть у вас полоса, где разграничены сколько-то там мест под кубики. Под каждым разграниченным местом стоит 5 д. холла, один фиксирует, что кубик поставлен правильно, остальные задают его код.
С одной стороны кубика, могут быть установлены 4 магнита + еще один магнитик, чтобы квадрат четко позиционировался на свое место. Установленный магнитик читается как единица, например, неустановленный наоборот. Для 4-х кодовых магнитов возможно определить 16 комбинаций, для 5-х кодовых - 32. для 6 - 64.
Вообще, может быть по своему закодирована каждая сторона кубика. лишь бы поля магнитов не мешали друг другу (и не только читать, но и ставить кубики рядом)
д. Холла каждого места кубика связаны со своим сдвиговым регистром, дальше все просто. Читаются регистры и выводится информация, если кубик стоит правильно выдается его код, если неправильно - знак вопроса, например.
Что-то типа умной азбуки на такой штуке довольно легко построить.
То есть 10 кубиков = 50 датчиков холла, соответственно, нужно 50 аналоговых пинов, чтобы их считать верно? И зачем по 5 шт? Не получится обойтись 1 на каждый кубик и по 1 магниту на разном уровне высоты от дна кубикк до датчика?
А тогда можно проще, 10 кубиков по 1 литру, 10 уз датчиков и нижняя грань на разной высоте внутри кубика.
нет, не верно. д. холла бывают цифровые и аналоговые, у меня речь идет о цифровых, т.е. они только чуют есть магнит или нет. Чтобы для вашей задачи считать значение 50-100 цифровых датчиков через регистры нужно всего 2-3 цифровых ноги ардуино.
В порядке бреда: под кубики есть посадочные места, подаём поочерёдно на контакты напряжение, снимаем частоту. На NE555 сделать, например. Разнести кубики по частотам - их тыщи можно сделать.
подаём поочерёдно на контакты напряжение, снимаем частоту
Я предлагал просто резисторы ставить, но ТС хочет без контактов.
А чем плох такой вариант? Без контактный и датчиков в куб не надо.
В кубик катушку с конденсатором. У LC контура каждого кубика своя резонансная частота. Под кубиком катушка магнитно связанная с кубиками. Измеряем частоту резонанса.
Всем спасибо за варианты! Конструкция с уз датчиками пока не совсем понятна, не работал с ними, рочитаю про них и думаю нужно будет попробовать.
В кубик катушку с конденсатором. У LC контура каждого кубика своя резонансная частота. Под кубиком катушка магнитно связанная с кубиками. Измеряем частоту резонанса.
Этот вариант самый дешевый. Хотел его предложить но не успел.
не такой это простой вариант, т.е. совсем не простой в реализации
Немного покрутил схему, в плане позиционирования не проблема, можно сделать посадочное место, чтобы исключить 1 магнит и -1 датчик, остаётся 4 датчика и 4 магнита, но тут встаёт другой момент, а именно момент наводки поля друг на друга, чтобы её избежать, необходимо будет делать кубики довольно большими, как минимум 5 на 5 СМ, пока не уверен, что такой размер подойдёт, но однозначно возьму на вооружение.
Вот только в схеме мне не понятно, как всё это завязать на 2-3 ноги ардуино, нужно как-то их запараллелить или как?
Вот только в схеме мне не понятно, как всё это завязать на 2-3 ноги ардуино, нужно как-то их запараллелить или как?
один сигнал защелкивает данные с портов, другой тактирует сдвиг данных, с третьего получаете последовательно состояния входов, что защелкнули.
не такой это простой вариант, т.е. совсем не простой в реализации
А требование простоты и не выдвигалось. Требовалось дешево.
Делаем быстро, дешево, качественно*
Примечания: * выберите два любых требования из трех доступных ;)
ну да :))) дали, что было попрошено
В кубик катушку с конденсатором. У LC контура каждого кубика своя резонансная частота. Под кубиком катушка магнитно связанная с кубиками. Измеряем частоту резонанса.
Этот вариант самый дешевый. Хотел его предложить но не успел.
Про RFID метки уже было, мне кажется это самый надежный вариант. Но единственное - говорилось, что надо под каждый кубик ставить свой считыватель. А что если взять один считыватель (типа такого), и раздербанить его на антенну и "мозги". Наштамповать несколько антенн на текстолите и потом их коммутировать с "мозгами" по очереди. Правда я слабо представляю себе эту коммутацию.
пороговый датчик Холла OH137 https://pdf1.alldatasheet.com/datasheet-pdf/view/547704/OHHALLSENSOR/OH137.html
https://aliexpress.ru/item/32734362190.html
https://aliexpress.ru/item/32942081188.html
Всем большое спасибо за советы, буду изучать и пробовать
https://aliexpress.ru/item/32734362190.html
https://aliexpress.ru/item/32942081188.html
Читал я про эти модули и в итоге ничего толком не могу понять, как это всё обьеденить и какую схему лучше сделать.
Может вам будет интересно сделать подобный проект на платной основе? Напишите мне в телеграмм @OMikhail
Может даже получится остановиться на варианте с коннекторами какими либо.
Много других дел, закиньте вопрос в платный раздел.
или:
на каждом кубике светодиод с разной яркостью настроить (для уменьшения погрешности внешнего освещения светодиод спрятать в углублении кубика). Далее приемником(датчиком освещенности) по воздуху, подводя(подьезжая) к кубику, измерять эту яркость и опознавать уникальность кубика.
ВН, очень жаль, но всё равно спасибо!
Ulliss, это интересный вариант на самом деле, но тут появляется другой момент, в каждый кубик нужно будет встраивать источник питания и как то включать или выключать светодиод, чтобы не сажать батарейку без надобности.
Но есть над чем подумать, вариант интересный, спасибо.
RFID метку вклей в каждый кубик, они все разные, и питание не нужно
ВН, очень жаль, но всё равно спасибо!
Ulliss, это интересный вариант на самом деле, но тут появляется другой момент, в каждый кубик нужно будет встраивать источник питания и как то включать или выключать светодиод, чтобы не сажать батарейку без надобности.
Но есть над чем подумать, вариант интересный, спасибо.
тогда ещё бредовее предложение:
источник света и приемник это одно устройство. а кубики это пассивный отражатель. т.е. в каждом кубике, грубо говоря, зеркало, и перед ним светофильтр. Соответственно разным фильтром и можно добиться разного отраженного света (или даже цвета для распознования по цвету).=))
Раньше были домофоны (да и сейчас наверно остались) с ключом-таблеткой, работающим по протоколу OneWire. Например вот тут можно почитать.
Приемное устройство - контактная площадка, в каждый кубик по таблетке. И батареек не надо, и RFID-приемников.
P.S. А для хорошего контакта можно использовать "кнопки" для одежды. Часть со штырьком закрепить на столе, а ответную часть - на кубике. Такое решение было у советских радиокубиков. Тогда каждый кубик будет "пристегнут" к своему месту, а электрический контакт будет лучше некуда.