Железные призраки прошлого

Компьютерная история

СтатьиСтатьиСтатьи
Cтарое железо и софт

МузейМузейМузей
Старые компьютеры

ФорумФорумФорум
Полигон призраков

ОбщалкаКонкурсыКонкурсы
Статьи и фото



Искать на сайте:
Применение старых компьютеров: датчик уровня воды



Эта статья прислана на конкурс.

Олег Чукаев

1. Введение


Продолжая тему использования старых компьютеров и периферийных устройств не по назначению, хочу предложить вам ознакомиться с ещё одной статьёй. В предыдущей статье рассказывалось о том, как поливать цветы с помощью компа. Здесь речь пойдёт тоже о компах и тоже о воде. А именно, о том, как определить уровень воды в какой-либо ёмкости. Для определённости, рассмотрим в качестве такой ёмкости ванну.


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


2. Используемое оборудование и ПО


Датчик уровня воды сделать (IMHO) проще, чем поливалку цветов, но вот часть ПО вам придётся писать самостоятельно.


1) Опять же комп. Требования к нему всё те же, за одним маленьким исключением. LPT порт не нужен (если только вы не собираетесь применить мышку с LPT интерфейсом). Но должен быть порт для подключения мышки.


2) Мышка. Фактически, это основная часть датчика. Мышка должна быть классическая, с шариком. Количество кнопок не имеет особого значения, они в базовой конфигурации не используются. Если у вас на компе установлен Линукс, то всё равно, какой у мышки порт, лишь бы вы умели его программировать. Если установлена DOS, то применение USB-мышек не рекомендуется. Можно использовать и оптические мышки, см. раздел 6.


3) Поплавок. Что это такое, хорошо представляют себе рыболовы и сантехники. Только вот их представления немного различаются. Рассмотрим сантехнический поплавок. Идёте в туалет, открываете крышку сливного бачка унитаза и наблюдаете цилиндрический чёрный (как правило) предмет, плавающий в воде. Это он и есть -- поплавок. Вам нужен примерно такой же, только раза в 2 меньше. Он, естественно, не должен тонуть, но, с другой стороны, он должен хорошо удерживаться на воде силами поверхностного натяжения. Поэтому рыболовные поплавки и не годятся -- их очень легко оторвать от воды. А поплавок от бачка унитаза не слишком эстетично выглядит. В общем, сами думайте, где взять подходящий поплавок.


4) Ниточка. Нормальная, крепкая ниточка. Желательно какая-нибудь синтетическая. Она не должна а) растягиваться и б) сильно намокать. Длина ниточки зависит от того, где вы хотите закрепить датчик, но 6 метров точно хватит.


5) Грузик. Его масса должна быть меньше массы поплавка. Точно масса грузика подбирается экспериментально. См. ниже.


6) Инструменты. Приблизительный список есть в статье про полив цветов. Если вы не собираетесь особо извращаться, то токарный и фрезерный станки вам вряд ли понадобятся. А вот электродрель с твёрдосплавным сверлом явно не помешает -- для крепления датчика к стене. Но в крайнем случае его можно и эпоксидкой прилепить...


7) Материалы. Приблизительный список -- всё там же.


8) ПО. Из всего разнообразия операционных систем следует выделить две: Линукс (про него я уже говорил) и DOS (например, FreeDOS). DOS удобно использовать, т.к. программировать мышки там довольно просто, как COM-овские, так и PS/2. С другой стороны, Линукс надёжнее. Выбор за вами. Ещё программку придётся написать, но я думаю, что это не очень сложно.


3. Принцип действия датчика


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


датчик уровня воды


4. Сборка датчика


Для начала раскройте мышку и удалите из неё всё ненужное. А ненужным является обрезиненный стальной шарик. (Для справки: диаметр шарика из мышки Mitsumi равен 22.02 мм, из мышки Microsoft -- 22.15 мм. Измерения проводились с помощью призматического микрометра МТИ 20 ТУ 2-034-770-83 (погрешность -- +/- 0.004 мм).) Шарик не выбрасывайте, может, пригодится ещё... Мышку надо прикрепить, например, к стене, так, чтобы оба её валика находились в горизонтальной плоскости, а вертикальная линия, проходящая через середину одного из них, также проходила и через ванну (где-нибудь с краю).


Теперь возьмите поплавок и прикрепите к нему одним концом ниточку. Перекидываете ниточку через выбранный валик (одного оборота будет достаточно), опускаете поплавок в ванну, и к другому концу ниточки прикрепляете грузик. Длина ниточки должна быть такой, чтобы при лежащем на дне ванны поплавке грузик не цеплялся за мышку, а при полностью заполненной ванне грузик не погружался бы в воду. Масса грузика должна быть такой, чтобы ниточка была бы натянута достаточно сильно, чтобы не проскальзывать на валике, но, с другой стороны, чтобы поплавок всё-таки плавал в воде, а не болтался на ниточке в воздухе. Если повезёт, то вы сможете использовать в качестве грузика изъятый из мышки шарик. Он будет выглядеть очень цивильно. Проблема только в креплении шарика к ниточке. Можно при помощи сверлильного станка просверлить осевое отверстие (диаметром 1..2мм) в шарике, продеть в него ниточку и завязать узелок на её конце. Если нет сверлильного станка, то по экватору шарика можно ножиком прорезать желобок и обвязать шарик ниточкой.


Всё это дело надо протестировать. Заткните ванну, включите воду и наблюдайте за перемещением поплавка и за вращением валика мышки. Ни поплавок, ни грузик не должны ни за что цепляться, а валик мышки должен вращаться без заеданий.


Мышку следует защитить от попадания воды на её плату. Можно, например, обернуть её полиэтиленовым пакетом, но только так, чтобы он не мешал работе датчика. Или ещё что-нибудь придумайте, у вас ведь есть фантазия?


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


5. Программное обеспечение датчика


Его вам придётся написать самостоятельно. ПО датчика должно работать следующим образом:

1) Инициализировать мышку (вернее, то, во что она превратилась, но на программном уровне оно совместимо с мышкой :-);
2) Сбросить счётчик импульсов от мышки (при этом поплавок должен быть на дне ванны);
3) При получении данных от мышки увеличивать или уменьшать счётчик, в зависимости от направления вращения валика.
4) При достижении счётчиком определённого значения сообщить юзеру о том, что ванна наполнилась.

Для реализации всего этого под Линуксом, вам, вероятно, следует прочитать Kernel Hacker's Guide, пару книжек по программированию на Си, ознакомиться с исходниками ядра и gpm. После чего написать прогу для работы с описываемым датчиком 8-|


Чтобы написать программу для работы с этим датчиком под DOS, IMHO будет достаточно изучить ассемблер, программирование последовательных портов и протокол передачи данных мышки. Полезную информацию можно почерпнуть из исходников драйвера мышки CuteMouse. Там есть и описание протоколов мышей (protocol.txt).


6. Возможные изменения/усовершенствования


А если у вас нет классической (шариковой) мышки? Можно попробовать заюзать оптическую! Тут будет нужна ниточка потолще, а так же некое подобие шкива, через который эта ниточка будет перекидываться. Шкив крепите к стене так, чтобы он мог свободно вращаться. Ниточка с поплавком и грузиком располагается так, как описано в п.4. Мышка крепится к стене чуть ниже шкива так, чтобы её глазок находился около ниточки. Перемещение ниточки надо ограничть: она должна перемещаться только в вертикальном направлении. Теперь движение ниточки относительно мышки будет восприниматься как движение мышки относительно коврика. Что нам и требовалось! А ещё такой датчик будет работать в качестве симпатичной красной мини-люстры ;-)


Но вернёмся к обычным мышкам. У них, как известно, 2 валика -- для координат X и Y. Один из них вы использовали, что же делать с другим? Его можно использовать для контроля уровня воды в бачке унитаза! Поплавок, ниточка, грузик -- всё остаётся прежним, только путь ниточки немного изменится.


Если вы получаете горячую воду путём нагрева холодной воды в газовой колонке, которая расположена не в ванной, а, например, на кухне, то свободный валик можно использовать для регулирования температуры воды. Для этого к нему надо прикрепить рукояточку, а к колонке приделать электропривод. Его можно сделать, например, из... принтера! Да-да, из того самого, из которого вы уже сделали (сделали?!) поливалку. В матричном принтере есть два шаговых двигателя: один перемещает головку (он используется в поливалке), а второй вращает барабан (ну, то есть вашу новую чёрную скалку, и не вращает, а вращал). Тут вам опять придётся включить свою соображалку, т.к. вам нужно будет преобразовать вращательное движение вала этого двигателя в поступательное движение рычага колонки (если у вас колонка с рычагами), или передать это движение ручке колонки (если у вас колонка с круглой ручкой). Автомотолюбители вспомнят, что вращение коленвала приводит к перемещению поршня, и может быть, используют здесь эту идею. ПО придётся изменить так, чтобы при вращении второго валика принтер вращал свой барабан в ту же сторону, в какую был повёрнут валик.


А что же делать, если вы хотите а) контролировать уровень воды в ванне, б) контролировать уровень воды в бачке унитаза, в) регулировать температуру воды, но у вас только одна мышка? Вспомните, ведь у неё же есть ещё 2 кнопочки! Правим ПО, и теперь барабан вращается в одну сторону при нажатии левой кнопки мышки, и в другую -- при нажатии правой. На кнопках мышки следует нацарапать большие знаки "+" и "-".


Описанное здесь устройство можно объединить с поливалкой цветов. Это может быть полезно для контроля уровня воды в ёмкости -- если злоумышленники всё-таки взломают вашу систему и выльют всю воду, то вы об этом сразу узнаете! Но тут есть одна проблема: ёмкость должна быть герметичной, так что этот датчик надо размещать _внутри_ ёмкости и герметизировать место выхода кабеля мышки.


7. И последнее


(В общем-то всё те же пожелания и предупреждения.)


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


Следует отметить, что я не несу никакой ответственности за любые последствия применения или неприменения данной конструкции. Используйте информацию, содержащуюся в данной статье, на свой страх и риск.



Обсудить статью в специально созданной ветке форума. Эта статья прислана на конкурс.

© Текст, иллюстрации - Олег Чукаев

© Железные призраки прошлого - 2008 г.

Опубликовано 28 февраля 2008 г.


Дополнения или поправки на phantom@sannata.ru

 


На главную страницу сайта

На страницу конкурсов



Авторские права и условия копирования материалов