Напевно, багато хто з Вас чули, що ультразвуковий датчик відстані в наборі Lego Mindstorms NXT - цифровий. І використовує для передачі даних інтерфейс I2C.
А чи знаєте Ви, що це таке? Що це за інтерфейс?
Детально про нього можна почитати на вікіпедії. Там розказано про історію, принцип роботи та передачі даних і т.д. Якщо ж в двох словах - то це такий стандарт, в якому обмовляється кількість і призначення проводів між "учасниками обміну", а так само сигнали, які по ним передаються.
Перше застосування, яке приходить мені в голову: з'єднати відразу до 8 блоків NXT і змусити їх працювати спільно. Єдине, що мене поки зупиняє - відсутність 8 роз'ємів для портів NXT (щоб зробити загальний провід для восьми блоків), а різати заради цього проводу з комплектів не хочеться.
Якщо ж Ви захочете виготовити провід самостійно, або підключити зовнішній пристрій, то необхідно знати, який "пін" (тобто контакт роз'єму) до чого підключати. Цю інформацію можна взяти з таблиці:
(Позначення SCL, SDA, GND можна знайти в описі I2C на вікіпедії, POWER - те саме, що і Vdd)
Друге, більш цікаве, застосування - підключити до NXT якесь зовнішнє пристрій, що працює по інтерфейсу I2C. Таким пристроєм може бути що завгодно - датчик стороннього виробника, пульт, джойстик, комутатор датчиків або реле, зовнішній дисплей, Мікроконтроллерні пристрій Arduino і т.д. Ось приклад: підключення джойстіка- "нунчаки" від ігрової приставки Wii до блоку NXT.
Слід також згадати, що мало просто підключити зовнішній пристрій проводом, необхідно ще й написати програму. Працювати з I2C можна з різних мов програмування:
- NXT-G - необхідно встановити додаткові "блоки" з цієї сторінки;
- RobotC - короткі курси можна знайти тут і тут (англійською мовою);
- NXC - ще один курс англійською мовою;
На жаль, більшість статей по використанню всіх цих інструментів на англійській мові.
Тепер Ви знаєте - наш улюблений конструктор можна підключити майже до будь-якої "железяке". Сподіваюся, що ця замітка надихне Вас на створення чогось незвичайного і цікавого.