Неужели библиотека Arduino такая медленная?
У меня есть план управлять модулем камеры 5MP с помощью arduino Due. Но мне интересно, смогу ли я использовать библиотеки arduino, которые включают digitalRead, digitalWrite и т. д. Но некоторые люди говорят, что это плохая идея. В частности, я обнаружил, что люди записывали значения в регистры вместо использования библиотеки, когда они управляли ov7670 с помощью Uno.
Вопреки этому, ArduCam использует библиотеки, даже для OV5642!. Вот ссылка https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_Mini_OV5642_Video_Streaming/ArduCAM_Mini_OV5642_Video_Streaming.ino
Так что, может ли кто-нибудь дать мне знать, нормально ли использовать такую библиотеку и никогда не использовать регистр напрямую? Под «регистром» я подразумеваю регистр ардуино, а не камеры.
Я предполагаю, что системные часы и существование FIFO повлияют на ответ. Но я все еще не знаю, как оценить их влияние аналитически.
@Nownuri, 👍0
Обсуждение1 ответ
Вы можете использовать ЛЮБУЮ и ВСЕ библиотеки (если их ЛИЦЕНЗИИ это позволяют) или вообще не использовать ни одной библиотеки.
Важнее то, соответствует ли результат вашим требованиям.
Для некоторых видов задач даже очень медленная библиотека достаточно быстра. Для некоторых видов задач может справиться только высокооптимизированная библиотека. Некоторые задачи настолько сложны, что ни один Arduino не сможет их решить даже при максимальных усилиях и полной оптимизации кода и аппаратных ресурсов. (Ну, для некоторых задач даже лучшие современные суперкомпьютеры недостаточно хороши)
Многое зависит от того, что именно вы планируете делать с такой камерой - если вам нужны простые элементы управления (вроде START, STOT, изменение чувствительности...), возможно, подойдет что угодно. Если же вы хотите создать автономную систему, управляемую системой Vison, которая будет учиться на опыте и распознавать все выражения вашего лица, то Arduino с необходимой вычислительной мощностью вообще не существует.
Просто попробуйте найти любой проект, отдаленно похожий на ваш, посмотрите, что они используют и что они говорят об этом (отлично, едва пригодно, мы посчитали это невозможным) и попробуйте библиотеку/подход, основанный на этом. Если это как-то работает, сделайте это лучше и тоже станьте знаменитостью :) Если это вообще не работает и не дает никаких полезных результатов, возможно, попробуйте что-то другое.
Многое можно сделать, если расширить возможности Arduino с помощью внешних модулей (коммерческих или самодельных), будь то в виде шилда или в виде совершенно другой платформы.
- Как получить исходные файлы для библиотек Arduino?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Существуют ли библиотеки сглаживания сигналов для Arduino?
- Wire.h не найден!
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Как эта строка кода определяет, подключен ли последовательный интерфейс?
- Ошибка Specified folder/zip file does not contain a valid library
Я не вижу в этой библиотеке никаких вызовов digitalWrite., @Gerben