Как понять программно какой физический предмет рядом?

CtFelix
Offline
Зарегистрирован: 06.09.2018

Всем здравствуйте!

Хочу сделать небольшую игрушку и столкнулся с такой задачей:

Есть 10 физических кубиков, каждый имеет свой уникальный номер [1][2][3][4][5][6][7][8][9][10]

Скажем я поставил несколько кубиков в определённом порядке относительно друг друга, [5][2][1][4]

Как узнать в каком порядке стоят кубики, имею виду программно получить их значения? Понятно, что им нужна какая то метка, чтобы они общались с друг другом и сообщали, какие кубики рядом и в каком они порядке стоят, возможно для этого потребуется какой-то главный блок/стартовый, это возможно.

Можно сделать сложную схему типа в каждый засунуть блютуз или RFID метку и ридер и тд, но это дорого получится, нужен какой-то бюджетный вариант, может по принципу адресной светодиодной ленты, только в ней мы можем обращаться к отдельному светодиоду, а тут нам нужно в обратном порядке, получить значение светодиодов или ID светодиода рядом.

Есть вариант размещать кубики на какой-то поверхности, под которой будет какой-то считыватель, но получится ли сделать бюджетную версию?

Уже всю голову сломал)

sadman41
Offline
Зарегистрирован: 19.10.2016

Что такое "бюджетная версия"?

Кому-то и Канары - дешевка...

rkit
Offline
Зарегистрирован: 23.11.2016

Камера, машинное зрание, мини-компьютер. В 10к уложиться можно.

CtFelix
Offline
Зарегистрирован: 06.09.2018

Чем дешевле тем лучше, 5-10 центов на 1 кубик будет более или менее

CtFelix
Offline
Зарегистрирован: 06.09.2018

Думал об это варианте, сложно получается, поэтому и написал про адресную лед ленту

sadman41
Offline
Зарегистрирован: 19.10.2016

6 рублей на кубик? Надо вызывать Амаяка Акопяна с его ахалаем-махалаем.

CtFelix
Offline
Зарегистрирован: 06.09.2018

Адресная лента на шт даже дешевле стоит )) Амаяк не отвечает, пробовал ))

leks
Offline
Зарегистрирован: 22.10.2017

CtFelix пишет:
Думал об это варианте, сложно получается, поэтому и написал про адресную лед ленту

Вы всё сами и придумали!-берём 10 кубиков в них по адресному светодиоду и кнопке(и) и... виртуально передвигаем - обмениваясь уникальным цветом меж любой парой. При этом программа уже догадывается где какой кубик.

CtFelix
Offline
Зарегистрирован: 06.09.2018

Это тоже с машинным зрением? Или иначе, что-то не уловил мысль 

rkit
Offline
Зарегистрирован: 23.11.2016

CtFelix пишет:

Чем дешевле тем лучше, 5-10 центов на 1 кубик будет более или менее


Это шутка, наверно

leks
Offline
Зарегистрирован: 22.10.2017

CtFelix пишет:

 Или иначе, что-то не уловил мысль 

Виртуально - физически кубики неподвижны, обмениваясь цветом свечения как бы меняются местами. Просто иллюзия-игрушка.

vk007
Offline
Зарегистрирован: 16.06.2015

CtFelix пишет:

Есть вариант размещать кубики на какой-то поверхности, под которой будет какой-то считыватель, но получится ли сделать бюджетную версию?

В каждый из кубиков встроить по резистору с разными номиналами, контакты от резистора вывести на дно кубика. Сами кубики ставить "на какой-то поверхности", куда выведены контакты для считывания. Измерив сопротивление - знаем кубик какого "номинала" установлен.

CtFelix
Offline
Зарегистрирован: 06.09.2018

vk007 пишет:
В каждый из кубиков встроить по резистору с разными номиналами, контакты от резистора вывести на дно кубика. Сами кубики ставить "на какой-то поверхности", куда выведены контакты для считывания. Измерив сопротивление - знаем кубик какого "номинала" установлен.

А это вариант, спасибо! Было бы идеально, если бы это было по воздуху, без контактов

vk007
Offline
Зарегистрирован: 16.06.2015

По воздуху без контактов и за 5-10 центов???

Можно дно кубиков окрасить в разные цвета. Существуют модули распознавания цвета, правда, я не знаю сколько цветов они могут распознавать. Но как минимум 6 умеют, так как когда-то видел видео, как на лего делали аппарат для сборки кубика рубика и там использовался подобный принцип, чтобы распознать положение цветов на кубике.

CtFelix
Offline
Зарегистрирован: 06.09.2018

Хмм нужно будет поискать, что за модули. Ну возможно до 30 центов, есть какие варианты?

vk007
Offline
Зарегистрирован: 16.06.2015

Ну вы же должны понимать, что за такие деньги никакую беспроводную электронику в кубик не запихать (RFID метка вам не подходит). Т.е. кубики должны быть "пассивными", а различать их следует разве что по отличию их физических свойств.

Много вы знаете физических свойств твердых предметов, к тому же более-менее легко поддающихся измерению? Размеры, вес, цвет, температура, электропроводность, ну еще в некоторой степени материал. Все остальное, типа радиоактивности, твердости, прочности и т.п., никак не подходит.

Но главная проблема в другом - выбранное свойство должно отличаться во всех 10 кубиках, и отличаться настолько, чтобы можно было с уверенностью различать один кубик от другого.

sadman41
Offline
Зарегистрирован: 19.10.2016

Сдается мне, что "игрушка" в мелкосерии. Для единичного экземпляра давиться в 10 центов нормальный человек не будет.

vk007
Offline
Зарегистрирован: 16.06.2015

Мне тоже так сдается, иначе центы бы не считали.

Но тема интересная. Вот, что еще вспомнил.

Когда-то очень давно в каком-то журнале (Юный техник или что-то подобное) помню была статья (даже две, ее потом напечатали еще раз лет через десять в другом выпуске). В ней была самоделка зайца на движущейся тележке. Заяц был привередливым - когда ему пихали в рот "морковку", то он двигался вперед, если же "перец", то назад. В "овощах" не было никакой электроники, просто в конце вмонтированы кусочки разного металла (железо и медь кажется). А рот зайца представлял из себя катушку на кольце с зазором. Когда в зазор попадал разный металл, по разному изменялась индуктивность катушки, на что реагировала схема.

Можно пойти по этому пути. Но и тут проблемы. Сложно подобрать 10 разных материалов для кубиков. Ну и близкое их расположение скорее всего будет влиять на соседние контуры.

b707
Offline
Зарегистрирован: 26.05.2017

Если вделать в дно кубиков таблетки от домофонных ключей, а на поверхности разместить "лузы" считывателей, то можно задать уникальные идентификаторы любому числу кубиков -хоть тысяче - и причем весьма бюджетно, поскольку китайская домофонная таблетка оптом стоит примерно 15 рублей - 25 центов

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Зачем Даллас и его контакты?
RFID брелок тоже примерно столько же стоит.

CtFelix
Offline
Зарегистрирован: 06.09.2018

vk007 пишет:
Можно пойти по этому пути. Но и тут проблемы. Сложно подобрать 10 разных материалов для кубиков. Ну и близкое их расположение скорее всего будет влиять на соседние контуры.

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

sadman41 пишет:
Сдается мне, что "игрушка" в мелкосерии. Для единичного экземпляра давиться в 10 центов нормальный человек не будет.
Да это для очень мелкой серии, очень бюджетная игрушка :) не только же китайцам делать прикольную электронику :)

b707 пишет:
Если вделать в дно кубиков таблетки от домофонных ключей, а на поверхности разместить "лузы" считывателей, то можно задать уникальные идентификаторы любому числу кубиков -хоть тысяче - и причем весьма бюджетно, поскольку китайская домофонная таблетка оптом стоит примерно 15 рублей - 25 центов
Думал над этим вариантом, таблетки то можно купить, а вот считыватели, с ними тоже проблема, их должно быть столько же сколько и сколько и кубиков, а это уже дороговато или размер поля считывания должен быть большом, него тут тоже не понятно, как поведёт себя считыватель если на нём будет 5 разных таблеток и тот же момент, что кубиков в финальном варианте может быть не 10, а больше.

 

 

ВН
Offline
Зарегистрирован: 25.02.2016

Нормальная мысль с магнитами, надо ее просто нормально додумать и внести необходимые ограничения. 

 

CtFelix
Offline
Зарегистрирован: 06.09.2018

ВН пишет:
Нормальная мысль с магнитами, надо ее просто нормально додумать и внести необходимые ограничения.

Да, я тоже думал рабочий вариант, но только вот не знаю получится ли на 1 линию дата, тоесть на 1 PIN ардуины параллельно кинуть несколько датчиков холла, и снимать данные пошагово, поставили первый кубик посмотрели, ага кубик 1, запомнили, на второй датчик поставили другой кубик, данные изменились, ага это кубик 5 и ТД.

ВН
Offline
Зарегистрирован: 25.02.2016

Ну вот вам для затравки, 4 магнита это 4 бита кода, они могут определить 15  разных кубиков. 

CtFelix
Offline
Зарегистрирован: 06.09.2018

ВН пишет:

Ну вот вам для затравки, 4 магнита это 4 бита кода, они могут определить 15  разных кубиков. 

Я не настолько силён в программировании и технике, можно подробней?

ВН
Offline
Зарегистрирован: 25.02.2016

Есть у вас полоса, где разграничены сколько-то там мест под кубики. Под каждым разграниченным местом стоит 5 д. холла, один фиксирует, что кубик поставлен правильно, остальные задают его код.

С одной стороны кубика, могут быть установлены 4 магнита + еще один магнитик, чтобы квадрат четко позиционировался на свое место.  Установленный магнитик читается как  единица, например, неустановленный наоборот. Для 4-х кодовых магнитов возможно определить 16 комбинаций, для  5-х кодовых - 32. для 6 - 64.

Вообще, может быть по своему закодирована каждая сторона кубика. лишь бы поля магнитов не мешали друг другу (и не только читать, но и ставить кубики рядом)

д. Холла каждого места кубика связаны со своим сдвиговым регистром, дальше все просто. Читаются регистры и выводится информация, если кубик стоит правильно выдается его код, если неправильно - знак вопроса, например.

Что-то типа умной азбуки на такой штуке довольно легко построить.

 

CtFelix
Offline
Зарегистрирован: 06.09.2018

То есть 10 кубиков = 50 датчиков холла, соответственно, нужно 50 аналоговых пинов, чтобы их считать верно? И зачем по 5 шт? Не получится обойтись 1 на каждый кубик и по 1 магниту на разном уровне высоты от дна кубикк до датчика?

leks
Offline
Зарегистрирован: 22.10.2017

А тогда можно проще, 10 кубиков по 1 литру, 10 уз датчиков и нижняя грань на разной высоте внутри кубика.

ВН
Offline
Зарегистрирован: 25.02.2016

CtFelix пишет:
То есть 10 кубиков = 50 датчиков холла, соответственно, нужно 50 аналоговых пинов, чтобы их считать верно?

нет, не верно. д. холла бывают цифровые и аналоговые, у меня речь идет о цифровых, т.е. они только чуют есть магнит или нет.  Чтобы для вашей задачи считать значение 50-100 цифровых датчиков через регистры нужно всего 2-3 цифровых ноги ардуино.

CtFelix пишет:
Не получится обойтись 1 на каждый кубик и по 1 магниту на разном уровне высоты от дна кубикк до датчика?
застрелитесь вы их калибровать по уровням, все это много от чего зависит и крайне нестабильно. 

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

В порядке бреда: под кубики есть посадочные места, подаём поочерёдно на контакты напряжение, снимаем частоту. На NE555 сделать, например. Разнести кубики по частотам - их тыщи можно сделать.

vk007
Offline
Зарегистрирован: 16.06.2015

DIYMan пишет:

подаём поочерёдно на контакты напряжение, снимаем частоту

Я предлагал просто резисторы ставить, но ТС хочет без контактов.

leks
Offline
Зарегистрирован: 22.10.2017

А чем плох такой вариант? Без контактный и датчиков в куб не надо.

Logik
Offline
Зарегистрирован: 05.08.2014

В кубик катушку с конденсатором. У LC контура каждого кубика своя резонансная частота. Под кубиком катушка магнитно связанная с кубиками. Измеряем частоту резонанса.

CtFelix
Offline
Зарегистрирован: 06.09.2018

Всем спасибо за варианты! Конструкция с уз датчиками пока не совсем понятна, не работал с ними, рочитаю про них и думаю нужно будет попробовать.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Logik пишет:

В кубик катушку с конденсатором. У LC контура каждого кубика своя резонансная частота. Под кубиком катушка магнитно связанная с кубиками. Измеряем частоту резонанса.

Этот вариант самый дешевый. Хотел его предложить но не успел.

ВН
Offline
Зарегистрирован: 25.02.2016

не такой это простой вариант, т.е. совсем не простой в реализации

CtFelix
Offline
Зарегистрирован: 06.09.2018

ВН пишет:
С одной стороны кубика, могут быть установлены 4 магнита + еще один магнитик, чтобы квадрат четко позиционировался на свое место.  Установленный магнитик читается как  единица, например, неустановленный наоборот. Для 4-х кодовых магнитов возможно определить 16 комбинаций, для  5-х кодовых - 32. для 6 - 64.

Немного покрутил схему, в плане позиционирования не проблема, можно сделать посадочное место, чтобы исключить 1 магнит и -1 датчик, остаётся 4 датчика и 4 магнита, но тут встаёт другой момент, а именно момент наводки поля друг на друга, чтобы её избежать, необходимо будет делать кубики довольно большими, как минимум 5 на 5 СМ, пока не уверен, что такой размер подойдёт, но однозначно возьму на вооружение.

Вот только в схеме мне не понятно, как всё это завязать на 2-3 ноги ардуино, нужно как-то их запараллелить или как?

ВН
Offline
Зарегистрирован: 25.02.2016

CtFelix пишет:

Вот только в схеме мне не понятно, как всё это завязать на 2-3 ноги ардуино, нужно как-то их запараллелить или как?

через каскадируемые сдвиговые регистры с параллельной загрузкой.

один сигнал защелкивает данные с портов, другой тактирует сдвиг данных, с третьего получаете последовательно состояния входов, что защелкнули.

 

Logik
Offline
Зарегистрирован: 05.08.2014

ВН пишет:

не такой это простой вариант, т.е. совсем не простой в реализации

А требование простоты и не выдвигалось. Требовалось дешево.

 

Делаем быстро, дешево, качественно*

Примечания: * выберите два любых требования из трех доступных ;)

ВН
Offline
Зарегистрирован: 25.02.2016

ну да :))) дали, что было попрошено     

mixail844
Offline
Зарегистрирован: 30.04.2012

brokly пишет:

Logik пишет:

В кубик катушку с конденсатором. У LC контура каждого кубика своя резонансная частота. Под кубиком катушка магнитно связанная с кубиками. Измеряем частоту резонанса.

Этот вариант самый дешевый. Хотел его предложить но не успел.

 

если развивать тему : почему бы не использовать nfc метки(наклейки) ? 10 шт. за ~3 бакса
в столе будет либо одна большая антенна ,либо много маленьких
kost82
Offline
Зарегистрирован: 30.11.2015

Про RFID метки уже было, мне кажется это самый надежный вариант. Но единственное - говорилось, что надо под каждый кубик ставить свой считыватель. А что если взять один считыватель (типа такого), и раздербанить его на антенну и "мозги". Наштамповать несколько антенн на текстолите и потом их коммутировать с "мозгами" по очереди. Правда я слабо представляю себе эту коммутацию.

ВН
Offline
Зарегистрирован: 25.02.2016
CtFelix
Offline
Зарегистрирован: 06.09.2018

Всем большое спасибо за советы, буду изучать и пробовать

CtFelix
Offline
Зарегистрирован: 06.09.2018

Читал я про эти модули и в итоге ничего толком не могу понять, как это всё обьеденить и какую схему лучше сделать. 

Может вам будет интересно сделать подобный проект на платной основе? Напишите мне в телеграмм @OMikhail

Может даже получится остановиться на варианте с коннекторами какими либо.

ВН
Offline
Зарегистрирован: 25.02.2016

Много других дел,  закиньте вопрос в платный раздел.

Ulliss
Offline
Зарегистрирован: 16.09.2019

или:

на каждом кубике светодиод с разной яркостью настроить (для уменьшения погрешности внешнего освещения светодиод спрятать в углублении кубика). Далее приемником(датчиком освещенности) по воздуху, подводя(подьезжая) к кубику, измерять эту яркость и опознавать уникальность кубика.

CtFelix
Offline
Зарегистрирован: 06.09.2018

ВН, очень жаль, но всё равно спасибо!

Ulliss, это интересный вариант на самом деле, но тут появляется другой момент, в каждый кубик нужно будет встраивать источник питания и как то включать или выключать светодиод, чтобы не сажать батарейку без надобности.

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

RFID метку вклей в каждый кубик, они все разные, и питание не нужно 

Ulliss
Offline
Зарегистрирован: 16.09.2019

CtFelix пишет:

ВН, очень жаль, но всё равно спасибо!

Ulliss, это интересный вариант на самом деле, но тут появляется другой момент, в каждый кубик нужно будет встраивать источник питания и как то включать или выключать светодиод, чтобы не сажать батарейку без надобности.

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

тогда ещё бредовее предложение:

источник света и приемник это одно устройство. а кубики это пассивный отражатель. т.е. в каждом кубике, грубо говоря, зеркало, и перед ним светофильтр. Соответственно разным фильтром и можно добиться разного отраженного света (или даже цвета для распознования по цвету).=))

kost82
Offline
Зарегистрирован: 30.11.2015

Раньше были домофоны (да и сейчас наверно остались) с ключом-таблеткой, работающим по протоколу OneWire. Например вот тут можно почитать.

Приемное устройство - контактная площадка, в каждый кубик по таблетке. И батареек не надо, и RFID-приемников.

P.S. А для хорошего контакта можно использовать "кнопки" для одежды. Часть со штырьком закрепить на столе, а ответную часть - на кубике. Такое решение было у советских радиокубиков. Тогда каждый кубик будет "пристегнут" к своему месту, а электрический контакт будет лучше некуда.