Оглавление:
- Шаг 1: Что такое растягивание часов?
- Шаг 2: небольшая помощь от летающих свиней
- Шаг 3: TL; версия DR
- Шаг 4: Установка
- Шаг 5: Установите Pigpio
- Шаг 6: Необязательно: настройка системы Dev
- Шаг 7: Настройка WinSCP
- Шаг 8: (w) получение кода
- Шаг 9. Примечание для будущих хакеров
Видео: TinyLiDAR на Pi ?: 9 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
И снова здравствуйте!
Что ж, теперь, когда вы провели некоторое время с tinyLiDAR и своим Arduino - вашему Raspberry Pi, возможно, стало немного одиноко;)
У пи есть порт I2C, верно? Так почему бы не подключить его и не попробовать там ?! Хороший план, но если вы уже пробовали - возможно, вы заметили, что данные выглядят немного странно.
Да, в Pi уже встроено 1,8 тыс. Подтягиваний, поэтому вам придется вырезать контактные площадки I2C на tinyLiDAR, чтобы вывести из схемы подтягивания 4,7 тыс. - подробности см. В справочном руководстве. Но не это причина странных данных.
Это потому, что шина I2C пи не совсем соответствует спецификации. Так было с тех пор, как пи был впервые представлен из-за набора микросхем Broadcom. С самого начала они не поддерживали должным образом функцию I2C под названием «растяжение часов».
Вы можете прочитать больше об этой h / w ошибке здесь.
Шаг 1: Что такое растягивание часов?
Как вы знаете, шина I2C состоит из 3-х проводов. Это часы (SCL), данные (SDA) и общая земля. Линии часов и данных имеют тип с открытым коллектором / открытым стоком, что означает, что им нужны подтягивающие резисторы, подключенные к положительной шине питания, чтобы обеспечить им высокий логический уровень. Чтобы получить низкий логический уровень, любое устройство на шине может подключить линию к общей земле.
В соответствии со стандартом I2C, ведущее устройство - это устройство, которое подает тактовый сигнал на линию SCL, но если эта скорость слишком высока, то ведомому устройству разрешается замедлить его, просто удерживая линию синхронизации до тех пор, пока оно не будет готово к работе. с информацией. Это то, что мы называем «растяжкой часов».
Официально растяжение часов было указано как дополнительная функция в стандарте I2C, но это очень распространенная функция, необходимая для большинства «интеллектуальных» ведомых устройств, которым требуется дополнительное время для предоставления данных датчиков и т. Д.
Шаг 2: небольшая помощь от летающих свиней
Чтобы справиться с этой ошибкой I2C h / w, мы нашли небольшую симпатичную бесплатную библиотеку под названием «pigpio». Это очень популярная, быстрая и легкая библиотека, написанная на C. Она работает как фоновый демон для Raspberry Pi и позволяет нам легко управлять I2C, а также любым GPIO с Python. Библиотека рассматривает порты I2C больше как GPIO и, таким образом, обошла ошибку растяжения тактовых импульсов I2C. Как и все программное обеспечение на Pi, библиотека pigpio находится всего лишь в простом «включении», так что вперед!
Шаг 3: TL; версия DR
Настройте PiEnable SSH для входа в систему с помощью Putty Установите библиотеку pigpio Получить файл tinyLiDAR в формате zip Разархивируйте и запустите из Putty
По желанию:
Настройте SublimeText с помощью WinSCP
Шаг 4: Установка
Для нашего Raspberry Pi 3 мы использовали стандартную операционную систему New Out of the Box Software (NOOBS Lite v2.4). Он содержит версию Python по умолчанию, уже установленную для нас, готовую к написанию кода. Вы можете скачать ОС отсюда.
После установки на карту micro SD вам необходимо подключить клавиатуру и монитор, чтобы вы могли войти в систему Pi в первый раз:
Имя пользователя: pi Пароль: raspberry
Затем вы можете запустить защищенный сервер оболочки (SSH) с помощью следующих команд:
sudo systemctl включить sshsudo systemctl start ssh
Затем нам понадобится IP-адрес пи в вашей сети, чтобы мы могли войти в систему с помощью PuTTY. Чтобы получить это, просто введите:
имя хоста -I
И найдите адрес в формате IPv4 (для нашей настройки это было: 192.168.0.27)
Вышеупомянутые шаги позволят Pi работать «без головы», что означает, что вам больше не нужно будет печатать на этой клавиатуре, а также больше нет необходимости в видеомониторе. В дальнейшем мы будем входить в систему через сеть через безопасное соединение SSH. Приведенная выше команда заставляет SSH-сервер запускаться автоматически каждый раз при включении пи. Это удобно для нас, пока мы пишем код, но позже это может быть угрозой безопасности (быть параноиком - хорошо), поэтому, когда вы будете готовы, вы можете отключить эту функцию автоматического запуска SSH с помощью этой команды:
sudo systemctl отключить ssh
Эту команду, конечно же, следует набирать на клавиатуре, подключенной к пи.
PuTTY - это терминальная программа, которая требуется для передачи команд с ПК на пи, поэтому вы должны получить последнюю копию отсюда.
Установите и запустите PuTTY. Вам нужно будет ввести IP-адрес, указанный выше, в поле Host Name и использовать настройки SSH по умолчанию. Дайте сеансу любое имя и нажмите "Сохранить". Затем нажмите «Загрузить» и нажмите «ОТКРЫТЬ», чтобы начать сеанс.
Это должно привести вас к экрану входа в систему для пи. Используйте те же имя пользователя и пароль, которые вы использовали ранее.
Шаг 5: Установите Pigpio
Теперь единственное, что нам нужно установить после этого, - это библиотека pigpio, и мы можем сделать это с помощью следующих команд.
Совет: вы можете просто скопировать [ctrl + c] и вставить [щелкнуть правой кнопкой мыши] эти и любые другие команды в терминал PuTTY.
sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio
Шаг 6: Необязательно: настройка системы Dev
Итак, вот совет, который может помочь сэкономить время в мире разработки кода. Мы действительно ненавидим текстовые редакторы на основе UNIX. Пользовательский интерфейс обычно неуклюжий, а шрифты - отстой. GNU nano почти терпимо, но ни один из них не так совершенен, как SublimeText, который вы можете скачать отсюда.
У нас есть среда разработки на базе Windows, и мы любим использовать этот текстовый редактор, когда это возможно. Итак, совет здесь заключается в настройке вашей системы, чтобы иметь возможность использовать этот профессиональный текстовый редактор прямо на рабочем столе Windows, чтобы напрямую кодировать на вашем безголовом пи.
Как? Используя бесплатное приложение WinSCP, которое вы можете скачать здесь
Шаг 7: Настройка WinSCP
WinSCP - это безопасная программа для передачи файлов, которая дает графическое представление файлов, присутствующих в вашем rpi, вроде того, что вы видите в файловом менеджере на вашем ПК с Windows.
Так что продолжайте и установите две вышеупомянутые программы прямо сейчас.
Затем вам нужно будет внести несколько корректировок, чтобы все они работали правильно.
Для WinSCP вы можете нажать НОВЫЙ сайт. Мы будем использовать настройки SFTP по умолчанию, и вам нужно только ввести IP-адрес (для имени хоста) вашего пи и имя входа (для имени пользователя). Вы можете оставить пароль пустым, если хотите - он будет запрашивать пароль при каждом входе в систему.
Затем нажмите кнопку «Дополнительно», а затем щелкните слева, чтобы перейти к настройкам оболочки среды. С правой стороны измените раскрывающееся меню «По умолчанию» на вариант «sudo su -». Это позволит записывать изменения в ваш пи без ошибок разрешения, когда вы нажимаете сохранить из SublimeText.
Установите SublimeText в качестве редактора по умолчанию в WinSCP
Для этого нажмите кнопку «Инструменты» на экране настроек входа в WinSCP, в котором вы открыли диалоговое окно «Новый сайт». На двух снимках экрана показано, как это настроено, но в основном вы нажимаете, чтобы настроить предпочтение «Редакторы» и «Добавить редактор», который будет внешним редактором. Затем вы можете найти файл.exe, в котором находится этот редактор на вашем компьютере.
Шаг 8: (w) получение кода
После этого войдите в систему с помощью WinSCP и PuTTY.
Теперь все готово, и мы можем запустить наш код tinyLiDAR.
Создайте каталог с именем tinyLiDAR в своем домашнем каталоге / pi.
Вы можете сделать это, щелкнув правой кнопкой мыши в правой части экрана WinSCP и выбрав New / Directory.
Теперь в терминале PuTTY вы можете ввести
cd t
и нажмите вкладку, чтобы позволить автозаполнению вашей команды перейти в каталог tinyLiDAR.
Как только здесь введите следующее:
wget
чтобы получить файлы прямо с нашего сервера. Затем мы можем распаковать их, набрав
разархивировать г
и нажмите вкладку, чтобы снова автозаполнить имя
Чтобы запустить его, просто введите
Python tlgui.py
И ваш tinyLiDAR будет отвечать на каждую вашу команду на пи:)
Шаг 9. Примечание для будущих хакеров
Идите вперед и загляните под капот, дважды щелкнув любой из файлов кода из WinSCP. Это те, у которых есть расширение.py. Файлы должны открываться в SublimeText прямо на вашем компьютере. Измените все, что хотите, а затем нажмите "Сохранить". Ваши изменения будут сохранены прямо на вашем пи.
Когда все будет готово, вы запустите его снова, используя клавишу со стрелкой вверх для последней набранной команды, или просто введите ее еще раз и нажмите ввод:
Python tlgui.py
Вы могли заметить, что графический интерфейс терминала выглядит немного лучше, чем версия для Arduino. Это связано с тем, что PuTTY поддерживает символы Unicode, поэтому мы смогли использовать некоторые дополнительные символы управления курсором, чтобы он выглядел более изысканным.
Здесь также есть добавленная команда (по сравнению с версией Arduino), которая является «dc» для функции непрерывного чтения. Попробуйте и посмотрите, что вы думаете.
Это все!
Спасибо за чтение и наслаждайтесь взломом пи:)
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
CircuitPython и TinyLiDAR: простой пример: 3 шага
CircuitPython и TinyLiDAR: простой пример: MicroElectronicDesign tinyLiDAR - это модуль измерения времени пролета (ToF) на основе ST VL53L0X с подключением к шине i2c. Платы микроконтроллеров Adafruit легко подключаются к этому датчику, поскольку они могут передавать данные по протоколу i2c через свой вывод данных
TinyLiDAR в вашем гараже !: 10 шагов
В вашем гараже! Это просто огромная возможность! Итак, для этого инструктажа я
TinyLiDAR для Интернета вещей: 3 шага
TinyLiDAR для Интернета вещей: если вы посмотрите вокруг, вы заметите, что в повседневной жизни используется множество маленьких умных устройств. Обычно они питаются от батареи и обычно каким-то образом подключены к Интернету (также известному как «облако»). Это все то, что мы называем устройствами Интернета вещей, и они
Могу ли я использовать TinyLiDAR в царапинах?: 3 шага
Могу ли я использовать TinyLiDAR в … царапинах? Время от времени мы получаем запросы, чтобы спросить, будет ли tinyLiDAR работать на их конкретной вычислительной платформе. Хотя tinyLiDAR был разработан как простой в использовании датчик LiDAR для Arduino UNO, ничто не мешает использовать его на других платформах