Arduino Micro Pro + PAJ7620U2

khseal
Offline
Зарегистрирован: 15.01.2016

Датчик перестает работать при хардварном сбросе Ардуино(отключение от питания). Использовал вот эту библиотеку https://github.com/Seeed-Studio/Gesture_PAJ7620

Датчик работает без проблем после заливки кода, после переподключения ардуино датчик перестает работать. Если ардуино сбросить перемычкой на плате, датчик начинает работать без проблем. Видимо какие-то проблемы, с инициализацией датчика при включении ардуино. Есть идеи как это победить? В целом даже не совсем понятно, программная проблема это или хардварная...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

На код можно посмотреть?

khseal
Offline
Зарегистрирован: 15.01.2016

ЕвгенийП пишет:

На код можно посмотреть?

Код для тестов использую тот что в примере https://github.com/Seeed-Studio/Gesture_PAJ7620/blob/master/examples/paj7620_9gestures/paj7620_9gestures.ino

Есть ли смысл обновлять bootloader у ардуины?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Нет, мне не надо в примере, мне надо точным копипастом из Вашего IDE (может Вы там пины меняли или ещё чего). 

Кстати, попробуйте пока САМОЙ ПЕРВОЙ командой в setup вставить delay(100); Поможет?

khseal
Offline
Зарегистрирован: 15.01.2016

ЕвгенийП пишет:

Нет, мне не надо в примере, мне надо точным копипастом из Вашего IDE (может Вы там пины меняли или ещё чего). 

Кстати, попробуйте пока САМОЙ ПЕРВОЙ командой в setup вставить delay(100); Поможет?

Это точная копипаста, смысл что-то менять если пример корректно не работает? Пробовал выставлять delay(1000); Попробую поменьше. 

UPD

Задержка не помогает...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

khseal пишет:

Датчик перестает работать при хардварном сбросе Ардуино(отключение от питания).

Давайте угадаю,  вы выбираете в меню IDE плату Arduino/Genuino Micro, да?  Если да, то в этом и причина. Нужен аддон для платы ProMicro.

khseal
Offline
Зарегистрирован: 15.01.2016

dimax пишет:

khseal пишет:

Датчик перестает работать при хардварном сбросе Ардуино(отключение от питания).

Давайте угадаю,  вы выбираете в меню IDE плату Arduino/Genuino Micro, да?  Если да, то в этом и причина. Нужен аддон для платы ProMicro.

Не угадали, выбираю Arduino Leonardo, ибо она и определяется как Arduino Leonrado... Только как это связано, можно пояснить?) Остальные железки работали без проблем, только с этим датчиком какой-то странный глюк.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

khseal, микро и леонардо не важно. Они как раз почти полностью совместимы (кроме светодиодов). А промикро с ними не совместима. Нужно ставить аддон от производителя оригинала (www.sparkfun.com)

khseal
Offline
Зарегистрирован: 15.01.2016

dimax пишет:

khseal, микро и леонардо не важно. Они как раз почти полностью совместимы (кроме светодиодов). А промикро с ними не совместима. Нужно ставить аддон от производителя оригинала (www.sparkfun.com)

У меня такая про микро https://compacttool.ru/viewtovar.php?id=683 Это китайский клон.

Сомневаюсь что аддон тот поможет...

Update

Поставил библиотеки для оригинальной про микро, кардинально в работе ничего не изменилось. Проблема как была там же и осталась...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

khseal, вы же ещё в 2016 году (!) сталкивались с проблемой  с этими промикро. Должны знать, что бывает, когда бутлоадер не соответствует выбираемой плате.

Может в конкретном случае дело и не в этом, но начинать надо было с этого по любому.

khseal
Offline
Зарегистрирован: 15.01.2016

dimax пишет:

khseal, вы же ещё в 2016 году (!) сталкивались с проблемой  с этими промикро. Должны знать, что бывает, когда бутлоадер не соответствует выбираемой плате.

Может в конкретном случае дело и не в этом, но начинать надо было с этого по любому.

Там был изначально, у всей партии бутлоадер бракованный и там любой код работал с проблемами, тот же Hello World. А эта ардуина уже как бы проверенная, работала с другими датчиками и проблем таких не было.

Попробую к другой ардуине подключить этот датчик, чтобы хоть какую-то ясность внести.

UPD

На другой Arduino Mega заработало без проблем, там даже работа логики немного другая.

UPD2

Прошил бутлоадер два раза разными бутлоадерами особо не помогло(

Есть подозрение что затыкается эта библиотека при работе с Serial. Т.к. на другой ардуине информации отображается много и как-то по другому инициализируется Serial, а на ардуино микро про информации инициализации не отображается в любых ситуациях.

MaksVV
Offline
Зарегистрирован: 06.08.2015

может так 

Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

 

khseal
Offline
Зарегистрирован: 15.01.2016

MaksVV пишет:

может так 

Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

Это частично помогло, мое утверждение про Serial порт было верно. Теперь появилась другая проблема. Если Serial порт не открываешь, то и библиотека не работает. Обратился к порту и библиотека заработала. Можно ли как-то принудительно порт открывать или придеться изобретать говно и палки? Библиотеку ковырять, тоже большого желания нет.

Update

Выкинул почти все из void setup() 

В void loop() добавил paj7620Init();  и шарманка завелась. Только не уверен что это правильно. Скорее, совсем не правильно, почему не происходит инициализация при старте без Serial, загадка. Я уже и библиотеку поковырял.

MaksVV
Offline
Зарегистрирован: 06.08.2015

закоментить в библиотеке все выводы в сериал

khseal
Offline
Зарегистрирован: 15.01.2016

MaksVV пишет:

закоментить в библиотеке все выводы в сериал

Пробовал, не помогает =) Да у других библиотек есть обращения к сериалу, но это не мешает им работать. Короче странная фигня. Как вариант буду serial портом дергать на девайсе который с ардуиной работает, но нюанс интересный...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

khseal пишет:

 Скорее, совсем не правильно, почему не происходит инициализация при старте без Serial, загадка. Я уже и библиотеку поковырял.

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

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

dimax пишет:

khseal пишет:

 Скорее, совсем не правильно, почему не происходит инициализация при старте без Serial, загадка. Я уже и библиотеку поковырял.

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

дракула как-то публиковал решение этой проблемы

khseal
Offline
Зарегистрирован: 15.01.2016

ua6em пишет:

дракула как-то публиковал решение этой проблемы

Где если не секрет?

<span style="font-size:14.4px;font-weight:700;">dimax</span> пишет:

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

Это понятно, но не понятно, почему библиотека не работает без инициализации сериала. Я полностью выпиливал обращение к порту из библиотеки и все равно без инициализации порта, библиотека не инициализировалась. При этом другие библиотеки, которые что-то пишут в порт работают без подобных проблем.

khseal
Offline
Зарегистрирован: 15.01.2016

Нашел другую библиотеку с ней все волшебно, поэтому проблему практически решил.

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

khseal пишет:

Нашел другую библиотеку с ней все волшебно, поэтому проблему практически решил.

Обычно и ссылки дают, а то какой толк от этой ветки, только сносить, она же не в отвлечённых

khseal
Offline
Зарегистрирован: 15.01.2016

ua6em пишет:

Обычно и ссылки дают, а то какой толк от этой ветки, только сносить, она же не в отвлечённых

Ссылку постеснялся оставлять. Толк от это ветки есть. Если кто-то будет пробовать подключать этот датчик к конкретно, этой ардуине и возникнут проблемы, найдет решения тут. А гуглом пользоваться в 21 веке должен уметь каждый.

Код брал отсюда https://www.waveshare.com/wiki/PAJ7620U2_Gesture_Sensor