Совместимость Linux с Arduino
Я использую карманный чип и его различные GPIO для выполнения интересных проектов. Он оснащен полной ОС Linux. Каждый раз, когда я добавляю устройство ввода-вывода, я сталкиваюсь с огромными проблемами с библиотеками.
Управление устройствами i2c-для меня открытый вопрос. Официальная библиотека Python CHIP IO не охватывает это. Иногда мне везет, и я нахожу специальное решение, например, библиотеку Python для подключения i2c к моему жидкокристаллическому дисплею, но не всегда (в настоящее время мне не везет с датчиком температуры SHTC3). У меня есть i2c-инструменты для Linux, но в Интернете нет ни достойных учебных ресурсов, ни надлежащих документов, чтобы понять, как использовать их против этих компонентов. Это заставляет меня думать, что я все усложняю.
Даже там, где библиотека ввода-вывода микросхем работает успешно (ввод-вывод на выводах GPIO), существуют такие устройства, как датчик температуры DHT11, которые требуют определенного времени и рукопожатий. Но я не должен сам изобретать все эти колеса, верно? Где я свернул не туда?
Что я нахожу в своих поисках, так это то, что все вы, похоже, полагаетесь на библиотеки Arduino или CircuitPython. Я хотел бы использовать эти библиотеки на своей плате, но... могу ли я? Я подозреваю, что нет, так как первый зависит от какой-то конкретной платы (следовательно, почему вы ориентируетесь на тип платы в IDE Arduino), а последний требует, чтобы плата была помечена как совместимая с CircuitPython, но я отчаянно нуждаюсь в проверке на вменяемость.
@armani, 👍0
Обсуждение1 ответ
Я узнал, что Linux действительно несовместим с использованием библиотек Arduino.
Как указывает Дейв Ньютон, они могут быть ссылками для разработчиков библиотек в Linux для репликации логики, как я сделал, переведя рукопожатия DHT11 и таймеры из кода Arduino C в скрипт Python (который не работал, так как ОС PocketCHIP не работает в реальном времени; еще один микроконтроллер против Рассмотрение SBC и извлеченные уроки).
Я понял, как решить оставшуюся конкретную проблему, которая заключалась в обращении к датчику температуры SHTC3. В этом случае я нашел библиотеку Rust и смог установить цепочку инструментов Rust непосредственно на PocketCHIP. Это демонстрирует заключительный урок, который заключается в том, что системные программисты должны быть разборчивы по крайней мере с Python, C/C++ и Rust, если они надеются выжить в этом мире.
- Ошибка: invalid application of 'sizeof' to incomplete type 'int []' при попытке вычислить размер массива в библиотеке
- Глобальные переменные занимают много места в динамической памяти.
- Включить Guards vs #pragma один раз
- Ошибка: "'lcd' does not name a type" при использовании библиотеки LiquidCrystal.
- Как создать проект ардуино с несколькими исходными файлами?
- Как определить, было ли нажато более одной кнопки
- Альтернативы дисплею Nextion
- Двоичный форматировщик сообщений
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