Как подключить nrf24l01+ к Iskra JS?

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Shazes, 17 янв 2017.

  1. Shazes

    Shazes Нерд

    Как подключить nrf24l01+ к Iskra JS?
     
  2. Jedi

    Jedi Гик

    Shazes нравится это.
  3. Shazes

    Shazes Нерд

    Спасибо большое!
     
  4. kajsat

    kajsat Нуб

    Здравствуйте, у меня есть две платы IskraJS(http://wiki.amperka.ru/js:iskra_js– IskraJSна сайте амперки) и IskraJSmini(http://wiki.amperka.ru/продукты:iskra-js-mini– IskraJSminiна сайте амперки) и два модуля беспроводной связи NRF24l01+.

    Я подключил модули к платам напрямую, используя вспомогательную схему распиновки с сайтов выше и на сам модуль к доступным интерфейсам SPI(без контакта IRQ):

    MISO – MISO;

    MOSI – MOSI;

    SCK – SCK;

    CSN – CSN;

    CE- CE;

    Vcc – 3.3V;

    GND – GND.

    [​IMG]

    Пользовался инструкцией с сайта(http://www.espruino.com/NRF24L01P - описание по подключению NRF24l01+ для работы через EspruinoIDE), как я понял там не требовалось подключение IRQ, ну я его и не подключал…

    [​IMG]

    В коде для платы Iskra JS, которая стала emitter(Master) прописал опять-же как из примера(только для нужных контактов):

    SPI2.setup({sck:B13, miso:B14, mosi:B15});

    var nrf = require("NRF24L01P").connect( SPI2, B0, B1 ); //B0(P6),B1(P5) на схеме

    function onInit() {

    nrf.init([0,0,0,0,2], [0,0,0,0,1]);

    }

    onInit();

    setInterval(function() {

    nrf.masterHandler();

    }, 50);

    И все больше ничего не мудрил – но заливается в память через раз (консоль выпадает при заливке прошивки).

    [​IMG]

    В коде для платы Iskra JS mini которая у меня стала receiver(Slave) прописал и залил(консоль работала нормально в Espruino ide):

    SPI1.setup({sck:A5, miso:A6, mosi:A7});

    var nrf = require("NRF24L01P").connect( SPI1, B0, B1 );

    function onInit() {

    nrf.init([0,0,0,0,1], [0,0,0,0,2]);

    }

    onInit();

    setInterval(function() {

    nrf.slaveHandler();

    }, 50);

    Тут все подрубал к SPI1 и как из примера наименования пинов совпали.

    Но дальше я не понимаю что делать, я пробовал команду вывести на консоль с искры жс мини, а на искре жс подключенную к блоку питания от розетки, через кнопку планировал отсылать сообщение из примера:

    nrf.sendCommand("1+2", function(r) { print("=="+r); });

    результатом должно быть =3


    Но этого не происходило… пробовал варианты из примера и тоже в пустую.

    Код на Mastereбыл такой:

    var knopa = require('@amperka/button').connect(P3);


    SPI2.setup({sck:B13, miso:B14, mosi:B15});

    var nrf = require("NRF24L01P").connect( SPI2, B0, B1 ); //B0(P6),B1(P5) насхемеискры

    function onInit() {

    nrf.init([0,0,0,0,2], [0,0,0,0,1]);}

    onInit();

    setInterval(function() {

    nrf.masterHandler();

    }, 50);

    knopa.on('press', function() {

    nrf.sendCommand("1+2", function(r) { print("=="+r);

    });

    });

    Прошу подсказать что и где я делал не так? А то запутался и понять где ошибка не могу сам.
    Если можно с подробным описанием, я еще не силен в JS, пока осваиваю.


    Заранее благодарю и извиняюсь за простыню.