Как получить инвестиции? Практическое руководство на реальных кейсах
Tessel. JavaScript на реальных устройствах.
-
Upload
oelifantiev -
Category
Technology
-
view
397 -
download
4
Transcript of Tessel. JavaScript на реальных устройствах.
![Page 1: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/1.jpg)
TESSELJavaScript на реальных устройствах
Елифантьев Олег, Тензор Yaroslavl Frontend Meetup, 10.12.2014
![Page 2: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/2.jpg)
TESSEL — что это?
• Tessel — микроконтроллер, способный выполнять JavaScript
• Node-совместимый
• Поставляется со встроенным WiFi-модулем
• Питается от USB (достаточно 3.3V, 500 mA)
2
![Page 3: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/3.jpg)
Frontend? Микроконтроллер?• Frontend? JavaScript!
• До 2009 года — JavaScript широко распространен лишь в браузере.
• 2009 год — появляется Node.JS, можно писать на JavaScript на сервере!
• 2013 год — появляется Tessel. На JavaScript можно программировать железяки!
3
![Page 4: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/4.jpg)
Frontend! Микроконтроллер!
• В 2014 можно, используя один и тот же набор привычных инструментов (язык, IDE, etc…) писать п/о:
‣ для клиента
‣ для сервера
‣ для железа
4
![Page 5: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/5.jpg)
By The Way…• Nginx + JavaScript = ♡
‣ http://www.infoworld.com/article/2838008/javascript/nginx-has-big-plans-for-javascript.html
• PostgreSQL + JavaScript = ♡
‣ https://code.google.com/p/plv8js/wiki/PLV8
5
![Page 6: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/6.jpg)
TESSEL
6
![Page 7: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/7.jpg)
TESSEL — что это?• Процессор ARM Cortex M3
• 32Мб RAM, 32Мб Flash
• CC3000 WiFi-чип
• 4 «стандартных» разъема для модулей
‣ GND, Power, I2P, SPI, GPIO/UART
• 20-пин GPIO-коннектор
‣ + 10-битный АЦП/ЦАП
7
![Page 8: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/8.jpg)
Модули
8
![Page 9: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/9.jpg)
Акселерометр
• 3 оси
• 3 шкалы (2g, 4g, 8g)
9
![Page 10: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/10.jpg)
Ambient
• Может замерять условный уровень света и звука
• Подойдет для устройств, активируемых звуком — например хлопком в ладоши (совместить с реле или IR-передатчиком)
10
![Page 11: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/11.jpg)
Audio• Декодирует MP3, AAC, WMA,
MIDI, FLAC, OGG
• Линейный вход, линейных выход или наушники
• Можно записывать аудиопоток через встроенный микрофон
11
![Page 12: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/12.jpg)
Audio
• К сожалению, сейчас НЕ живет вместе с SD, Ambient, IR
• Низкая производительность
• Проблема решается, ведутся работы.
12
![Page 13: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/13.jpg)
BLE - Bluetooth Low Energy
• Master или Slave
• Совместим с iOS 5+, Android 4.3+
13
![Page 14: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/14.jpg)
Камера
• 640x480, 320x240, 160x120
• Только фото, не поток!
14
![Page 15: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/15.jpg)
Климат-сенсор
• Влажность (0-80% относительной влажности)
• Температура (0-70 °С ±1°)
15
![Page 16: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/16.jpg)
GPRS
• 2G-интернет
• Аудио: линейный вход/выход
16
![Page 17: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/17.jpg)
GPRS• Управляется через AT-команды
• Подключиться в интернет - тоже (ATD*#99#)
• «Поднять» IP-коннекцию и передать по ней данные — аналогично
‣ Умеет держать одновременно 8 соединений.
‣ Умеет поднимать сервер
17
![Page 18: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/18.jpg)
GPS
• Точность: до 1.8м
• Частота обновления: до 10Hz
18
![Page 19: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/19.jpg)
IR
• Инфракрасный приемник/передатчик
• Дальность: до 30 см.
19
![Page 20: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/20.jpg)
MicroSD
• Поставляется с картой памяти на 1Gb
20
![Page 21: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/21.jpg)
nRF24
• Беспроводная связь (не WiFi) с устройствами аналогичного стандарта
• 2.4GHz, 64 канала
• Скорость обмена до 2Mbit
21
![Page 22: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/22.jpg)
Реле
• 240V, 5A
22
![Page 23: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/23.jpg)
RFID
• 13.56 MHz
• Поставляется с 1 RFID карточкой
23
![Page 24: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/24.jpg)
Серво
• Можно подключить до 16 сервомоторов
• 1 поставляется в комплекте
24
![Page 25: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/25.jpg)
So what?
25
![Page 26: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/26.jpg)
Соединяем!• GPRS + Audio = Автоответчик
26
![Page 27: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/27.jpg)
Соединяем!• GPRS + Audio = Автоответчик
• Акселерометр + IR = Пульт управления
27
![Page 28: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/28.jpg)
Соединяем!• GPRS + Audio = Автоответчик
• Акселерометр + IR = Пульт управления
• WiFi + Реле + ??? = Система мониторинга сайта
28
![Page 29: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/29.jpg)
Соединяем!• GPRS + Audio = Автоответчик
• Акселерометр + IR = Пульт управления
• WiFi + Реле + ??? = Система мониторинга сайта
• GPRS + Реле + ??? = Удаленная активация устройства по SMS
29
![Page 30: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/30.jpg)
Соединяем!• GPRS + Audio = Автоответчик
• Акселерометр + IR = Пульт управления
• WiFi + Реле + ??? = Система мониторинга сайта
• GPRS + Реле + ??? = Удаленная активация устройства по SMS
• GPRS + GPS = Трекер. + Реле = Автосигнализация.
30
![Page 31: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/31.jpg)
Соединяем!• GPRS + Audio = Автоответчик
• Акселерометр + IR = Пульт управления
• WiFi + Реле + ??? = Система мониторинга сайта
• GPRS + Реле + ??? = Удаленная активация устройства по SMS
• GPRS + GPS = Трекер. + Реле = Автосигнализация.
• Серво + ??? = Роботы
31
![Page 32: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/32.jpg)
$$$
32
![Page 33: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/33.jpg)
Стоимость• Tessel — 75$
• Class A module (Акселерометр, Ambient, Климат-сенсор) — 25$
• Class B module (GPS, RFID, Audio) — 50$
• GPRS — 60$
• Доставляют в РФ (EMS?), ~50$
33
![Page 34: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/34.jpg)
JavaScript?
34
![Page 35: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/35.jpg)
Как программировать?
• Модули в NPM
• Консольная утилита для взаимодействия с контроллером
‣ Настроить WiFi, залить код, обновить прошивку
• Для каждого модуля — свой NPM-модуль
35
![Page 36: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/36.jpg)
Как работает JavaScript?• Внутри — Lua VM (5.1)
• При загрузке JavaScript-кода он «компилируется» в Lua
• Основные JS-объекты реализованы на Lua
• Для доступа к железу — код на C «проброшенный» в Lua VM.
• Совместимость с Node — Lua (require, Buffer, etc…) + JavaScript.
• Недавно прикрутили LuaJIT!
36
![Page 37: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/37.jpg)
Demo Time!
37
![Page 38: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/38.jpg)
Demo• Соединим Climate, Ambient, GPRS
• Получим извещение о «погоде» по SMS
‣ Температура, влажность
‣ «Освещенность», «шумность»
• https://github.com/Olegas/tessel-climate-over-sms
38
![Page 39: Tessel. JavaScript на реальных устройствах.](https://reader030.fdocument.pub/reader030/viewer/2022020116/55b62976bb61ebd6078b4641/html5/thumbnails/39.jpg)