Índice:
- Etapa 1: O que é alongamento do relógio?
- Etapa 2: Uma ajudinha de porcos que voam
- Etapa 3: TL; Versão DR
- Etapa 4: Instalação
- Etapa 5: Instale o Pigpio
- Etapa 6: Opcional: configuração do sistema Dev
- Etapa 7: Configurando o WinSCP
- Etapa 8: (w) obter o Código
- Etapa 9: Observação para hackers em breve
Vídeo: TinyLiDAR em um Pi ?: 9 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Olá de novo!
Bem, agora que você passou um bom tempo com o tinyLiDAR e seu Arduino - seu Raspberry Pi talvez esteja se sentindo um pouco solitário;)
O pi tem uma porta I2C certo? Então, por que não conectá-lo e experimentá-lo lá ?! Bom plano, mas se você já tentou - você deve ter notado que os dados parecem um pouco estranhos.
Sim, o pi já construiu pull-ups de 1.8K, então você terá que cortar os pads I2C no tinyLiDAR para tirar os pull-ups de 4.7K do circuito - consulte o manual de referência para detalhes. Mas esse não é o motivo dos dados estranhos.
É porque o barramento I2C do pi não está exatamente de acordo com as especificações. Tem sido assim desde que o pi foi introduzido pela primeira vez devido ao conjunto de chips Broadcom. Desde o início, eles não suportaram adequadamente um recurso I2C chamado "alongamento do relógio".
Você pode ler mais sobre esse bug de h / w aqui.
Etapa 1: O que é alongamento do relógio?
Como você deve saber, o barramento I2C consiste em 3 fios. Estes são para relógio (SCL), dados (SDA) e terreno comum. O relógio e as linhas de dados são do tipo coletor aberto / dreno aberto, o que significa que eles precisam de resistores pull-up conectados a um trilho de alimentação positivo para dar-lhes um alto lógico. Para obter um nível lógico baixo, qualquer dispositivo no barramento pode puxar a linha para o aterramento comum.
De acordo com o padrão I2C, o dispositivo Master é aquele que fornece o sinal de clock na linha SCL, mas se esta taxa for muito rápida, então o dispositivo Slave pode desacelerá-lo simplesmente mantendo pressionada a linha do clock até que esteja pronto para lidar com as informações. Isso é o que chamamos de "alongamento do relógio".
Oficialmente, o alongamento do relógio foi listado como um recurso opcional no padrão I2C, mas é um recurso muito comum que é necessário para a maioria dos escravos "inteligentes" que precisam de algum tempo extra para fornecer dados do sensor, etc.
Etapa 2: Uma ajudinha de porcos que voam
Para lidar com esse bug I2C h / w, encontramos uma pequena biblioteca gratuita chamada "pigpio". É uma biblioteca muito popular, rápida e leve escrita em C. Ela é executada como um daemon de segundo plano para o Raspberry Pi e nos permite controlar o I2C, bem como qualquer GPIO, facilmente a partir do python. A biblioteca trata as portas I2C mais como GPIO e, portanto, contornou o bug de alongamento do clock I2C. Como todos os softwares no pi, a biblioteca pigpio é apenas uma simples "inclusão" de distância, então vamos lá!
Etapa 3: TL; Versão DR
Configurar PiAtivar SSH para fazer login com a biblioteca PuttyInstall pigpio Obtenha o arquivo zip tinyLiDAR Descompacte e execute o Putty
Opcional:
Configurar SublimeText com WinSCP
Etapa 4: Instalação
Para o nosso Raspberry Pi 3, usamos o sistema operacional padrão New Out Of the Box Software (NOOBS Lite v2.4). Ele contém uma versão padrão do Python já instalada para nós, pronta para codificar. Você pode baixar o sistema operacional aqui.
Depois de instalado em um cartão micro SD, você deve conectar um teclado e um monitor para que possa fazer o login no pi pela primeira vez:
Nome de usuário: pi Senha: framboesa
Em seguida, você pode iniciar um servidor de shell seguro (SSH) com estes comandos:
sudo systemctl enable sshsudo systemctl start ssh
Em seguida, precisaremos do endereço IP do pi em sua rede para que possamos fazer o login com PuTTY. Para conseguir isso, basta digitar:
hostname -I
E procure um endereço de formato IPv4 (para nossa configuração era: 192.168.0.27)
As etapas acima permitirão que o pi funcione "sem cabeça", o que significa que você não precisará digitar no teclado novamente e também não será mais necessário um monitor de vídeo. Faremos login através da rede por meio de uma conexão SSH segura daqui para frente. O comando acima faz com que o servidor SSH seja iniciado automaticamente sempre que o pi for ligado. Isso é conveniente para nós enquanto estamos codificando, mas pode ser um risco de segurança mais tarde (ser paranóico é bom), então, quando estiver pronto, você pode desativar este recurso SSH de inicialização automática usando este comando:
sudo systemctl disable ssh
Este comando deve ser digitado no teclado conectado ao pi, é claro.
PuTTY é um programa de terminal necessário para emitir comandos do PC para o pi, portanto, você deve obter a cópia mais recente daqui.
Instale e inicie o PuTTY. Você precisará digitar o endereço IP acima na entrada Nome do host e usar as configurações SSH padrão. Dê à sessão o nome que desejar e clique em Salvar. Em seguida, clique em carregar e clique em ABRIR para iniciar uma sessão.
Isso deve levar você à tela de login do pi. Use o mesmo nome de usuário e senha usados anteriormente.
Etapa 5: Instale o Pigpio
Agora, a única coisa que precisamos instalar depois disso seria a biblioteca pigpio e podemos fazer isso usando os seguintes comandos.
Dica: você pode simplesmente copiar [ctrl + c] e colar [clique com o botão direito do mouse] estes e quaisquer outros comandos no terminal PuTTY
sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio
Etapa 6: Opcional: configuração do sistema Dev
Portanto, aqui vai uma dica que pode ajudar a economizar algum tempo em seu mundo de desenvolvimento de código. Nós realmente odiamos os editores de texto baseados em Unix. A interface do usuário normalmente é desajeitada e as fontes são péssimas. GNU nano é quase suportável, mas nenhum é tão refinado quanto SublimeText que você pode baixar aqui
Temos um ambiente de desenvolvimento baseado em Windows e adoramos usar este editor de texto sempre que possível. Portanto, a dica aqui é configurar seu sistema para poder usar este editor de texto profissional nativamente em sua área de trabalho do Windows para codificar diretamente em seu pi sem cabeça.
Como? Usando um aplicativo gratuito chamado WinSCP, que você pode baixar aqui
Etapa 7: Configurando o WinSCP
WinSCP é um programa de transferência de arquivos seguro que oferece uma representação gráfica dos arquivos presentes em seu rpi, como o que você vê no gerenciador de arquivos em seu PC com Windows.
Portanto, vá em frente e instale os dois programas acima agora.
Em seguida, você terá que fazer alguns ajustes para que todos funcionem corretamente.
Para WinSCP, você pode clicar em NOVO Site. Usaremos as configurações de SFTP padrão e você só precisa inserir o endereço IP (para nome do host) de seu pi e o nome de login (para nome de usuário). Você pode optar por deixar a senha em branco, se desejar - ele solicitará a senha sempre que você fizer login.
Em seguida, clique no botão Avançado e, em seguida, clique no lado esquerdo para as configurações do Shell de ambiente. No lado direito, altere o menu suspenso "Padrão" para a opção "sudo su -". Isso permitirá que as alterações sejam gravadas em seu pi sem erros de permissão quando você clicar em salvar do SublimeText.
Defina SublimeText como Editor Padrão no WinSCP
Para fazer isso, clique no botão Ferramentas na tela de configurações de login do WinSCP, onde você iniciou a caixa de diálogo NewSite. As duas capturas de tela mostram como isso está configurado, mas basicamente você irá clicar para configurar a preferência dos Editores e Adicionar um Editor que será um Editor Externo. Você pode então procurar o arquivo.exe de onde este editor está localizado em seu computador.
Etapa 8: (w) obter o Código
Uma vez feito isso, vá em frente e faça o login com WinSCP e PuTTY.
Agora que estamos prontos, podemos iniciar nosso código tinyLiDAR.
Crie um diretório chamado tinyLiDAR em seu diretório home / pi.
Você pode fazer isso clicando com o botão direito do mouse no lado direito da tela do WinSCP e escolhendo Novo / Diretório.
Agora, no terminal PuTTY, você pode digitar
cd t
e pressione tab para permitir que ele autocomplete seu comando para chegar ao diretório tinyLiDAR.
Uma vez aqui, digite o seguinte:
wget
para obter os arquivos diretamente do nosso servidor. Podemos então descompactá-los digitando
descompacte r
e pressione tab para preencher automaticamente o nome novamente
Para executá-lo, basta digitar
python tlgui.py
E seu tinyLiDAR estará respondendo a todos os seus comandos no pi:)
Etapa 9: Observação para hackers em breve
Vá em frente e dê uma olhada nos bastidores clicando duas vezes em qualquer um dos arquivos de código do WinSCP. Eles são os únicos com uma extensão.py. Os arquivos devem ser abertos no SublimeText diretamente no seu PC. Altere o que quiser e clique em Salvar. Suas alterações serão salvas diretamente no seu pi.
Quando estiver pronto, execute-o novamente usando a tecla de seta para cima para o último comando digitado ou apenas digite-o novamente e pressione Enter:
python tlgui.py
Você deve ter notado que o layout da GUI do Terminal parece um pouco melhor do que a versão do Arduino. É porque o PuTTY oferece suporte a caracteres Unicode, então fomos capazes de usar alguns caracteres extras de controle do cursor para torná-lo mais refinado.
Também há um comando adicionado aqui (em comparação com a versão do Arduino) que é "dc" para a função de leitura contínua. Experimente e veja o que você pensa.
Isso é tudo!
Obrigado por ler e divirta-se hackeando o pi:)
Recomendado:
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
CircuitPython e TinyLiDAR: exemplo simples: 3 etapas
CircuitPython e TinyLiDAR: Exemplo simples: O MicroElectronicDesign tinyLiDAR é um módulo de intervalo de tempo de voo (ToF) baseado em ST VL53L0X com uma conexão de barramento i2c. As placas do microcontrolador Adafruit são facilmente conectadas a este sensor, pois podem falar o protocolo i2c sobre seus pinos de dados
TinyLiDAR na sua garagem !: 10 etapas
TinyLiDAR in Your Garage !: DIY WiFi Garage Door Opener ProjectO mundo da IoT está apenas começando a explodir - todas as empresas de tecnologia ao redor do mundo estão tentando descobrir como se encaixarão neste novo mundo. É uma oportunidade tão grande! Portanto, para este instrutível, eu
TinyLiDAR para IoT: 3 etapas
TinyLiDAR para IoT: Se você olhar em volta, verá que muitos pequenos dispositivos inteligentes estão sendo usados no dia a dia. Eles são normalmente alimentados por bateria e normalmente conectados à Internet (também conhecida como 'nuvem') de alguma forma. Todos esses são os que chamamos de dispositivos 'IoT' e eles
Posso usar o TinyLiDAR no Scratch ?: 3 etapas
Posso usar o TinyLiDAR no … Scratch ?: Recebemos solicitações de vez em quando para perguntar se o tinyLiDAR funcionará em sua plataforma de computação específica. Embora o tinyLiDAR tenha sido projetado como um sensor LiDAR simples de usar para o Arduino UNO, não há nada que o impeça de ser usado em outra plataforma