Iskra JS перспективы

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем strinda, 9 апр 2016.

Метки:
  1. strinda

    strinda Гик

    Добрый день,

    Есть ряд вопросов, заранее спасибо за ответы:
    Собственно основной вопрос: в чем смысл перехода с Arduino на Iskra Js. Правильно ли я понимаю, что наладить общение с Web будет проще на IskraJS или разница ТОЛЬКО в языках?
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Hello!

    Главное, да, в языке. Вернее в том, что JavaScript высокоуровневый. Например, разобрать HTTP-запрос к устройству на Arduino, а затем сформировать HTTP-ответ — кромешный ад. Но на Iskra JS — это тривиальная задача.

    Вы можете больше времени уделять сути проекта за счёт того, что не нужно долбаться со строками, массивами, управлением памятью.

    Но и с точки зрения возможностей МК Iskra JS побогаче будет:
    • ШИМ на 20+ пинах — больше моторов и серво,
    • 12 аналоговых входов — больше аналоговых датчиков,
    • 2 выхода ЦАП — можете выдавать стереозвук,
    • Аппаратные прерывания на большинстве пинов — больше цифровых датчиков,
    • По нескольку независимых UART и I2C — больше сложной периферии без конфликтов.
    А ещё «встроенная философия» без `delay` и автоматический уход в сон на время бездействия продержит ваш девайс на батарейке значительно дольше.

    Каждой задаче, конечно, свой инструмент, но если нужно что-то быстро собрать-проверить-проэкспериментировать, я уже давно хватаю JS вместо Uno.
     
  3. strinda

    strinda Гик

    Это интересно,
    Еще меня смущает отсутствие processing - я большой его любитель (при соединении с Arduino можно было делать красивые штуки). Есть ли какая-то библиотека отрисовывания для iskraJS?

    Скажем, если я хочу сделать, чтобы при нажатии на кнопку у меня машинка ехала на экране, то я знаю как это сделать в связке Arduino+Processing, насколько это реализуемо тут? или наоборот, чтобы при нажатии на кнопку на экране - включалась лампа.
     
  4. nailxx

    nailxx Официальный Нерд Администратор

    Хмм…, но ведь Processing — это среда, которая работает на стороне компьютера и к самой Arduino имеет посредственное отношение. Если они и общаются, то через обычное serial-соединение, что абсолютно также доступно и для Espruino / Iskra JS.

    Можете привести более конкретный пример? Я подскажу, как аналогичное делается с JS.
     
  5. strinda

    strinda Гик

    Тут видимо я путаюсь. Я посмотрел книжку (в электронном виде к ЙОДО набору) и пытаюсь понять, как там отрисовываются картинки (например с температурой или секторами: кто их отрисовывает и когда (и где)).

    Про пример: если, скажем, я хочу, чтобы в зависимости от яркости света в кабинете у меня на экране менялся цвет окружности, то я соответсвенно буду делать это с IskraJS так же?

    То есть обрабатывать сигнал на Искре, а дальше через сериал гнать переменные в Processing?
     
  6. nailxx

    nailxx Официальный Нерд Администратор

    Абсолютно верно. Также, как и с любой другой платформы.

    Можете в Processing, можете, например, в Serial Projector: он SVG-графику поддерживает.
     
  7. strinda

    strinda Гик

    Понял - спасибо!
     
  8. ИгорьК

    ИгорьК Гуру

    Кстати, у Искры есть SPI разъем, на который заведено 5 вольт.
    А зачем? Что, видится, туда должно быть присоединено пятивольтового? Совместимость с avr-овским программатором? Смысл?

    Зато модули связи SPI - они 3.3 вольтовые. ИМХО, можно изменить.

    И лучше на этом месте сделать 8-контактный разъем. Добавить еще пару рабочих ног - и модули будут в него просто втыкаться. Для трансиверов нужно минимум 5 рабочих ног(+ 2 питание), а лучше - шесть.

    И берешь модуль связи от Амперки, втыкаешь и... класс.
     
  9. Unixon

    Unixon Оракул Модератор

    Туда 5V вместо IOref подается даже на 3.3V ардуинах, де-факто стандарт.

    Пытаетесь переизобрести Olimex UEXT ? :)
     
  10. ИгорьК

    ИгорьК Гуру

    Зачем в данном случае? Где и как это применить?

    Нет. Не слышал даже. Логика привела. Меня. Olimex тоже. Амперку не привела.

    Классный разъем!
     
  11. Unixon

    Unixon Оракул Модератор

    Видимо потому, что шилды ожидают там увидеть 5V. Для питания устройств через шлейф, 5V можно и напрямую использовать и легко дорегулировать до 3.3V и меньше. Воткнуть LDO проще, чем Step-up DC-DC. Напрямую запитать 3.3V устройство от VTG не получится, да.

    Так он довольно здоровый, но если взять разъемы с шагом 2мм или 1.27мм, получится компактная няша - mini-UEXT / micro-UEXT.
     
  12. ИгорьК

    ИгорьК Гуру

    Какие конкретно?
    Кто-то проектировал эту плату и думал: вот, сделаю разъем как avr и вот этот и вот этот шилды будут работать с этой платой. Какие, интересно.

    Это лишь в том случае, если Амперка будет выпускать под него что-то.

    Иначе - головная боль. Ардуино (как явление) - ипостась самодельщиков. Мало кому удобно работать с такими разъемами.

    Кстати, форм-фактор разъемов Искры JS как Ардуино не стал бы относить к ее достоинствам. Только разводка начинающих: как Ардуино, но круче. Мне больше нравится Nucleo, те что большие.
     
  13. nailxx

    nailxx Официальный Нерд Администратор

    Конкретно на официальных Ethernet Shield 2 и Wireless Shield этот пин с ICSP бескомпромисно соединён с линией 5V. Т.е. если туда подать 3,3V будет коза с 5V.

    Решение немного странное и удивительное, но оно было в своё время сделано компанией Arduino.
     
    ИгорьК нравится это.
  14. alexzlo

    alexzlo Нерд

    Я вот наоборот web разработчик, поэтому когда только что прочитал про iskra js и покурил документацию, у меня глаза на лоб полезли и руки зачесались.

    Возник вопрос тут же. А можно ли писать не на чистом js, а использовать библиотеки аля jQuery, =) это еще больше ускорило бы разработку. Или все таки js там постольку поскольку и многие функции встроенные в привычном js не доступны.
     
  15. nailxx

    nailxx Официальный Нерд Администратор

    Вы можете использовать любые библиотеки для JS покуда итоговая программа у вас влезает во флеш-память контроллера (256 КБ). В конце концов там просто интерпретатор стандартизированного ES5.

    jQuery мне кажется использовать странным, т.к. там большая часть кода про DOM и выравнивание различий между браузерами. А вот какой-нибудь Underscore, Lodash или Ramda могут быть вполне уместны.
     
    sys нравится это.
  16. DrOnJD

    DrOnJD Нерд

    Вы вероятно не очень хороший JS разработчик, раз уж такое заявляете во всеуслышанье. Мне сложно представить как можно jQuery использовать вне браузера, знаю что это иногда бывает, но решение достаточно сомнительное. JS здесь в чистом виде. Я к примеру пишу на TypeScript, а тайпскрит как известно большинству веб-разработчиков, это надстройка над JS и с другими языками не взаимодействует. Ну и под конец, этот JS скорее стоит воспринимать как NodeJS нежели браузерный.
     
    Mihail Vasilev нравится это.
  17. sys

    sys Злобный Буратино Модератор

    Зачем же так жестко? ;) Человек то спрашивал про "аля", а не конкретно про джикву...
    А я так, кстати, и не сдружился с тайпом, впрочем как и с кофескриптом...
    Так же и великолепный питон бесит меня своей привязкой к форматированию....
     
  18. ИгорьК

    ИгорьК Гуру

    Я вообще ни разу него программист. Позвольте вопрос, который меня очень интересует.
    Почему только в JS существует такое безумное количество надстроек? Кажется ни в одном другом языке такого кошмара нет?
     
  19. sys

    sys Злобный Буратино Модератор

    Смотря что считать надстройками? Если тайп/кофе, то это лавры ЯС покоя не дают :) все хотят изобрести что-то типа более удобное и чтобы именно его изобретение пришло на замену... А экма по-тихоньку вбирает лучшие идеи и добавляет в новые версии. ECMAScript 6 вон сколько вкусного впитал, а 7й еще больше впитает :)
     
  20. DrOnJD

    DrOnJD Нерд

    Я искренне извиняюсь если кого-то оскорбил, просто себя не считаю достаточно хорошим фронтовиком. А если уж человек сомневается в JS`ности искры, то вероятно он не очень хороший специалист в этой области. Это не оскорбление на мой взгляд.
    Вероятно по тому, что JS сейчас проходит активную фазу развития. Надстройки в основном пытаются закрыть его недостатки или перенести логику BackEnd во FrontEnd. На примере TypeScript в JS привносится строгая типизация. И по факту конечный код TypeScript ни как не изменяет, но при разработке это исключает тонну ошибок и упрощает рефакторинг. Отсюда мы видим что TypeScript привносит строгую типизацию (это спорный момент, который не многим нравится) который упрощает отладку приложения еще до запуска самого приложения.
    Дело в том что TypeScript не конкурирует с JS а дополняет. Да это дополнение не всем нравится, но ни кто и не обязывает им пользоваться. Но я теперь не один маломальски серьёзный код не пишу без TS. В том числе и для Iskra/Espruino