Совместимость Linux с Arduino

Я использую карманный чип и его различные GPIO для выполнения интересных проектов. Он оснащен полной ОС Linux. Каждый раз, когда я добавляю устройство ввода-вывода, я сталкиваюсь с огромными проблемами с библиотеками.

Управление устройствами i2c-для меня открытый вопрос. Официальная библиотека Python CHIP IO не охватывает это. Иногда мне везет, и я нахожу специальное решение, например, библиотеку Python для подключения i2c к моему жидкокристаллическому дисплею, но не всегда (в настоящее время мне не везет с датчиком температуры SHTC3). У меня есть i2c-инструменты для Linux, но в Интернете нет ни достойных учебных ресурсов, ни надлежащих документов, чтобы понять, как использовать их против этих компонентов. Это заставляет меня думать, что я все усложняю.

Даже там, где библиотека ввода-вывода микросхем работает успешно (ввод-вывод на выводах GPIO), существуют такие устройства, как датчик температуры DHT11, которые требуют определенного времени и рукопожатий. Но я не должен сам изобретать все эти колеса, верно? Где я свернул не туда?

Что я нахожу в своих поисках, так это то, что все вы, похоже, полагаетесь на библиотеки Arduino или CircuitPython. Я хотел бы использовать эти библиотеки на своей плате, но... могу ли я? Я подозреваю, что нет, так как первый зависит от какой-то конкретной платы (следовательно, почему вы ориентируетесь на тип платы в IDE Arduino), а последний требует, чтобы плата была помечена как совместимая с CircuitPython, но я отчаянно нуждаюсь в проверке на вменяемость.

, 👍0

Обсуждение

Arduino-это микроконтроллер без операционной системы, и библиотеки, созданные для него, обычно используются с IDE Arduino и его конкретными цепочками инструментов. Для системы, в которой есть полноценный linux, вам, вероятно, было бы лучше поискать библиотеки, написанные для Raspberry Pi., @PMF

Этот вопрос, похоже, не касается Arduino. Возможно, вы захотите взглянуть на [эту Вики](https://elinux.org/Interfacing_with_I2C_Devices)., @Edgar Bonet

Похоже, вы выбрали SBC с недостаточной поддержкой вашего оборудования. Случается и к лучшему. Для максимальной поддержки различных аппаратных средств с SBC Raspberry Pi обычно является хорошим выбором. Если вы не хотите переходить с карманного чипа, вы можете купить Arduino, который, в свою очередь, может взаимодействовать с компнентами. Arduino и PocketCHIP могут разговаривать по последовательному. Это должно сработать даже на карманном чипе. Хотя это означает больше работы для вас в программировании (также вам нужен C/C++ для Arduino), @chrisl

Вы не можете использовать библиотеки Arduino, но вы можете использовать их в качестве руководства для протокола данного чипа. Я не думаю, что есть CircuitPython для карманного чипа (возможно, ошибаюсь; я уже давно не играл с моим, кроме как посмотреть, работает ли он по-прежнему (работает)). *Может* иметь возможность использовать данную библиотеку Linux, возможно, компилируемую из исходного кода. Я знаю, что для правления существовало активное сообщество Reddit; не знаю, все еще ли оно активно., @Dave Newton


1 ответ


0

Я узнал, что Linux действительно несовместим с использованием библиотек Arduino.

Как указывает Дейв Ньютон, они могут быть ссылками для разработчиков библиотек в Linux для репликации логики, как я сделал, переведя рукопожатия DHT11 и таймеры из кода Arduino C в скрипт Python (который не работал, так как ОС PocketCHIP не работает в реальном времени; еще один микроконтроллер против Рассмотрение SBC и извлеченные уроки).

Я понял, как решить оставшуюся конкретную проблему, которая заключалась в обращении к датчику температуры SHTC3. В этом случае я нашел библиотеку Rust и смог установить цепочку инструментов Rust непосредственно на PocketCHIP. Это демонстрирует заключительный урок, который заключается в том, что системные программисты должны быть разборчивы по крайней мере с Python, C/C++ и Rust, если они надеются выжить в этом мире.

,