Пытался прочитать аналоговые данные из gpio, но увидел только способ, который возвращает уровень сигнала как НИЗКИЙ или ВЫСОКИЙ (логическое значение). Не удалось найти решение в документации и в ссылках на код. Это вообще возможно сейчас?
Как читать аналоговые данные из GPIO, Android-штуки
comment
Можете указать, какие контакты вы используете, и вставить свой код?
- person Jan Slominski   schedule 27.12.2016
comment
Например BCM13 (Rpi 3), но кода нет, просто не могу найти как оттуда читать с небулевым значением
- person Markiyan Antonyuk   schedule 27.12.2016
comment
Я добавил интересное сообщение в блоге к своему первоначальному ответу, показывающее, как создать собственный модуль ADC для Android Things (автор сообщения включил библиотеку Android для его использования). Вы можете найти это полезным.
- person Jan Slominski   schedule 03.01.2017
comment
Покрывая мою проблему: вы можете подключить Arduino, если он у вас есть, к RPI и использовать аналоговый ввод/вывод, переведенный через UART, сделал статью об этом: ссылка на статью
- person Markiyan Antonyuk   schedule 05.01.2017
comment
Потрясающий! Завтра попробую!
- person Jan Slominski   schedule 05.01.2017
Ответы (3)
Raspberry Pi 3 не имеет аналого-цифрового преобразователя, поэтому вы можете получать только логические значения (высокий/низкий) из его GPIO. Таким образом, для получения аналоговых данных вам необходимо использовать внешний модуль АЦП в вашем проекте.
РЕДАКТИРОВАТЬ: я нашел эту интересную запись в блоге, показывающую, как измерять аналоговый ввод на Android Things.
person
Jan Slominski
schedule
27.12.2016
Для Raspberry Pi вам понадобится аналого-цифровой преобразователь, такой как ADS1115.
person
diazdeteran
schedule
27.12.2016
А как насчет плат, таких как Edison с разъемом Arduino, которые имеют аналоговые входные контакты?
- person Paul Ruiz; 28.12.2016
Intel Edison имеет 6 аналоговых входов (контакты A0-A5) и 6 аналоговых (PWM) выходов (контакты ~3,~5,~6, ~9, ~10, ~11). Чтобы прочитать датчик с аналогового входа, взгляните на это: developer. android.com/things/sdk/drivers/sensors.html. Чтобы использовать аналоговые выходы, проверьте: developer.android.com/things/sdk/ пио/pwm.html
- person diazdeteran; 28.12.2016
На самом деле у Edison с прорывом Arduino есть встроенный АЦП, который в настоящее время не поддерживается Android Things согласно code.google.com/p/android/issues/detail?id=230568 Итак, сейчас вы можете писать драйверы только для цифровых датчиков ввода, а не для аналоговых.
- person Paul Ruiz; 29.12.2016
Если вы все еще ищете, я написал класс и образец для АЦП Adafruit MCP3008.
https://github.com/PaulTR/AndroidThingsMCP3008ADC
person
Paul Ruiz
schedule
20.03.2017
Привет, Пол, с TMP36, чтение канала 0 дает чтение 257, я думаю, что это неверно в соответствии с моей комнатной температурой, я только что использовал ваш код для MCP3008 с той же конфигурацией контактов. Любые предложения, что может быть не так?
- person Mahendra Chhimwal; 06.08.2017
@MahendraChhimwal Если это прямое чтение, вам, вероятно, нужно преобразовать его в температуру. Вы, вероятно, захотите (значение - 50) / 10, что должно дать вам 20,7 ° C, что составляет около 70 ° F.
- person Paul Ruiz; 17.08.2017