Как построить робота, который сможет остановиться в определенной точке с помощью высотомера
Я подумываю о создании робота, который поднимается вертикально и останавливается в определенной точке. Я думал использовать высотомер для измерения расстояния, однако не знаю, как создать для него код. С чего бы вы начали, можно ли это сделать с помощью MATLAB?
Спасибо за все :)
1 ответ
Наслаждайтесь игрой с Arduino и некоторыми датчиками! Это отличная платформа для обучения. Для вашей задачи изучите сенсорные модули Bosch BME280 (давление с температурой и влажностью). или BMP280 (просто давление). Вы можете рассчитывать на точность +-1 метр. Или проверьте прецизионную версию BME388, которая может дать вам +-50 см. Зайдите в магазин adafruit и попробуйте несколько рекламных досок. Они предоставляют отличную поддержку библиотеки и документации.
Чтобы получить абсолютные высоты, вам необходимо учитывать давление окружающего воздуха. Хорошим источником для этого являются отчеты METAR, выпущенные для самолетов. Существует множество онлайн-ресурсов , где вы можете получить так называемые настройки высотомера для ближайшего к вам аэропорта. Высотомеры самолетов на самом деле просто показывают высоту выше стандартной плоскости давления, поэтому вам необходимо компенсировать любое давление, которое оказывает текущая погода.
Для большей точности вам вскоре придется интегрировать барометрическое давление, высоту по GPS и, возможно, другие датчики с серьезными математическими вычислениями. Именно здесь подходит MATLAB.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Вы можете использовать барометр/датчик давления воздуха для определения высоты или акселерометр для относительных изменений (высоты). Я не понимаю, при чем здесь MATLAB., @Michel Keijzers
вы задаете неправильный вопрос... ваш вопрос должен быть таким: «Как измерить высоту?», @jsotola
Прежде чем приступить к рассмотрению кода, вам понадобится способ измерения изменений высоты. Барометрическая альтиметрия (основанная на давлении воздуха), вероятно, слишком груба для масштаба робота, который вас, вероятно, интересует. Изменение атмосферного давления с высотой составляет (очень) примерно 1 дюйм рт. ст./1000 футов вблизи уровня моря или ~1/ 2 фунта на квадратный дюйм/1000 футов. Если вам нужна точность высоты в 1 фут, вам понадобится 0,5/1000 или измерение давления с точностью до 0,0005 фунтов на квадратный дюйм. Чихание в той же комнате может привести к поломке вашего робота! :) ..., @JRobert
... Другие средства измерения, вероятно, будут более успешными при использовании существующих и доступных технологий. Если вы можете работать с высотой, а не с высотой (высота над поверхностью, например, полом), радаром, сонаром или даже щупом (леска с грузом, который вы опускаете на пол и измеряете, сколько лески вы выпустили) будет намного проще. Вам нужно будет принять такого рода дизайнерские решения, прежде чем вы будете готовы писать код., @JRobert