[#] Ruby и C. Часть 4. Дружим акселерометр, гироскоп и дальномер с Raphael.js
habrabot(difrex,1) — All
2015-06-09 21:30:02


В предыдущих частях от [iv\_s][1] ([раз][2] [два][3] [три][4]) были описаны различные техники использования C и Ruby вместе. Я бы хотел рассказать о еще одной возможной связке – использовании уже существующих системных C-функций. Я потихоньку улучшаю своего [робота-рисовача][5]. Он написан на Ruby, поэтому при подключении к нему акселерометра с гироскопом, мне, само собой, захотелось продолжить использовать эту технологию. Как оказалось, достучаться до функций работы с шиной I2C в Ruby предельно просто – он позволяет использовать уже написанные и установленные библиотеки на C.




Схема работы такая: на RaspberryPi запущен Sinatra сервер, который при обращении отдает данные о повороте платы по осям X и Y, а также расстояние до ближайшего препятствия в сантиметрах. На клиенте для визуализации и отладки написан простой скрипт с использованием [Raphael3d.js][6], который каждые 100мс опрашивает устройство и поворачивает схематическую плату в соответствии с положением платы физической. [Читать дальше →][7]

[1]: http://habrahabr.ru/users/iv_s/
[2]: http://habrahabr.ru/post/48928/
[3]: http://habrahabr.ru/post/49202/
[4]: http://habrahabr.ru/post/50039/
[5]: http://www.partisanink.com/versions/2.5
[6]: http://mech.fsv.cvut.cz/~stransky/en/software/raphael3d/
[7]: http://habrahabr.ru/post/259675/#habracut