Оглавление:

TinyLiDAR на Pi ?: 9 шагов (с изображениями)
TinyLiDAR на Pi ?: 9 шагов (с изображениями)

Видео: TinyLiDAR на Pi ?: 9 шагов (с изображениями)

Видео: TinyLiDAR на Pi ?: 9 шагов (с изображениями)
Видео: tinyLiDAR DIY ParkingAssist 2024, Ноябрь
Anonim
TinyLiDAR на Пи?
TinyLiDAR на Пи?

И снова здравствуйте!

Что ж, теперь, когда вы провели некоторое время с 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
Настройка WinSCP
Настройка WinSCP
Настройка WinSCP

WinSCP - это безопасная программа для передачи файлов, которая дает графическое представление файлов, присутствующих в вашем rpi, вроде того, что вы видите в файловом менеджере на вашем ПК с Windows.

Так что продолжайте и установите две вышеупомянутые программы прямо сейчас.

Затем вам нужно будет внести несколько корректировок, чтобы все они работали правильно.

Для WinSCP вы можете нажать НОВЫЙ сайт. Мы будем использовать настройки SFTP по умолчанию, и вам нужно только ввести IP-адрес (для имени хоста) вашего пи и имя входа (для имени пользователя). Вы можете оставить пароль пустым, если хотите - он будет запрашивать пароль при каждом входе в систему.

Затем нажмите кнопку «Дополнительно», а затем щелкните слева, чтобы перейти к настройкам оболочки среды. С правой стороны измените раскрывающееся меню «По умолчанию» на вариант «sudo su -». Это позволит записывать изменения в ваш пи без ошибок разрешения, когда вы нажимаете сохранить из SublimeText.

Установите SublimeText в качестве редактора по умолчанию в WinSCP

Для этого нажмите кнопку «Инструменты» на экране настроек входа в WinSCP, в котором вы открыли диалоговое окно «Новый сайт». На двух снимках экрана показано, как это настроено, но в основном вы нажимаете, чтобы настроить предпочтение «Редакторы» и «Добавить редактор», который будет внешним редактором. Затем вы можете найти файл.exe, в котором находится этот редактор на вашем компьютере.

Шаг 8: (w) получение кода

(w) получение кода
(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» для функции непрерывного чтения. Попробуйте и посмотрите, что вы думаете.

Это все!

Спасибо за чтение и наслаждайтесь взломом пи:)

Рекомендуемые: