Raspberry Pi с Arduino, последовательное соединение перестает работать
Это аппаратная установка дома,
Raspberry Pi GPIO -> Преобразователь Логического Уровня ->> Arduino ->>> Несколько реле>>>
Я запускаю Raspbian и NodeJS на Pi, в то время как Arduino загружен StandardFirmata.
Я подключаю NodeJS к Arduino с пакетом johnny-five
, и он хорошо работает после запуска. Но после долгих периодов, несколько часов? Arduino перестает отвечать. Любая команда, которую я пошлю на Ардуино, не будет исполнена. Это как если бы Ардуино висело.
И Raspberry Pi, и Arduino питаются независимо друг от друга с помощью USB-адаптера Nokia 1A.
Кто-нибудь знает, почему это происходит?
- джонни-пять
- СтандартФирмата
- Код сервера NodeJS
@Zane, 👍1
Обсуждение1 ответ
Если ни один код не принадлежит вам, а весь код из библиотеки Firmata, то наиболее возможной причиной, которая приходит на ум после просмотра кода библиотеки, является утечка памяти, которая приводит к сбою при следующем выделении и, таким образом, нарушает код.
Библиотека Firmata выполняет динамическое выделение памяти, проверяет Firmata.c, поэтому она реалистична - я бы предложил взять ее с автором библиотеки.
Да. Ни один из кодов на Arduino не мой. Все это принадлежит Фирмате. Так это, вероятно, Фирмата?, @Zane
логически это должно быть так. Возможно, они не учитывали бесконечный ход., @Omer
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
Кроме того, пожалуйста, добавьте ссылки на все продукты, которые вы используете. Я не знаю, что такое "Джонни-пять", если не считать робота из фильма 80 - х. То же самое с "StandardFirmata"., @Connor Wolf
Кроме того, детали кода RPi, а также (в идеале) фотографии того, как вы все подключили., @Connor Wolf
Возможно, вам стоит подумать о том, чтобы опубликовать свой код, иначе каждый ответ здесь будет в лучшем случае догадкой, @Omer
Очень часто, если Arduino зависает, это проблема с памятью (как правило, столкновение между кучей и стеком). Будет трудно диагностировать реальную проблему без исходного кода программы, которую вы загрузили на Arduino!, @jfpoilpret
Вы проверяете, что ваш Arduino все еще правильно работает с обычными программами (в частности, blink). Сначала вам нужно выяснить, является ли это аппаратной проблемой (контакт или MCU сгорели из-за слишком большого тока, проходящего через реле) или программным обеспечением., @jfpoilpret
Добавлены ссылки на все программное обеспечение, которое я использую, и код моего сервера NodeJS. Через некоторое время я сделаю снимки этой установки., @Zane
@jfpoilpret добавлено в связи. Я уверен, что с Uno все в порядке, так как я могу просто перезапустить uno, и он снова начнет работать. Просто я пытаюсь использовать его как решение для работы в режиме 24/7, @Zane
Вы нарисовали катушку реле, непосредственно подключенную к контакту 13, что является очень плохой идеей. Используйте транзистор NPN для привода реле и дайте ему поймать диод., @Chris Stratton
У меня было много проблем с последовательным зависанием с моим Arduino и Pi3. Кажется, есть [много проблем](https://github.com/raspberrypi/firmware/issues/88) с последовательными интерфейсами USB на Pi. Я также заметил, что мой Pi, кажется, подключается к Arduino просто отлично после перезагрузки, но если я отключу, а затем снова подключу Arduino (что должно быть нормально), то он сможет подключиться изначально, но соединение зависнет через несколько минут., @Cerin
А "1А" означает 1 ампер? Я знаю, что RPi 3 не работает надежно при питании менее 2,5 ампер сам по себе. Возможно ли, что ваш источник питания перегревается и падает напряжение?, @wilsotc
@wilsotc, вероятно, не должен отвечать на 4-летний поток. Pi 3 не существовало еще в 2014 году. Я имел в виду оригинальный Raspberry Pi. Если только ты не отвечаешь Керину. Просто для того, чтобы кто-то нашел эту проблему, я не думаю, что когда-либо нашел для нее решение. Хотя сейчас, может быть, и лучше., @Zane