2. TESSEL — что это?
• Tessel — микроконтроллер, способный выполнять JavaScript
• Node-совместимый
• Поставляется со встроенным WiFi-модулем
• Питается от USB (достаточно 3.3V, 500 mA)
2
3. Frontend? Микроконтроллер?
• Frontend? JavaScript!
• До 2009 года — JavaScript широко распространен лишь в
браузере.
• 2009 год — появляется Node.JS, можно писать на JavaScript на
сервере!
• 2013 год — появляется Tessel. На JavaScript можно
программировать железяки!
3
4. Frontend! Микроконтроллер!
• В 2014 можно, используя один и тот же набор привычных
инструментов (язык, IDE, etc…) писать п/о:
‣ для клиента
‣ для сервера
‣ для железа
4
10. Ambient
• Может замерять условный
уровень света и звука
• Подойдет для устройств,
активируемых звуком —
например хлопком в ладоши
(совместить с реле или IR-
передатчиком)
10
11. Audio
• Декодирует MP3, AAC, WMA,
MIDI, FLAC, OGG
• Линейный вход, линейных
выход или наушники
• Можно записывать
аудиопоток через встроенный
микрофон
11
12. Audio
• К сожалению, сейчас НЕ живет вместе с SD, Ambient, IR
• Низкая производительность
• Проблема решается, ведутся работы.
12
13. BLE - Bluetooth Low Energy
• Master или Slave
• Совместим с iOS 5+, Android
4.3+
13
17. GPRS
• Управляется через AT-команды
• Подключиться в интернет - тоже (ATD*#99#)
• «Поднять» IP-коннекцию и передать по ней данные — аналогично
‣ Умеет держать одновременно 8 соединений.
‣ Умеет поднимать сервер
17
33. Стоимость
• Tessel — 75$
• Class A module (Акселерометр, Ambient, Климат-сенсор) — 25$
• Class B module (GPS, RFID, Audio) — 50$
• GPRS — 60$
• Доставляют в РФ (EMS?), ~50$
33
35. Как программировать?
• Модули в NPM
• Консольная утилита для взаимодействия с контроллером
‣ Настроить WiFi, залить код, обновить прошивку
• Для каждого модуля — свой NPM-модуль
35
36. Как работает JavaScript?
• Внутри — Lua VM (5.1)
• При загрузке JavaScript-кода он «компилируется» в Lua
• Основные JS-объекты реализованы на Lua
• Для доступа к железу — код на C «проброшенный» в Lua VM.
• Совместимость с Node — Lua (require, Buffer, etc…) + JavaScript.
• Недавно прикрутили LuaJIT!
36