Съдържание:

TinyLiDAR на Pi?: 9 стъпки (със снимки)
TinyLiDAR на Pi?: 9 стъпки (със снимки)

Видео: TinyLiDAR на Pi?: 9 стъпки (със снимки)

Видео: TinyLiDAR на Pi?: 9 стъпки (със снимки)
Видео: В чем секрет здоровья китайцев. Китай. Мир наизнанку 11 сезон 7 серия 2024, Юли
Anonim
TinyLiDAR на Pi?
TinyLiDAR на Pi?

Здравей отново!

Е, след като сте прекарали известно време с tinyLiDAR и вашия Arduino - вашата Raspberry Pi може би се чувства малко самотна;)

Пи има I2C порт нали? Така че защо да не го свържете и да опитате там ?! Добър план, но ако вече сте опитвали - може би сте забелязали, че данните изглеждат малко странни.

Да, pi вече има вградени 1.8K издърпвания, така че ще трябва да отрежете I2C подложките на tinyLiDAR, за да извадите 4.7K издърпвания от веригата-вижте справочното ръководство за подробности. Но това не е причината за странните данни.

Това е така, защото I2C шината на pi не отговаря точно на спецификациите. Това беше така откакто пи беше въведен за първи път поради чипсета 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 Вземете миниLiDAR zip файл Разархивирайте и стартирайте от Putty

По избор:

Настройка на SublimeText с WinSCP

Стъпка 4: Инсталиране

Инсталация
Инсталация

За нашия Raspberry Pi 3 използвахме стандартната операционна система New Out of the Box Software (NOOBS Lite v2.4). Той съдържа вече инсталирана версия на Python по подразбиране, за която сме готови да кодираме. Можете да изтеглите операционната система от тук.

След като бъде инсталиран на микро SD карта, трябва да свържете клавиатура и монитор, за да можете да влезете в pi за първи път:

Потребителско име: pi Парола: малина

След това можете да стартирате защитен сървър на обвивка (SSH) с тези команди:

sudo systemctl активира sshsudo systemctl стартира ssh

След това ще се нуждаем от IP адреса на pi във вашата мрежа, за да можем да влезем с PuTTY. За да получите това, просто напишете:

име на хост -I

И потърсете адрес във формат IPv4 (За нашата настройка той беше: 192.168.0.27)

Горните стъпки ще позволят на pi да работи "без глава", което означава, че няма да е необходимо да пишете отново на тази клавиатура и също няма нужда от видео монитор. Занапред ще влизаме в мрежата чрез защитена SSH връзка. Горната команда кара SSH сървъра да се стартира автоматично при всяко включване на pi. Това е удобно за нас, докато кодираме, но може да бъде риск за сигурността по -късно (да бъдеш параноик е добре), така че когато си готов, можеш да деактивираш тази функция за автоматично стартиране на SSH, като използваш тази команда:

sudo systemctl деактивирайте ssh

Тази команда трябва да бъде въведена на клавиатурата, свързана към pi, разбира се.

PuTTY е терминална програма, която е необходима за издаване на команди от компютъра към pi, така че трябва да вземете най -новото копие от тук.

Инсталирайте и стартирайте PuTTY. Ще трябва да въведете IP адреса отгоре в записа Host Name и да използвате настройките по подразбиране за SSH. Дайте на сесията всяко име, което искате, и натиснете запазване. След това натиснете товара и натиснете ОТВОРИ, за да започнете сесия.

Това трябва да ви отведе до екрана за вход за pi. Използвайте същото потребителско име и парола, които сте използвали по -рано.

Стъпка 5: Инсталирайте Pigpio

Сега единственото нещо, което трябва да инсталираме след това, е библиотеката pigpio и можем да направим това, като използваме следните команди.

Съвет: Можете просто да копирате [ctrl+c] и да поставите [мишката с десен бутон на мишката] тези и всякакви други команди в терминала PuTTY

sudo apt-get update

sudo apt-get install pigpio python-pigpio python3-pigpio

Стъпка 6: По избор: Настройка на системата за разработчици

По избор: Настройка на системата за разработчици
По избор: Настройка на системата за разработчици

И така, ето един съвет, който може да ви помогне да спестите време в света на разработката на кода. Ние наистина мразим текстовите редактори, базирани на unix. Потребителският интерфейс обикновено е тромав и шрифтовете са гадни. GNU nano е почти поносим, но никой не е толкова изискан като SublimeText, който можете да изтеглите от тук

Имаме среда за разработка, базирана на Windows, и обичаме да използваме този текстов редактор, когато е възможно. Така че съветът тук е в настройването на вашата система, за да можете да използвате този професионален текстов редактор първоначално на вашия работен плот на Windows, за да кодирате директно на вашето пи без глава.

Как? Използвайки безплатно приложение, наречено WinSCP, което можете да изтеглите от тук

Стъпка 7: Настройване на WinSCP

Настройване на WinSCP
Настройване на WinSCP
Настройване на WinSCP
Настройване на WinSCP

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

Така че продължете и инсталирайте горните две програми също сега.

След това ще трябва да направите няколко корекции, за да накарат всички да работят правилно.

За WinSCP можете да щракнете върху НОВ сайт. Ще използваме настройките по подразбиране SFTP и трябва само да въведете IP адреса (за име на хост) на вашето пи и името за вход (за потребителско име). Можете да изберете да оставите паролата празна, ако желаете - тя ще ви подкани за парола всеки път, когато влезете.

След това щракнете върху бутона Разширени и след това щракнете от лявата страна за настройки на околната обвивка. От дясната страна променете „Default“, издърпайте надолу до опцията „sudo su -“. Това ще позволи да се записват промените във вашия pi без грешки в разрешението, когато натиснете save от SublimeText.

Задайте SublimeText да бъде редактор по подразбиране в WinSCP

За да направите това, щракнете върху бутона Инструменти на екрана с настройки за влизане в WinSCP, където сте стартирали диалоговия прозорец NewSite. Двете снимки на екрана показват как е конфигурирано това, но основно ще щракнете, за да конфигурирате предпочитанията за редактори и добавете редактор, който ще бъде външен редактор. След това можете да потърсите.exe файла, където този редактор се намира на вашия компютър.

Стъпка 8: (w) получаване на кода

(ж) получаване на Кодекса
(ж) получаване на Кодекса

След като приключите, влезте и влезте с WinSCP и с PuTTY.

Вече сме готови, можем да стартираме нашия tinyLiDAR код.

Направете директория, наречена tinyLiDAR, в директорията home/pi.

Можете да направите това, като щракнете с десния бутон върху дясната страна на екрана на WinSCP и изберете New / Directory.

Сега в терминала PuTTY можете да пишете

cd t

и натиснете таб, за да го оставите да изпълни автоматично вашата команда, за да стигнете до директорията tinyLiDAR.

Веднъж тук напишете следното:

wget

за да получите файловете директно от нашия сървър. След това можем да ги разархивираме, като напишем

разархивирайте r

и натиснете таб, за да завършите отново автоматично името

За да го стартирате, просто напишете

python tlgui.py

И вашият миниLiDAR ще реагира на всяка ваша команда на пи:)

Стъпка 9: Забележка за скорошни хакери

Продължете и погледнете под капака, като щракнете двукратно върху някой от кодовите файлове от WinSCP. Те са тези с разширение.py. Файловете трябва да се отварят в SublimeText директно на вашия компютър. Променете каквото искате и след това натиснете запазване. Промените ви ще бъдат запазени директно във вашия pi.

Когато сте готови, го стартирате отново, като използвате клавиша със стрелка нагоре за последната въведена команда или просто го въведете отново и натиснете enter:

python tlgui.py

Може да сте забелязали, че оформлението на GUI на терминала изглежда малко по -хубаво от версията на Arduino. Това е така, защото PuTTY поддържа unicode символи, така че успяхме да използваме някои допълнителни знаци за управление на курсора, за да изглежда по -изискано.

Тук също има добавена команда (в сравнение с версията на Arduino), която е "dc" за функцията за непрекъснато четене. Опитайте и вижте какво мислите.

Това е всичко!

Благодаря за четенето и се наслаждавайте на хакването на пи:)

Препоръчано: