Доброго всем времени суток, продолжаю серию постов про образовательную робототехнику. Здесь я описываю результаты и просто ход выполнения своей научной работы.
Кратко: разрабатываю специальную робо-накидку на одежду, которая сможет оцифровывать часть двигательных навыков мастеров своего дела и передавать это тем, кто только учится.
О чем этот пост: в комментариях к одному из прошлых постов меня попросили подробнее рассказать про Wi-Fi. Как я его использую, как работаю с прошивкой для esp8266. Об этом и буду рассказывать. Недавно приехал с конференции Графикон-2017 в Перми, посвященной визуализации и машинному зрению. Все было круто, понравилось.
1. Software.
Не буду долго ходить вокруг да около и просто выложу одну из прошивок для своей последней работоспособной версии руки, а именно для 5 версии из этого поста https://pikabu.ru/story/elearning_obrazovatelnaya_robototekh...
https://yadi.sk/d/a8IjAOq-3NNi4F
Схема отличается еще тем, что там мало ножек для управления, отчего был запаян еще 16 канальный мультиплексор. (нам все равно были нужны только ноги выбора устройства CS в стандарте SPI). Поэтому в код добавлены элементы управления мультиплексором.
За основу взят код из стандартного примера "BasicHttpClient" в Arduino IDE.
Когда работал с ним - частота передачи желала оставлять лучшего. 1.8 Гц (проводной тест частоты этой же руки показывал 124 Гц).
За это время успел и в библиотеке покапаться и студента-бакалавра найти, который еще другие варианты прошивки сделал, а оказалось, что для прошивки надо удалить всего одну строчку кода.
http.end();
Вот эта зараза. Без неё мы как бы не закрываем соединение, а просто транслируем данные в потоковом режиме. Частота поднялась до 70+ Гц. Никакой магии, просто костыли и отвага.
Вы думаете, что пост написал только из-за одной удаленной строчки кода? Нет. Если на поиск удаления этой строчки ушло дня 4, то еще столько же я потратил, пока решил еще проблемы.
Следующая проблема: если решите передавать данные по локальной сети, то убедитесь в том, какая у Вас политика безопасности. В моем случае я закрыл видимость ноутбука, на котором был поднят сервер приема данных. Отчего даже рабочие варианты не могли достучаться до него.
Данные решил передавать через post запросы. Так мне показалось проще всего.
Сервер приема данных на втором питоне выглядит как-то так. Дешево и без излишеств. Работает.
from bottle import route, run, template
@route('/hello/<number>/<gx>/<gy>/<gz>/<ax>/<ay>/<az>')
def index(number,gx,gy,gz,ax,ay,az):
print number,gx,gy,gz,ax,ay,az
run(host='192.168.0.100', port=8080)
2. Hardware.
Те, кто читал мой пост про эволюцию костюмов могли заметить, что я хотел запустить 45 чипов esp8266. Однако когда я посчитал энергопотребление такой махины, то оказалось, что для работы на полдня мне потребуется аккумулятор для грузовика массой 60 кг. Я был несколько удивлен... Ну т.е. я знаю, что для всей системы потребуется хотя бы 10 000 мАч, но это было уже за рамками добра и зла.
Но потом начал искать альтернативные варианты. ESP8266 по документации на пике жрет не более 200мАч. Может быть есть более интересные варианты? Есть.
RS9110-N-11-22-05
Энергопотребление у такого модуля заявлено значительно ниже. Находил, что он до 30мАч, однако сейчас по документации еще раз прошелся и конкретных цифр не нашел. Это не важно, потому как такой стоит более 2500р. Что умножая на 45 дает непомерную стоимость костюма.
Что же делать? Так чтобы и дешево и сердито, да еще и чтобы работало.
Обычный радиоканал. RD-NRF24L01P-N. Потребляет он около 15мАч, что минимум на порядок меньше ESP8266.
Просто один WiFi принимает со всех датчиков по радиоканалу данные, а потом будет отправлять в локальную сеть.
Таким образом предполагаемое потребление будет максимум 800мАч для всего устройства. Что по-прежнему прожорливо, но не потребует телегу для аккумулятора.
Причем стоимость чипа для этого радиомодуля на алиэкспрессе 25 рублей, что положительно скажется на конечной стоимости костюма.
до 6 октября постараюсь сделать еще как минимум один пост, а может не успею. Совсем скоро свадьба предстоит. В любом случае про что будут следующие посты:
- Обоснование гипотезы о том, что обучающая робо-накидка возможна для образовательных и реабилитационных целей (литературный обзор) с источниками как из классического интернета, так и со специализированных сервисов типа Web Of Science, Scopus, Гугл академия.
- Проблемы в предоставлении обратной связи обратно телу человека.
- Тесты по удешевлению костюма, совмещая в работе зависимые 6 и 9 осевые датчики (нужно больше дешевизны, богу дешевизны).
- Тесты радиодатчиков RD-NRF24L01P-N (взял 4 штуки поковырять пока). Буду уменьшать дальность действия до 2х метров и думать как защищать канал от пересечения с подобными же костюмами.
- Схема предполагаемой коммерциализации или о том почему схема для железа бесплатна.
В прошлом посте писал про чудеса с разработанными под себя платами, отвечу сразу - не решил вопрос, поэтому ничего интересного сказать не могу. Может просто забью и сделаю навесным монтажом пока.
Проект мой, тесты и программы мои, наука всеобщая. Тег моё :)