Escolar Documentos
Profissional Documentos
Cultura Documentos
Conteúdo:
Sobre o autor
xv
Sobre o Revisor Técnico
xvii
Agradecimentos
xix
Introdução
xxi
■ Capítulo 1: Apresentando o Raspberry Pi
1
■ Capítulo 2: Linux pelo assento de suas calças
15
■ Capítulo 3: Apresentando Python
31
■ CAPÍTULO 4: Eletrônica a 100 MPH
51
■ Capítulo 5: O Web Bot
67
■ Capítulo 6: A estação meteorológica
81
■ Capítulo 7: O Media Server
101
■ Capítulo 8: O sistema de segurança Home
111
■ Capítulo 9: The Toy Cat
127
■ Capítulo 10: O Avião Rádio-Controlado
145
■ Capítulo 11: The Weather Balloon
161
■ Capítulo 12: O submersível
173
■ Capítulo 13: A Gertboard
201
■ Capítulo 14: O Raspberry Pi e o Arduino
215
Índice
227
v
Introdução
Em 2006, quando Eben Upton e os outros fundadores da Fundação Raspberry Pi olhou para o estado de Computador
Programas de Ciência (CS) nas universidades ficaram pasmados. Programas de ciência da computação estavam sendo reduzida
para
"CS 101: como operar Microsoft Word" e "CS 203:. Otimizar sua página do Facebook" Ninguém, eles perceberam, era
Aprender a programar mais nada, muito menos antes de entrar na faculdade. Então, eles arquitetaram um plano de criar um
pequeno,
Computador barato que as crianças poderiam aprender a programar em, como o Amigas, Espectros, e Commodore 64s do
passado.
Ao colocar um processador ARM em uma placa, deu-lhe (eventualmente) 512 MB de RAM e uma GPU VideoCore, e permitiu
os usuários a interagir com ele usando um teclado USB, mouse e uma porta de saída HDMI. Para torná-lo fácil de programar, eles
o projetou para que a sua linguagem de programação principal fosse um Python-poderoso, linguagem de script fácil de aprender.
E, assim, o Raspberry Pi nasceu.
Eu escrevi o meu primeiro programa em BASIC em um Commodore VIC 20, há muitos anos. Às 5 KB de RAM, tinha
menos poder de computação do que muitos dos micro controladores de hoje, mas eu ainda era capaz de escrever um jogo de
labirinto simples sobre ele,
salvar meu progresso como eu, foi em uma unidade de fita-cassete. Nos anos seguintes, eu tenho percorrido meu caminho através
da diferente
plataformas de computação, a partir do Windows 3.1, para Macintosh OS 8, para um pouco de Linux. Tinha sido um longo tempo
desde que eu era
realmente animado por um computador; o Pi foi uma lufada de ar fresco em um ambiente de computação um pouco obsoleto. Não
somente
foi pequeno e barato, mas era fácil obtê-lo para interagir com o mundo, um benefício real físico para qualquer pessoa interessada
na concepção de sistemas físicos. Então, quando eu ouvi sobre o seu lançamento, me inscrevi como cerca de um trilhão de outros
amadores /
hackers / engenheiros e esperou impacientemente para a mina para ser entregue. Então eu comecei a construir coisas com ele e
nunca
Olhou para trás.
Se você comprou um Pi, mas não sabe como começar com ele, este livro é para você.
Se você comprou um Pi, mas não sabe o que fazer com ele, este livro é para você.
Se você está considerando a compra de um Pi, mas ainda não, porque você continua pensando: "Por que eu deveria? Não é como
se eu posso fazer
qualquer coisa legal com ele, certo? "", então este livro é definitivamente para você.
Esse livro não pretende ser um livro sobre Python, nem é uma exploração exaustiva do Raspberry Pi e
tudo o que pode fazer. Mas que se destina a ser um divertimento, ficando como guia este pequeno computador limpo. Espero que
depois de você
trabalhar o seu caminho através do livro, você vai ter um sentido de todas as coisas que são possíveis com o Pi quando você
combiná-lo
com um pouco de engenhosidade e criatividade de sua parte.
Se você quiser trabalhar com os projetos aqui no fim, sinta-se livre. Se você preferir pular, fazendo aqueles que
interessá-lo, você está convidado a fazer isso também. Ao longo do caminho, espero que você vai desenvolver uma familiaridade
tanto com Python
e o Pi que lhe permitirá continuar, a construção de projetos que você vá, e talvez inspirar os outros ao longo do caminho.
Acima de tudo, espero que você goste do livro e seus projetos. Foi realmente uma explosão de escrever.
Computação feliz!
xxi
Capítulo 1
Apresentando o Raspberry Pi
Então, você tem-se um mini computador Raspberry Pi. O que agora? Talvez você esteja familiarizado com o Pi e sua
arquitetura, mas você está se perguntando o que fazer com ele. Talvez você tenha alguma experiência com computadores, mas
não são
familiarizado com Linux ou Raspbian, sistema operacional padrão do Pi. Talvez você já é um geek Linux, mas você
não sabe como programar em Python e pensei que seria uma boa hora para aprender. Talvez você não tem absolutamente
nenhuma
experiência com computadores, além de clicar no botão Iniciar, verificar o seu e-mail e navegar na web, mas você ouviu
sobre este thingamabob "Raspberry Pie" e decidiu ver o que todo o tumulto era sobre.
Seja qual for o caso, bem-vindo! Você está prestes a participar de um clube não particularmente exclusivo, estou com medo,
uma vez que tudo o que preciso para participar é de cerca de US $ 35 mais o transporte, mas um clube, no entanto. Como
membro, você será capaz de discutir
gerenciadores de pacotes, processadores ARM11 e arquivos de configuração de ponto de forma inteligente com quem quiserem
ouvir. Você vai saber sobre
drivers e APIs. Você vai se familiarizar com servos, LEDs e câmaras-on-a-chip. E, talvez o mais importante,
você vai ser capaz de se conectar ao seu novo mini-computador, programá-la em uma das muitas linguagens de programação
diferentes
(embora este livro trata exclusivamente com Python), construir projetos e interagir esses projetos com a Pi, permitindo-lhe
interagir com o mundo físico e fazer algumas coisas muito legais.
Com este livro, tenho a honra de induzir você a este clube. Sua experiência não importa, porque eu vou levá-lo passo
a passo através do processo de criação de seu Pi para que você possa trabalhar com ele com um mínimo de dores de cabeça. Vou
tentar
para dar-lhe uma sólida formação em Linux para que você entenda o que está acontecendo nos bastidores, e eu vou dedicar
um longo capítulo sobre a apresentá-lo para Python, a linguagem de script que todos os geeks da moda são scripts em.
Google usá-lo, a NASA usa-o, e o Livro de Faces utiliza. Vamos enfrentá-lo, Perl é tão ontem. Além disso, vou dedicar um
capítulo
introduzindo-lhe as porcas e parafusos de construir projetos de algo eletrônicos muitos técnica e de programação
livros querem encobrir ou negligência completamente. Existem fatores de segurança a considerar (eu quase tive uma pequena
explosão
(quando eu curtocircuitar uma bateria, por exemplo), bem como uma boa prática edifício. Por exemplo, você vai aprender a
fazer uma boa solda e como evitar cortar o seu dedo indicador off com um estilete, bem como a diferença
entre 40 W e uma 40K W resistor.
Claro, se você já está familiarizado com todas essas coisas, sinta-se livre para pular para as coisas boas: os projetos.
Todos eles podem ser construídos em um fim de semana ou assim (ou um mês ou dois, dependendo do seu nível de motivação e
comprimento
(da sua lista de afazeres), e todos são programados em Python. Vou dar-lhe uma lista de compras de peças no início de cada
projeto, com lugares para obter as peças, e depois vamos mergulhar na direita. Eles não necessariamente dependem uns dos
outros, nem são
eles em qualquer ordem particular de complexidade; se você quiser construir o Entertainer Cat e pular o Home Media Server,
é perfeitamente bem.
Que tipo de projetos que você pode fazer com um Pi? Você ficaria surpreso: o pequeno tamanho do Pi desmente a sua
computação impressionante
poder. Ela tem sido usada para tudo, desde servidores web para computadores de automóveis (carputers) para cluster de
computação, quando
ligado em grandes grupos. Espero que depois de terminar este livro você terá não apenas mais algumas idéias, mas as habilidades
necessário colocar essas idéias em prática.
Seja qual for seu motivo para pegar este livro, o seu principal objetivo deve ser o de se divertir e aprender alguma coisa!
Eu vou fazer o que posso para mostrar o caminho.
O cartão SD
Como você pode ver na Figura 1-2, um lote é embalado em um pequeno espaço do cartão. Uma das maiores características de
economia de espaço do Pi
é que não há nenhuma unidade de disco rígido real como em seu desktop ou laptop; o cartão SD funciona como uma unidade de
estado sólido (SSD). Você pode
alterar o tamanho da unidade que apenas trocando cartões SD, dentro da razão. Você deve usar pelo menos um cartão de 2 GB, e
em
menos 4 GB é recomendado se você quiser adicionar nenhum software real para sua imagem de unidade. (Você faz.) Cards até 32
GB tem
testado e trabalho, mas eles não são garantidos, tenha certeza que você backup de sua unidade, muitas vezes, se você decidir ir
com um
cartão bazillion-GB.
A porta de alimentação
A porta de alimentação é apenas uma entrada micro-USB de 5V, similar ao que você vê com muitos telefones celulares ou tablets.
Como uma matéria
de fato, um carregador de telefone celular é uma das maneiras mais comuns para alimentar o Pi. (Ver Figura 1-3.)
Figura 1-3. Adaptador de energia USB comum
Uma palavra de advertência, porém: O Raspberry Pi não tem regulador de energia a bordo! Se você está acostumado a usar o
Arduino, você sabe que você pode ligá-lo com segurança até 9V e ir a sua maneira alegre. Se você tentar isso com o Pi,
você vai ter mesmo um bom peso de papel. Não vá acima 5V- se você não tiver certeza de que o seu carregador põe para fora,
medi-la
com um multímetro. Melhor ainda, todos os sites que vendem o Pi também vendem uma variedade de carregadores garantidos
para trabalhar com ele. Eu?
Eu uso o carregador antigo que veio com meu Blackberry Torch. (Sim, eu era dono de um Blackberry. Não me julgue.)
Em caso você estava pensando em pedir: Sim, você pode alimentar o Pi com baterias, embora desempenho pode obter funky
em que desempenhem e níveis de energia cair abaixo de 5V. Provavelmente a maneira mais fácil de fazer isso é usar uma bateria
de 9V ou um banco de
4 pilhas AA e limitá-lo através de um regulador de tensão, ou usar uma bateria, como os encontrados em Controle Remoto
carros. Vou discutir isso também nos capítulo em que o projeto envolve uma Pi móvel.
A porta HDMI
O Pi é equipado com um cabo HDMI (High Definition Multimedia Interface) porta de saída, e muitos argumentam que esta é
verdadeiramente
onde o Pi entrar em seu próprio, porque é capaz de 1080p saída de alta definição de gráficos, com um gigapixel / segundo
Poder de processamento. A GPU onboard pode fazer a reprodução qualidade Blu-ray, usando bibliotecas OpenGL e OpenVG
fornecidas
on-chip.
Os pinos GPIO
Talvez a parte mais negligenciada do Pi são os GPIO (Saída Geral Purpose Input) pinos. Estes pinos permitem que você
conecte o Pi para qualquer número de extensões físicas, de LEDs e servomotores para controladores de motor e extensão
placas como a grande Gertboard, que será apresentado e discutido no Capítulo 13. Com uma área de trabalho normal,
ou computador portátil, isso exigiria algum mexer sério, seja com drivers USB ou acessando o (talvez
inexistente) porta serial e fazer algumas graves magia programação de baixo nível. Mas o Raspberry Pi vem com
bibliotecas pré-instalados que permitem acessar os pinos usando Python, C ou C ++. Bibliotecas adicionais também existe se você
Acontece que não gosto das versões oficiais, pré-carregadas. Isso significa que você pode conectar até oito servos para a direita Pi
fora da caixa-suficiente para controlar um robô quadrúpedes, por exemplo.
O Sistema em um Chip
A peça mais importante no tabuleiro é o chip no meio, também referido como um SoC, ou Sistema em um Chip.
O chip do Pi é um PCM2835 Broadcom com um processador ARM11 rodando a 700 MHz e uma GPU Videocore4. O chip
pode ser OverClocked para, pelo menos, 800 MHz sem um problema; na verdade, a última geração de cartões SD pré-carregados
oferecer
uma opção overclocking direito do arquivo Raspi-config. O mais rápido das predefinições terá o seu processador de até 1 GHz,
com um on-demand função disponível para impedir que o seu chip de superaquecimento. Segundo a Fundação, o resultado
de tudo o que overclocking é igual a 52-64 por cento mais rápido operações.
■ Nota Para mais informações sobre overclocking, consulte o artigo "Introdução ao modo turbo: até 50 por cento
mais desempenho
de graça "no http://www.raspberrypi.org/archives/2008.
O que tudo isto significa é que o poder de computação do Pi torna mais ou menos igual a um Pentium 300 MHz-2, mas com o
recursos gráficos de uma Xbox de primeira geração. Nada mau para um sistema sobre o tamanho de um cartão de crédito que
custa menos de
US $ 50 US. Isso também significa que porque o Pi é tanto pequeno e poderoso, ele pode ir a lugares e fazer coisas que
anteriormente
apenas laptops se atreveu a ir e fazer.
Requisitos de hardware do Pi
Vamos dar uma olhada rápida no que os requisitos do Pi são, e então vamos iniciá-lo.
Ligar a alimentação
Eu já mencionei poder; o Pi precisa 5V-nem mais, nem menos. Mais uma vez, porque vale a pena repetir: O Pi não tem
onboard regulador de tensão! Você não pode conectar uma verruga bateria de 9V ou parede e esperar que ele funcione. Ou usar
algo como
um carregador de telefone celular que põe para fora 5V (a maioria deles fazem), ou ter uma boa fonte de alimentação de uma loja
de eletrônicos on-line
ou a partir do local onde você comprou o Pi. A fonte de alimentação também precisará fornecer pelo menos 500 miliampéres
(mA), e
de preferência mais como amp 1 (A). Se fontes apenas a 500 mA, estar preparado para algum comportamento funky, como o
mouse,
teclado não funciona quando o adaptador sem fio está ligado. Eu recomendo 1A.
Adição de um monitor
A próxima periférica você vai precisar de, pelo menos à primeira vista, é um monitor com HDMI ou DVI capacidades. Se tudo
que você tem
é a entrada DVI, que está tudo bem, porque HDMI para DVI conversores estão em toda parte. Depois você tem que configurar e
todo o
software necessário é instalado, você pode executar o Pi em um decapitado configuração. O que isto significa é que você pode
entrar em
a partir de outro computador ou com SSH (Secure Shell) ou mesmo um cliente (Virtual Network Computing) VNC. Mas pelo
em primeiro lugar, você precisará de um monitor de modo que você possa ver o que está fazendo. Passos de bebê.
Adicionando um Hub USB
Você provavelmente vai querer um hub USB em algum ponto. Modelo B tem duas portas USB, o que significa que você pode
conectar um
teclado e um mouse, e você estará sentando-se consideravelmente. No entanto, se você quer ir sem fio (e em algum momento
você vai,
confie em mim), você vai precisar de pelo menos três portas USB, uma das quais é para o seu dongle USB sem fio. Que significa
você vai precisar de um hub.
O desempenho pode ficar pegajoso quando você adiciona um hub, porque alguns hubs USB foram mostrados para trabalhar muito
melhor do que
os outros quando se trata de trabalhar em conjunto com o Pi. Talvez o aspecto mais importante é necessário que o cubo está
acionadas externamente; isso vai evitar que o seu Pi de ter que tentar fornecer energia suficiente para o que quer que o poder de
sucção-
dispositivo que você decidiu ligar naquele dia. Este é um problema que vai vir para cima com o adaptador USB wireless. (Veja a
seção "Usando um dongle USB sem fio"). Em todo caso, se você não tiver certeza se o seu hub é compatível e não têm
um hub de reposição flutuando ao redor da casa para tentar, o melhor lugar para pesquisar o assunto é muitas vezes nos fóruns
Raspberry Pi
(Http://www.raspberrypi.org/phpBB3). É aqui que os usuários gostam de ter tentado umpteen marcas diferentes e relataram
O sistema operacional Pi
Sistema operacional padrão do Raspberry Pi (OS) -o um é projetado para usar-se Linux. Se você não estiver familiarizado com
o sistema operacional Linux, não se preocupe: nós espiada sob o capô no Capítulo 2. Por enquanto, porém, sabe que o Linux
vem em vários sabores, ou distribuições: Ubuntu (um dos mais populares), Debian, Mint, Red Hat, Fedora, e alguns
outras, as variedades mais obscuros. O Pi usa uma versão do Debian chamado, apropriadamente, Raspbian.
Porque o Pi não tem um disco rígido, você deve baixar e copiar uma imagem de disco para um cartão SD. Essa imagem é
o que o Pi vai usar para arrancar, e que também irá agir como uma memória / RAM. Quase qualquer tamanho vai fazer, contanto
que ele é, pelo menos, 2 GB,
e mais de 4 GB é o preferido, se você planeja carregar qualquer quantidade apreciável de software extra para o cartão.
(Você faz.) Como mencionado anteriormente, cartões de até 32 GB foram testados; além disso, os resultados podem ser tipo de
esboçado.
É recomendado que você utilize um cartão de marca, e que deveria ser uma classe 4, que indica a velocidade do cartão.
Capítulo 1 ■ Apresentando o Raspberry Pi
Formatar o Cartão
Sua primeira tarefa é para formatar o cartão para que a sua Pi pode lê-lo. Insira o cartão SD no seu computador e fazer
Os seguintes:
• Para usuários do Windows: Faça o download do programa de formatação ferramenta da SD Association em
https://www.sdcard.org/downloads/formatter_4/eula_windows/. Instale-o, usando toda a
configurações padrão, e iniciá-lo. Defina a opção de "ajuste de tamanho FORMATO" para "ON" no
menu de opções de ferramenta, certifique-se de ter o cartão SD direita selecionado e clique em "Format".
• Para usuários de Mac: Baixe a versão Mac do ferramenta de formatação de
https://www.sdcard.org/downloads/formatter_4/eula_mac/. Instale a ferramenta com toda a default
configurações clicando duas vezes no arquivo baixado. .pkg Uma vez instalado, abra-o e selecione a
Opção "Format Overwrite". Certifique-se de ter o cartão SD direita selecionado e clique em "Format".
Usando NOOBS
Agora que o cartão é formatado corretamente, você pode colocar o sistema operacional nele. A maioria dos usuários pode usar o
Pi
NOOBS da Fundação (New Out Of Box Software) a partir http://www.raspberrypi.org/downloads. Os NOOBS
sistema, no primeiro arranque, na verdade, irá apresentar-lhe uma escolha de sistemas operacionais para instalar, incluindo duas
versões
de XBMC (Xbox Media Center), Pidora, e Raspbian. Para os propósitos deste livro e os capítulo subsequentes,
vamos instalar Raspbian.
Uma vez que você tenha baixado NOOBS-e estar ciente de que é uma bolada de 1,1 GB baixar descompactá-lo usando a extração
utilitário de sua escolha (Windows: clique com botão direito, "Extrair tudo"; Mac: clique duas vezes). Em seguida, copie os
arquivos extraídos para o seu
Cartão SD.
É isso aí. Seu Pi está agora pronto para arrancar.
■ Apresentando o Raspberry Pi
Linhas de texto deve rolar novamente. Se um novo software está pronto para ser baixado, o Pi vai perguntar se você quer
download e instalá-lo. Pressione Enter (a opção padrão). Quando terminar, e retorna para o prompt $, tudo
deve estar na versão mais recente. Dependendo do que foi atualizado, você pode ser solicitado a reiniciar. Se assim for, reinicie,
restart
Na área de trabalho, digitando
$ Startx
e você estará de volta à tela inicial.
Desligando o Pi
Antes de começarmos a nossa discussão Linux, vamos discutir o desligamento. Por uma questão de fato, fechando o Pi é
desnecessária;
é tal dispositivo de baixa potência que os designers apenas esperar que você vai deixá-lo correr. Você pode desligá-lo, porém,
e no interesse de salvar um pouco de dinheiro e, talvez, a sua Pi, eu sugiro que você desligá-lo quando terminar de usar
isto. Desde que não há nenhuma opção "Off", o Pi é realmente concebido para ser desligado simplesmente desligá-lo, e nada
ruim é suposto acontecer (supondo que você tenha guardado o seu trabalho, não está no meio de alguma coisa, e assim por
diante). Mas apenas
desconectá-lo faz com que muitos de nós tipos de computadores encolher, então me deixe ensinar-lhe a verdade, bom método de
desligamento. Aberto
o terminal, e no prompt, tipo
$ Sudo shutdown -r now
Isso leva o processador através da seqüência de desligamento adequado, matando processos em execução, parar tópicos,
e assim por diante. Quando ele for concluído, ele deve levá-lo de volta para o, página de arranque preto somente texto, se isso não
acontecer, na verdade, poder
abaixo o Pi. Quando estiver nessa página, é verdadeiramente seguro de desligá-lo.
Resumo
Você agora já foram introduzidas para o Pi, instalou seu sistema operacional, e atualizado-lo para dentro de uma polegada de sua
vida. Você tem
também foram introduzidos para a ferramenta Raspi-config, e mesmo de ter jogado um pouco com a interface de linha de
comando
(CLI). É hora de dar uma olhada em Linux.
Capítulo 2
Linux pelo assento de suas calças
Raspberry Pi usa Linux como seu sistema operacional padrão, o que significa que se você não sabe nada sobre isso
OS impressionantes, você vai ter que aprender. Não se preocupe, eu vou tentar fazer isso o mais simples possível.
Quaisquer que sejam seus preconceitos sobre Linux são, provavelmente você pode ignorá-las. Desde a sua criação, o Linux tem
sempre foi considerado como o "OS geek", associada com imagens de botão-up-de manga curta--shirt vestida lápis-pescoço
martelando em um teclado enquanto a tela se enche com texto e em algum lugar, no fundo do porão, uma fileira de
computador armários de disco rígido-driven fita girar à vida. (Ver Figura 2-1.) No fundo, a 20-sided die rolos
do outro lado da mesa, e há o murmúrio suave de um argumento: "Não, Han atirou primeiro!"
Figura 2-1. Campo de jogos dos usuários de Linux (© 2006 Marcin Wichary)
No entanto, não medo. Enquanto alguns de nós ainda vivamente abraçar a cultura e tudo o que ela representa, isso não significa
que
você tem que. Linux já percorreu um longo caminho desde que foi introduzido pela primeira vez, e agora é não só uma potência
real de uma
sistema operacional, mas também extremamente amigável (pelo menos, a maioria de suas distribuições são). Os sabores mais
populares
Linux são Ubuntu e Mint. Ambos são visualmente tão semelhante ao Windows e Mac que muitas pessoas acham a mudança para
eles
divertido e fácil. Outra versão popular do Linux é Debian, que é a distribuição que o sistema operacional do Pi,
Raspbian, baseia-se. Quando ele começou, Debian foi a única distribuição de Linux que era verdadeiramente "open" -permitindo
qualquer desenvolvedor e usuário possa contribuir. Ele ainda continua a ser a maior distribuidora de Linux que não é uma
entidade comercial.
15
A HISTÓRIA LINUX
Linux é um sistema operacional vagamente baseado no sistema operacional Unix. Ela sempre foi livre e de código
aberto,
e foi lançado pela primeira vez em 1991 por seu criador, Linus Torvalds. Ele é escrito em linguagem de programação
C e foi
originalmente projetado para rodar em computadores da Intel baseados em x86. Durante estes 20 anos, ele foi
portado para todos os
dispositivo que se possa imaginar, de mainframes e supercomputadores para tablets, televisões e consoles de
videogame. o
Sistema operacional Android é construído sobre o Linux kernel do -a pepita de código em um sistema operacional
que é construído.
Como a maioria de software de computador, o Linux não nasceu em um buraco negro. Ela deve seu início para
sistemas operacionais e
kernels tais como Unix, BSD, GNU, e Minix. Na verdade, Torvalds disse na ocasião que, se o kernel GNU tinha sido
completar ou se BSD estava disponível no início dos anos 90, ele provavelmente não teria escrito seu próprio kernel.
Ele começou
seu trabalho sobre o kernel com MINIX e eventualmente adicionados muitos aplicativos de software GNU. Ele
também mudou seu
licenciamento com a GNU GPL, que afirma que o código pode ser reutilizado, desde que ele é lançado sob uma
licença similar.
Nos anos seguintes, propagação Linux, tanto na aceitação do usuário e em dispositivos. Com todos os acima
mencionados
dispositivos que executam o Linux, é o sistema operacional mais amplamente adotado no mundo.
Introdução ao Linux no Pi
Para interagir com o seu Pi, que você vai fazer um monte de trabalho com o terminal-também chamada de interface de linha de
comando.
Com sua área de trabalho até Raspberry Pi e em execução, clique duas vezes no ícone do terminal para iniciá-lo. Porque você já
está
logado, você não será solicitado para um nome de usuário e senha; em vez disso, o prompt vai mostrar algo como isto:
pi @ raspberrypi / $
Esta é a interface de linha de comando (CLI). (Ver Figura 2-2.) Diz-lhe que você é o usuário "pi," conectado ao
máquina "raspberrypi", no diretório inicial.
Figura 2-2. O terminal Raspberry Pi
Capítulo 2
■ Linux pelo assento de suas calças
Se você estivesse em um diretório diferente, o prompt seria exibido nesse diretório, tais como
pi @ raspberrypi: ~ / GPIO $
Arquivos Linux e o sistema de arquivos
Como um sistema operacional, o Linux é completamente construído em torno de arquivos e sistema de arquivos. Um arquivo é
qualquer pedaço de informação-estar
ele texto, imagem, vídeo ou outra, que é identificado por um nome de arquivo e um local. Esse local, também chamado de
caminho de diretório,
ajuda a manter cada arquivo completamente distinto de todos os outros, porque a localização é tecnicamente parte do nome do
arquivo.
Por exemplo,
/wdonat/Desktop/MyFiles/file.txt
é diferente de
/wdonat/Desktop/MyOtherFiles/file.txt.
Os nomes de arquivo também são maiúsculas de minúsculas, o que significa que /file.txt é diferente de /FILE.txt, que é diferente
de /File.txt. Há cinco categorias de arquivos que se tornará familiar para você:
• arquivos de dados do usuário: contém informações que você criar, tais como arquivos de texto ou imagens
• arquivos de dados do sistema que contêm informações usadas pelo sistema, como logons, senhas,
e assim por diante
• arquivos de Diretório, também chamados de pastas, que podem conter arquivos e diretórios. Outros Diretórios
contidos diretórios são chamados subdiretórios, e eles podem ser aninhados quase tão longe
para baixo como você se importa para contemplar
• Arquivos especiais que representam dispositivos de hardware ou algum espaço reservado usado pelo OS
• Os arquivos executáveis, que são programas ou scripts shell que contêm instruções para o
sistema operacional
O sistema de arquivo inteiro em Linux está contido dentro de uma pasta raiz, representada por um único /. Dentro dessa pasta
são subpastas, como bin /, home /, proc /, var /, e dev /. Cada um tem mais subdiretórios nele. Na verdade, se você pudesse
zoom out e olhar para o sistema de arquivos em uma espécie 3-dimensional de forma, ele seria semelhante a um gigante, árvore
de cabeça para baixo.
O / home / pasta é seu diretório home padrão, e cada usuário tem um em um sistema Linux (e Unix). Dentro desse
diretório, você está livre para criar, executar e excluir arquivos. Se você precisa manipular, editar ou excluir arquivos de sistema,
você
pode precisar de qualquer login como o usuário root ou executar o comando sudo.
Usuário Root vs. sudo
Em cada instalação do Linux, existe um usuário, identificado como a raiz, que é capaz de administrar todos os arquivos no
sistema,
incluindo arquivos de nível de sistema. A maioria das contas de usuário não pode editar arquivos no diretório / diretório / var, por
exemplo, mas o usuário root
podem. Devido a esse poder e potencial para abusar dela (mesmo acidentalmente), os usuários do Linux não logar como root, a
menos
que seja absolutamente necessário; quando o fazem, eles log in, fazer o que eles precisam, e fazer logout novamente. Há um
ditado entre os
Geeks: "Só noobs login como root"; em outras palavras, somente neófitos login e ficar conectado como o usuário root.
Há um atalho para autenticar como um usuário raiz, no entanto: sudo. sudo significa s uper u Ser fazer, e ele simplesmente diz
o sistema para executar o comando como se você fosse o usuário root. O sistema pedirá a senha root e, em seguida,
executar o comando. Mais uma vez, o sistema não verificar novamente com você para ver se você realmente quer fazer isso, então
quando
você estiver usando sudo, ser duplamente cuidadoso você sabe o resultado do comando que acabou de escrever antes de
pressionar Enter!
Comandos
Para se locomover na CLI Linux, você navegar através do sistema de arquivos usando comandos como cd e ls. Comandos
para executar os programas são executados a partir do terminal também. Comandos comuns que você vai usar em uma base
regular e deve
aprender estão incluídas na Tabela 2-1.
Tabela 2-1. Comandos Linux comuns
Comando
Significado
ls
arquivos de lista no diretório atual
CD
Diretório alteração
pwd
diretório de trabalho de impressão
rm filename
remover filename
mkdir directoryname
fazer diretório com directoryname
rmdir directoryname
remover diretório vazio
gato textfile
exibir conteúdo do arquivo de texto no terminal
mv newfile velhoArquivo
mover (renomear) velhoArquivo para newfile
cp velhoArquivo newfile
copiar velhoArquivo para newfile
Homem de comando
Manual de exibição de comando
encontro
leia data do sistema / hora
eco
eco do que é digitado no terminal de volta
grep
programa de pesquisa que usa expressões regulares
sudo
realizar como usuário root
./ Programa
run programa
Saída
parar de sessão de terminal
A maioria dos comandos listados na Tabela 2-1 são auto-explicativos, embora alguns exigem explicação:
• homem: Sem dúvida, este é o comando mais importante. Se você não tiver certeza de que um
nomeadamente comando faz ou o que parâmetros / bandeiras que ele usa, digitando man comando em seu
Terminal traz a página de manual Unix com todas as informações que você sempre quis saber.
Quando você abrir uma página, que normalmente começa com o nome do comando, seguido por um
sinopse das suas várias permutações, uma descrição detalhada do comando, todas as suas opções
e bandeiras, e que essas opções e bandeiras fazer. Enquanto você estiver na exibição manual, basta pressionar
Enter para rolar e pressione q para retornar ao terminal.
• ls: Este comando lista os arquivos em qualquer diretório que acontecer de você estar em; usando bandeiras como -l
e -a inclui informações como permissões de arquivo e datas de modificação. Quando você usa
a bandeira -l, a primeira parte de cada entrada mostra como algo parecido com isto
drwxr-xr-x
Escudos em Linux
Escudos em Linux têm nomes como o shell Bourne, o shell C, e o shell Korn. Um escudo é simplesmente uma interface baseada
em texto
entre o usuário e o sistema operacional, permitindo ao usuário executar comandos diretamente para o sistema de arquivos. Cada
shell tem seus prós e contras, mas seria enganoso dizer que um é melhor que o outro. Eles são, cada um, simplesmente
maneiras diferentes de fazer a mesma coisa. O Bourne-again shell, também referido como o bash, foi escrito como um substituto
para o shell Bourne e é o padrão na maioria das distribuições Linux, incluindo Raspbian do Pi. Ele pode ser identificado com o
seu
prompt de login, o "$". Bash tem alguns atalhos de teclado que podem se tornar muito útil se você faz um monte de edição e
arquivo
manipulações no terminal, como veremos em nossos projetos. (Ver Tabela 2-2.)
Ou combinação de teclas
Função
Ctrl + A
Move o cursor para o início da linha
Ctrl + C
Pare processo atualmente em execução
Ctrl + D
Sair equivalente a digitar exit
Ctrl + E
Move o cursor para o fim da linha
Ctrl + H
Excluir personagem na frente do cursor
Ctrl + L
Limpar o terminal
Ctrl + R
Pesquisa histórico de comandos
Ctrl + Z
Suspender um programa
Seta Esquerda / Direita
Mover o cursor para a esquerda / direita um caractere
Seta para Cima / Baixo
Percorre comandos anteriores
Shift + PageUp / PageDown
Mover uma página acima ou abaixo na saída do terminal
Aba
Comando ou nome de arquivo de conclusão
Tab Tab
Mostra todas as possibilidades de nomes de comando ou arquivo
Mais uma vez, a maioria dos atalhos são auto-explicativos, mas os dois últimos suportar algumas explicações adicionais:
• Tab: Ao pressionar a tecla Tab quando você estiver no meio da digitação de um nome de arquivo longo vão quer
completar o nome do arquivo para você ou oferecer-lhe uma lista de opções. Por exemplo, se você estiver no
/ Desktop / MyFiles / diretório e gostaria de examinar rapidamente o myextralongfilename.txt
arquivo, basta digitar myextr gato e pressione Tab. Bash irá preencher o nome do arquivo para você,
assumindo que não há outros arquivos com origens semelhantes. Se há outros que começam com
myextr, festança vai fazer um som de erro; neste caso, pressione Tab novamente para ver uma lista de opções.
• Tab Tab: Esse atalho funciona com comandos também. Em seu terminal, digite l e pressione o
Tecla Tab duas vezes. Bash irá responder com todos os comandos disponíveis que começam com "l". (Pode ser uma
lista bastante longa.) Você pode repetir o processo adicionando uma letra de cada vez e pressionar Tab
duas vezes de novo, o shell irá preencher todos os comandos possíveis ou arquivos, dando-lhe uma pré-visualização de todos
resultados possíveis.
Gerenciadores de pacotes
Quando você precisar instalar um programa a partir de uma fonte on-line no Windows, você normalmente o download de um
arquivo .exe ou .msi,
clique duas vezes nele e siga as instruções para instalar o programa. Da mesma forma, se você estiver usando um Mac, você
baixar um
arquivo .dmg e copie o arquivo extraído para o disco rígido ou usar o pacote de instalação incluído.
Linux, no entanto, é um pouco diferente. Linux mantém o controle de seu software usando um sistema de gerenciamento de
pacotes, ou
gerenciador de pacotes. O gerenciador de pacotes é usado para baixar, instalar, atualizar, configurar e remover programas
para o sistema operativo. A maioria dos gestores de pacotes manter um banco de dados interno de software instalado, bem como
todos
dependências e conflitos para evitar problemas ao instalar o software. Gerenciadores de pacotes variam de acordo com a
distribuição.
Debian (e a Pi) usar aptitude, enquanto Fedora usa o gerenciador de pacotes RPM, e Puppy Linux utiliza PETget.
Se você tem experiência de jogar jogos baixados, você pode estar familiarizado com jogos de vapor; você pode se surpreender ao
aprender interface que o Steam é uma variante de um gerenciador de pacotes. A maioria dos gestores de pacotes têm tanto de
linha de comando e
interfaces gráficas. Ubuntu, por exemplo, usa o front-end Synaptic para seu gerente de aptidão.
Editores de texto
Ao contrário do Windows e Mac-que possuem Notepad, WordPad, e TextEdit-Linux tem várias possibilidades quando se trata
a editores de texto. Há um editor padrão instalado na maioria das distribuições, chamado gedit. Não só é um pouco leve,
Também não está incluído na Pi. O editor do Pi embutido no texto, Leafpad, é decente. E você também pode encontrar-se
recebendo
confortável com nano-outro editor de texto que é pré-instalado no Pi e tem uma interface muito intuitiva. Mas se você
fazer qualquer trabalho de programação séria sobre o Pi, você pode eventualmente querer atualizar para uma das duas potências
do Linux: vi
ou Emacs.
Ambos vi e emacs não são apenas poderosos editores, eles podem ser usados como IDEs (Integrated Development
Ambientes), bem como, com coloração do texto chave / destaque de sintaxe e de conclusão de palavras. Ambos são extensíveis e
customizáveis; emacs, por exemplo, tem mais de 2.000 comandos internos, enquanto que vi pode ser personalizada com as suas
muitas portas
e clones. Na verdade, um dos clones do vi, vim (Vi Improved), está incluído com quase todas as distribuições Linux e é o
que eu vou discutir aqui porque é mais de um IDE que o seu antecessor, vi. Emacs pode ser programável pelo usuário com Lisp
extensões, mas não é um clone do vi para cada sentido de estética que possa ter.
Há, no entanto, uma espécie de guerra entre Emacs e Vim. Os usuários do Linux e Unix fortemente preferem um ou
outro, e eles vão se surpreendentemente animado quando se discute / discutindo os prós e contras de cada um. Como
consciencioso
escritor, eu vou apresentá-lo para ambos os programas aqui, mas como um usuário emacs die-hard, eu farei o meu melhor para
influenciar sua escolha
longe do swill que é Vim. Enquanto discutimos programas e scripts ao longo do livro, eu não vou mencionar como eles são
escrito, apenas o que o resultado final se parece. Você pode até mesmo decidir que gosta do Pi Leafpad, o que é perfeitamente
tudo
direito também.
Usando Vim
Como eu disse, vim é um editor de modal, o que significa que você alternar dentro e fora de Inserção e modos Normal. Para
iniciar um arquivo de teste,
navegar para o seu desktop e tipo
vim testfile.txt
Em vez de abrir outra janela, vim abre no terminal, que pode ficar confuso se você não está acostumado a isso.
Você deve ser confrontado com uma janela e não ao contrário o mostrado na Figura 2-4.
Usando nano
Como mencionado anteriormente, nano é provavelmente o mais fácil dos três editores de usar e se acostumar. Para iniciar um
arquivo em nano,
basta digitar
nano testfile.txt
em seu terminal, e você deve ser saudado por uma tela como a da Figura 2-6. Tal como acontece com os outros dois editores, se
o arquivo especificado existe, nano irá abri-lo; Se ele não existir, nano irá criá-la para você.
Figura 2-6. Tela de abertura nano
Como você pode ver na Figura 2-6, os comandos mais comuns são listados na parte inferior, com o caractere circunflexo (^)
significando
a tecla Ctrl. Para salvar um arquivo, digite Ctrl + X para sair. Você será perguntado se você deseja salvar o arquivo, e sob que
nome. Dentro
geral, tipo "Y" e, em seguida, Enter para salvar o arquivo que você aberto ou criado.
Leafpad
O outro editor devo descrever é Leafpad-o, editor de texto cheio de recursos (se leve) baseado em GUI que vem
pré-instalado no Pi. Para abri-lo, clique no ícone no canto inferior esquerdo extremo da área de trabalho do Pi, em seguida,
selecione
"Acessórios" e depois "Leafpad." (Ver figura 2-7.)
Figura 2-7. Abrindo Leafpad
Como você vai ver, parece que a maioria dos editores que você está acostumado, como o TextEdit ou bloco de notas. Se você
estiver confortável usando
que, por todos os meios, por favor, faça. Eu não mencioná-lo muito só porque o seu único inconveniente principal é que ele é
utilizável apenas se
você está trabalhando no ambiente de trabalho gráfico do Pi. Se você estiver conectado remotamente para o Pi e estão trabalhando
exclusivamente através do
linha de comando, Leafpad é inacessível.
Resumo
Isto conclui a sua introdução ao Linux. Enquanto que em nada faz de você um expert, ele deve dar-lhe uma saudável
apreço por tudo o que este sistema operacional poderoso pode fazer. Você aprendeu o básico de como navegar através de seu
sistema de arquivos
usando apenas a linha de comando, e você foram introduzidas para o shell. Você também já foi introduzida para as escolhas de
editores de texto que você tem disponível para você e espero ter escolhido aquele que você se sinta confortável. Uma vez que
você
confusa ao redor com ele em seu suficiente Pi, você pode encontrar-se instalar o Linux em um ou mais dos seus outros
máquinas. Está tudo bem, eu não vou contar a ninguém.
No próximo capítulo, eu vou fazer o meu melhor para dar-lhe uma sólida introdução ao Python.
Capítulo 3
Apresentando Python
Você pode se lembrar do primeiro capítulo que o ímpeto por trás da criação do Raspberry Pi era fazer
programação mais acessível para todos, especialmente as crianças. Para esse efeito, os criadores desejado para libertar um
relativamente
computador poderoso que não custaria muito dinheiro e que qualquer um poderia simplesmente se conectar a um teclado,
mouse e monitor e iniciar a programação.
Outra faceta de que a criação era para tornar a programação mais fácil, e por essa razão Eben Upton e sua
companheiros decidiu incluir Python como parte integrante do sistema operacional do Pi. Python, eles fundamentado, era um
linguagem poderosa, mas foi bastante simples para alguém sem qualquer experiência em programação para pegar rapidamente.
Neste capítulo, vou dar-lhe uma introdução rápida e suja para Python, seguindo seus passos através do processo de criação
alguns scripts, executá-los, e ao longo do caminho aprender alguns dos princípios básicos dessa linguagem poderosa. Eu vou
assumir que
você tem pelo menos um conhecimento de passagem do que Python é talvez uma ligeira pouco de conhecimento de programação,
mas não
mais do que isso, porque vamos enfrentá-lo, é por isso que você comprou este livro.
Introdução ao Python
Vamos começar. Há três maneiras de executar Python em seu Pi: usando o intérprete IDLE built-in, em um terminal
janela, ou como um script. Vamos começar usando IDLE.
Correr Python Usando IDLE
O intérprete IDLE é uma espécie de "sandbox" onde você pode trabalhar com Python interativamente sem ter que escrever
roteiros inteiros para ver o que eles fazem. O nome IDLE significa "Integrated Development Environment", mas também paga
homenagem a Eric Idle, um dos membros fundadores do grupo comédia britânica Monty Python. (Veja a barra lateral
"Get Me um bosque!")
Porque é a forma mais user-friendly de experimentar código, vamos usar IDLE primeiro. Clique duas vezes no ícone no seu
área de trabalho (mostrado na Figura 3-1), e você deve ser saudado por uma janela semelhante à Figura 3-2.
Figura 3-1. O ícone IDLE
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
GET ME um bosque!
Python é não nomeado após a cobra; em vez disso, seu criador, van Rossum, nomeou-o depois a trupe de comédia
Monty BBC
Python, de quem ele é um grande fã. Como resultado, as referências de Monty Python abundam na língua. O
tradicional
"Foo" e "bar" usado para ilustrar código em outros programas tornam-se "spam" e "ovos" em exemplos de Python.
Você vai
ver referências a "Brian", "ni" e "arbustos", todos os quais devem fazer sentido para você, se você é um fã
de Monty Python. Até mesmo o intérprete, IDLE, é nomeado após membro do MP Eric Idle. Se você não estiver
familiarizado com
seu trabalho, peço-lhe para acabar com este livro e ir assistir a alguns dos seus esboços. Recomendo vivamente A
Esboço do papagaio morto e O Ministério das caminhadas parvas. Não é necessário estar familiarizado com o seu
trabalho para aprender a
língua, mas pode ajudar a aumentar o seu prazer dela.
Correr Python Usando o Terminal
Vamos rapidamente visitar outra maneira de utilizar o pitão, que consiste em utilizar o terminal. Abra o terminal em sua área de
trabalho do Pi,
e no tipo prompt de Python. Você será recebido com o mesmo texto introdutório como aquela que abre o IDLE
janela e o mesmo prompt >>> interativo. Neste ponto, você pode emitir os mesmos comandos como discutido na
anterior secção "Executar Usando Python IDLE", e obter os mesmos resultados.
Capítulo 3 ■ Apresentando Python
Correr Python usando scripts
O problema com ambos IDLE e o terminal é que você não pode escrever verdadeiros "scripts." Assim que você fechar a janela,
quaisquer variáveis que você declarados desaparecer, e não há nenhuma maneira para salvar seu trabalho. O último método de
escrever Python, em
um editor de texto, aborda esse problema. Você pode escrever um programa completo, salve-o com a extensão .py, e depois
executá-lo
a partir de um terminal.
Vamos escrever um script muito curto usando Leafpad, editor de texto nativo do Pi. Abra-o a partir do menu Acessórios
(como mostrado na Figura 3-3).
Figura 3-3. Abrindo Leafpad
Na janela resultante, digite o seguinte:
X=4
y=x2
impressão y
Salve-o em seu desktop como test.py. Agora, abra um terminal e navegue para sua área de trabalho, digitando
cd ~ / Desktop
Agora você pode executar o seu script escrevendo
python test.py
Você deve ser recompensado com o número 6. Parabéns! Você acabou de escrever, salvo, e executar o seu primeiro
Script Python!
Números
Números parecem auto-explicativo, e de fato, se você tem alguma experiência em programação você vai reconhecer Python de
tipos de números: inteiros, shorts, longs, floats, e outros. Python tem operadores de expressão que lhe permitem
realizar cálculos sobre esses números; estes incluem +, -, / e *,%; operadores de comparação, tais como>,> = e! =, ou,
e e; e muitos outros.
Todos estes operadores são construídos dentro, mas você pode importar outros usando outro dos grandes características do
Python:
importação de módulos. Os módulos são bibliotecas extras que você pode importar em seu script que adicionar ao nativo do
Python
funcionalidade. A este respeito, Python é muito parecido com Java: se você quiser fazer alguma coisa, as chances são muito boas
que
uma biblioteca existe para tornar mais fácil. Por exemplo, se você quiser analisar o texto, como páginas da web, você pode
conferir
o módulo bonita Soup. Precisa efetuar login em um computador remoto (e você, com alguns projectos)? Importar
o módulo telnetlib e tudo que você precisa está disponível. E para os números, o módulo de matemática tem todos os tipos de
funções matemáticas que adicionam funcionalidades número de Python. Você pode experimentá-lo por si mesmo: em uma sessão
IDLE, tipo
>>> ABS (-16)
e você deve obter o resultado 16. Isso porque a função de valor absoluto (I discutir o tema das funções em seu próprio
mais adiante neste capítulo) já está contido nas bibliotecas padrão do Python. No entanto, a digitação
>>> Ceil (16.7)
retornará um erro, porque a função teto é não nessas bibliotecas padrão. Deve ser importado. Agora digite
>>> Matemática importação
>>> Math.ceil (16.7)
e o terminal irá retornar 17,0, -O tecto de x, ou o menor número inteiro maior do que x. Enquanto você pode não precisar
para usar a função de teto, simplesmente importando o módulo de matemática dá-lhe todos os tipos de funcionalidades extras,
como
funções logarítmicas e trigonométricas e conversões angulares, todos com apenas uma linha de código.
Cordas
Em Python, uma string é definido como uma coleção ordenada de caracteres usados para representar a informação baseada em
texto. Python
não tem um tipo char como C e outras linguagens; um único caractere é simplesmente uma string de um único caractere. Cordas
pode
conter qualquer coisa visível como texto: letras, números, pontuação, nomes de programas, e assim por diante. Isto significa,
claro, que
X 4 = >>>
e
>>> X = "4"
são não a mesma coisa. Você pode adicionar 3 para o primeiro exemplo de x, mas se você tentou fazê-lo com o segundo exemplo,
Python
daria uma de erros que x aponta para uma string com um valor de 4, e não um inteiro, porque o 4 está entre aspas.
Python não distinguir entre aspas simples e duplas; você pode colocar uma corda em ambos, e será
reconhecida como uma string. Isto tem um bom efeito colateral: você pode colocar um caractere de aspas de outro tipo dentro de
uma string
sem ter de fugir com uma barra invertida como você teria que em C. Por exemplo:
>>> "Brian"
da-te
"Brian"
sem quaisquer caracteres de escape necessários.
Existem algumas operações básicas de cordas provavelmente você vai usar muitas vezes em sua carreira, como Python len (o
comprimento de uma string), concatenação, iteração, indexação e corte (equivalente do Python da operação substring). Para
ilustrar, digite os seguintes pedaços de código em uma sessão ociosa e ver que os resultados correspondam à saída do que você
Veja aqui:
>>> Len ('matagal')
9
'matagal' é de 9 caracteres.
>>> 'Spam' + 'e' + 'ovos'
'Spam e ovos'
'spam', 'e', e 'ovos' são concatenados
>>> Title = "sentido da vida"
>>> Para c em título: print c,
Significado da vida
Para cada personagem em 'title', imprimi-lo.
>>> S = "spam"
>>> s [0], s [2]
('s', 'a')
Listas
Listas, juntamente com dicionários, são, indiscutivelmente, o mais poderoso dos tipos de dados internos do Python. Eles são, na
verdade,
coleções de outros tipos de dados e incrivelmente flexíveis. Eles podem ser alterados no lugar, crescem e encolhem sob demanda,
e
conter e estar contido em outros tipos de objetos.
Se você tem experiência com outras linguagens de programação, você pode reconhecer listas Python como equivalente a
matrizes de ponteiros em, digamos, C. Por uma questão de fato, as listas são na verdade matrizes em C dentro do interpretador
Python. Como tal, eles
pode ser coleções de qualquer outro tipo de objeto, já que seus objetos contidos ponteiro pode estar apontando para, literalmente,
qualquer
outro tipo de dados, incluindo outras listas. Eles são também indexáveis tão rápidas quanto indexar uma matriz C. Eles podem
crescer e encolher
no local, como C ++ e listas 's C #; eles podem ser fatiado, em cubos, concatenado-praticamente qualquer coisa que você faz com
cordas,
você pode fazer com listas.
Para criar uma lista, você declará-lo com colchetes ([]), como assim:
>>> L = [1, 2, 3, 4, 5]
ou
>>> Arbustos = ["spam", 1, 2, 3, "56"]
após o qual você pode jogar todos os tipos de jogos com eles, como concatenação e assim por diante:
>>> L + arbustos
[1, 2, 3, 4, 5, 'spam', 1, 2, 3, '56']
>>> Len (arbustos)
5
>>> For x in l: print x,
12345
>>> Arbustos [3]
3
PYTHON AJUDA
Se alguma vez você ficar preso em Python, sua documentação on-line é um recurso muito útil. Aponte seu
navegador para
http://docs.python.org/2/library/stdtypes.html, e você pode ler sobre todos os tipos de dados padrão
disponível para você e como usá-los. Da mesma forma, http://docs.python.org/2/library/functions.html
irá mostrar-lhe todas as funções que estão sempre disponíveis para você usar. Sua função ajuda built-in também é
muito
minuciosa. Para testá-lo, em uma sessão IDLE, tipo
import string
e depois
ajuda (string)
Você será recompensado com tudo que você sempre quis saber sobre cordas.
Dicionários
Como as listas, dicionários Python são coleções extremamente flexíveis de objetos. Os dicionários diferem na medida em que, ao
contrário de listas, eles
não são ordenadas; você pode acessar itens de uma lista por seu índice, mas os itens de um dicionário são acessados por chave.
Noutros
palavras, dicionários conter pares de valores-chave; solicitando a chave retornará o valor associado a essa tecla. Para
exemplo, na seguinte dicionário, o valor "spam" pode ser acessado por sua chave, "alimento":
>>> Dict = {'comida': 'spam', 'bebida': 'cerveja'}
>>> Dict ["alimento"]
'Spam'
IF testes
A próxima funcionalidade de programação veremos é a instrução if e seus derivados elif e else. Tal como seria de
espere, se realiza um teste e, em seguida, seleciona a partir de alternativas com base nesses resultados dos testes. O mais básico if
se parece com isso:
>>> Se 1:
print 'true'
Verdade
'1' é o mesmo que o Boolean "true", de modo a declaração anterior será sempre imprimir "true".
■ Observação Quando você digita o se instrução no prompt do Python em seu terminal (ou IDLE) e terminá-la com
dois pontos, o
próximo prompt será sempre o reticências (...), o que significa Python está esperando um bloco recuado. Se você é
feito com o
bloco recuado, apenas pressione Enter novamente para acabar com ela. Se você estiver escrevendo um programa
em um editor de texto, certifique-se de recuar os blocos
você precisa recuar.
De agora em diante, eu vou formatar o código como se fosse em um editor de texto e imprimir a saída como se você tivesse
executar o script.
Um teste mais complicado usa elif e else, como o seguinte:
x = 'spam'
se x == 'ovos':
impressão "ovos são melhores quando eles são verdes!"
elif x == 'ham':
imprimir "este leitão pequeno permanecido em casa! '
outro:
print "Spam é uma coisa maravilhosa!"
Loops
Normalmente, um programa é executado a partir de cima para baixo, uma linha de cada vez. No entanto, algumas declarações
podem fazer com que o
a execução do programa a saltar por todo o lugar; estas declarações de controle de fluxo incluem IF / thens e loops.
O loop mais simples é provavelmente um bloco de código, executou um determinado número de vezes, como
para x no intervalo (0, 10):
print "Olá"
Resumo
Neste capítulo, eu dei-lhe uma breve introdução, mas prático para Python, começando com um pouco de sua história e, em
seguida,
continuando com a forma de interagir com o prompt do Python, ajudando você a aprender alguns dos seus tipos de dados, e em
seguida, mostrando
você um pouco de escrita script utilizando um editor. Não se preocupe se você não pode levar todas essas informações em uma só
vez; há muito
para aprender aqui, e eu vou explicar o que estou fazendo à medida que progredimos através dos projectos no livro.
No próximo capítulo, vamos dar uma olhada em Eletrônica 101. Você vai ser a construção de projetos, depois de tudo, e antes
você faz, você deve ter uma compreensão básica dos conceitos de eletricidade, poder, e várias peças eletrônicas e dispositivos.
Capítulo 4
Eletrônica em 100 mph
Você comprou este livro para aprender a programar usando Python e para aprender sobre o Raspberry Pi. Você também quer
construir
alguns projetos interessantes, aprender como o Pi roda Linux, e aprender como você pode usar Python para fazer a interface com
o Pi e
vários add-ons.
Bem, nós vamos chegar a isso, mas antes que eu preciso para explicar alguns outros pré-requisitos essenciais, ou seja,
as regras de eletrônica e eletricidade, ferramentas, segurança, e alguns how-tos. Eles podem não ser os temas mais sexy, mas
qualquer livro que lida com projetos de construção de eletrônicos deve ter pelo menos um capítulo que lida com conceitos como
A lei de Ohm e Como Soldar, e o fato de que, sim, é perfeitamente possível para eletrocutar-se com uma bateria de 9V.
(Veja o quadro.) Para não mencionar que eu não gostaria que meus leitores a sofrer qualquer lesão corporal, porque eu não fazer o
suficiente
instruções de segurança. Então, por favor, pelo menos desnatado neste capítulo, e tomar algumas notas se esta informação é
completamente novo para
vocês. Se você terminar o capítulo e sentem a necessidade de proteger-se por vestir de uma maneira semelhante à Figura 4-1, que
é
perfeitamente bem.
Figura 4-1. Equipamento de segurança possíveis laboratório
Cortadores de fio
Você vai precisar de dois tipos de cortadores: Cortadores regulares (Figura 4-6) e cortadores finos (Figura 4-7).
Arquivos
Você não vai precisar de nada extravagante quando se trata de arquivos-apenas um conjunto de arquivos pequenos com diferentes
cortes, ou aspereza. o
cortes mais finos podem ser usados para tornar áspera uma junta antes de soldá-la ou a remoção de um bocado de solda a partir de
uma extremidade do arame antes de
inseri-lo em uma placa de ensaio, enquanto os cortes mais ásperas pode ser usado para remodelar caixas de metal e plástico,
aumento
tamanhos de buracos, e várias outras tarefas.
Lupa Luz
Você estará trabalhando com lotes de objetos muito pequenos, de resistores de fios para conexões de servo, e seus olhos vão
começar
cansado rapidamente. Uma boa lâmpada de mesa ajustável com uma lupa construído em é um investimento extremamente
valioso. O que eu uso
é projetado para uso por joalheiros e beaders, e a diferença que faz quando eu estou tentando trabalhar com peças em miniatura
não pode ser exagerada. (Ver Figura 4-8.)
Colas Assorted
Falando de cola, você provavelmente vai querer pegar uma variedade de colas outro, não cola quente. Cola-tudo é um deve-
tem (obter uma versão de marca, porém, não é uma marca de loja), como é a modelagem de cimento. Eu também tenho um
estoque de 5 minutos
epóxi e cimento de borracha e recentemente descoberto Gorilla Glue para ser uma das colas mais impressionante ainda. Você
também pode
encontrar um uso para esses paus-os-solda fria aqueles onde você misturar duas substâncias putty-like juntos para formar uma
"argila"
que endurece até uma consistência semelhante a de aço.
Adicionar "fita" para esta lista também; obter alguma fita adesiva transparente regular, um pouco de fita dupla face, fita adesiva,
elétrico
fita, e-tape do curso de conduta.
Multímetro
Um multímetro mede diferentes aspectos de um circuito de tensão elétrica através de determinados pontos, corrente e resistência.
(Ver Figura 4-9.) Se você obter um análogo ou uma versão digital é com você, mas estar preparado para gastar um pouco de
dinheiro,
porque um bom multímetro é uma ferramenta incrivelmente valiosa. Ele pode ser usado para rastrear curtos elétricos, verifique se
você está
usando a voltagem correta, e descobrir o quanto a resistência existe entre dois pontos em um circuito.
Capítulo 4 ■ Eletrônica em 100 MPH
Figura 4-9. Analógica e multímetros digitais (© www.digimeter.com)
Ao escolher o seu multímetro, verifique se ele pode medir ambos os níveis de tensão AC e DC, porque é provável
você estará usando ambos em algum ponto. Deve ser capaz de medir a resistência e continuidade, bem como de corrente. A
maioria
característica importante procurar, no entanto, é a facilidade de utilização. Se você não sabe como usar o multímetro, você não vai
usá-lo, e você estaria perdendo uma ferramenta importante. Portanto, obter um que você gosta, que faz sentido para você, e, em
seguida, passar algum tempo
com a aprendizagem manual de como usá-lo.
Suprimentos de energia
Quando se trata de alimentar suas experiências e projetos, há algumas rotas diferentes que você pode tomar. Obviamente,
muitas vezes você vai estar usando pilhas ou baterias, e eu vou falar sobre aqueles para cada projeto específico. No entanto,
quando
trata de alimentar um protótipo ou apenas determinar se uma determinada configuração funciona, você não pode ir mal com uma
parede
Conversores AC-CC, que vêm com dispositivos eletrônicos quase todos estes dias a verruga-.
Você pode obter uma verruga parede ajustável em uma loja de eletrônicos, que eu recomendo, mas você também pode assombrar
o seu local de
brechó. Em algum lugar, enterrado nas costas pelo sistema eletrônico, você pode encontrar uma caixa cheia de fontes de
alimentação abandonados,
por cerca de um dólar cada. Você pode cortar o conector para que você possa ligá-lo diretamente em sua placa de ensaio ou obter
um adaptador como o da Figura 4-10.
Placa de ensaio
A placa de ensaio é outro must-have quando você está colocando eletrônica em conjunto para ver se tudo funciona como deveria.
Você pode ir full-out, com um modelo de luxo com conexões de energia e medidores e todos os tipos de sinos e assobios
(como mostrado na Figura 4-11).
Figura 4-11. Configuração placa de ensaio Prototipagem
Faixa de poder
Você vai precisar de um filtro de linha, mas não precisa ser nada elaborado. É apenas uma boa idéia ter todo o seu
lâmpada eletrônica-desk, ferro de solda, Pi, e assim por diante-conectado a uma fonte de modo que você tem uma maneira
infalível para abortar
se você precisar. Um toque de um botão, e tudo se apaga. Obter um com um protetor contra surtos construído em se você puder.
Ferro de solda
Outra ferramenta crítica na sua lista deve ser um ferro de solda, e este é o único item que você não deve economizar em quando
se trata de custo. O ferro $ 9,99 você pode obter em sua loja de departamento local pode ser tudo certo para mexer com alguns
circuitos em torno da casa, mas quando você é um construtor séria / hobby, você precisa de uma boa qualidade, solda ajustável
ferro. I têm um WES51 Weller (mostrado na Figura 4-14).
Figura 4-14. Estação de solda
É facilmente o melhor $ 100 que eu já passei na minha carreira eletrônica. Obter um com um stand, calor ajustável, e dicas que
você
pode trocar. Confie em mim: os seus projetos vão agradecer-lhe quando você pode usar a temperatura correta para fazer a fusão
de solda
sem derreter o seu circuito, ou quando você pode usar o mesmo calor para remover uma junta de solda ruim.
Enquanto você está comprando para o ferro, obter alguns acessórios de solda também. Uma solda-otário (a vácuo à mão
bomba que remove solda derretida das articulações) é um must-have, como é uma ferramenta ajudando-as mãos. (Veja a Figura 4-
15).
Extintores no pronto
Deixe-me lhe contar uma pequena história. Quando eu estava construindo meu primeiro pequeno robô móvel com o Pi, eu estava
usando um polímero de lítio
(Lipo) bateria pela primeira vez. Era uma pequena bateria 11.1V, 1300mAh. Eu estava ligando-o aos meus servos motores, e eu
conseguiu curto os terminais negativos e positivos, juntamente com um jacaré.
Imediatamente após o alto pop! E a centelha, o pacote começou a esquentar incrivelmente rápido, e a embalagem
começaram a inchar. Pensando tão rápido quanto eu podia, eu consegui desligar o jacaré, deixou cair o pacote para o
meio do chão e jogou um copo de água sobre a bateria. Eu por pouco conseguiu escapar de uma explosão, e eu
Descobri mais tarde que as baterias LiPo embalar completamente um perfurador.
A moral desta história é que, embora eu usei um copo de água, eu tive um extintor de incêndio nas proximidades que eu estava
pronto
para usar se eu tinha precisava, e assim se você. Eles não são caros, e eles são bem vale o custo quando se trata de
possivelmente salvar sua casa ou oficina de um incêndio. Obter um extintor, e não se esqueça de mantê-la carregada.
Além disso, certifique-se de aprender a usar o seu extintor de incêndio antes de você precisar dele. Pense nisso como sendo como
o pulverizador do urso como
você está caminhando nos confins do Alasca e precisa se defender de um urso. Você iria praticar a usá-lo antes de ir
caminhadas, uma vez que pode ser extremamente difícil de ler as instruções durante a execução de um urso irritado. O seu
extintor de incêndio
é semelhante pode ser muito difícil de ler e seguir as instruções enquanto sua oficina está se transformando em um remake de
O Inferno Towering. Familiarize-se com ele, e espero que você nunca vai ter que usá-lo.
Mantenha um kit de primeiros socorros portátil.
Embora isto deve ir sem dizer, sempre tem um kit de primeiros socorros nas proximidades. Você não precisa de um nível 1 Kit de
Emergência completa
que você poderia assumir uma expedição à Antártida, mas um kit pequeno, bem abastecido deve estar em algum lugar nas
proximidades.
O kit deve conter alguns Band-Aids, álcool, cotonetes, e talvez algumas outras probabilidades e extremidades. É difícil
soldar uma placa quando você está sangrando por toda parte.
Nesta última seção deste capítulo introdutório eletrônica, vou dar-lhe algumas dicas sobre como soldar. Soldar é uma arte
tanto como uma habilidade, e faz exame da prática. Se você nunca soldadas antes, suas primeiras articulações são obrigados a ser
irregular,
aglomerados feio, mas melhora pode ser rápido se você ficar com ela. Não mais do que algumas horas passadas componentes de
solda
juntos para a prática pode fazer uma diferença enorme quando você faz isso para um projeto real.
Solda basicamente divide em quatro etapas: preparar suas superfícies, estanho, se necessário, ligar as partes,
e aquecê-los.
1.
Prepare as suas superfícies. Se você está conectando fios a outros fios ou para outro à superfície
Retire o material isolante da última meia polegada ou assim e torcer os fios juntos para fazer
um grupo compacto. Outras peças de metal podem ter de ser limpos, e se for um particularmente
superfície lisa, desbaste com lixa pode ajudar a solda ficar melhor para ele.
2.
Então, se necessário. Limpar uma superfície é simplesmente derretendo um pouco de solda para ele antes de ficar
que a outra superfície. É uma boa prática para entrar ao prender arame para uma perna IC, para
exemplo. Um fio de estanho, aquecê-lo a partir do fundo com o ferro de solda, e mantenha a solda
para o topo. Quando o fio fica quente o suficiente, a solda irá derreter a direita nele.
3.
Conecte as peças. Se for possível, ligar as partes fios mecanicamente-twist juntos, envoltório
fios em torno de uma perna de IC, e assim por diante. Se isso não for possível, é onde suas mãos ajudando-
ferramenta entra em jogo a usá-lo para segurar as peças juntas.
4.
Aqueça as peças. Com um limpa ponta do ferro de solda, aqueça o conjunto, mantendo a solda a ele.
Quando a conexão aquece o suficiente, a solda irá derreter e fluir para a articulação.
O último passo é provavelmente o mais importante. A ponta do seu ferro devem estar limpas; adquirir o hábito de limpá-lo
em uma esponja úmida sempre que você terminar uma articulação, e antes de iniciar outra. Uma dica limpo irá transferir o calor
melhor.
Também deve aquecer o conjunto, não a solda. Não derreter a solda para a ponta do ferro de engomar e, em seguida, para que
manchar
a conexão, pois você corre o risco de fazer uma junta de solda fria (mostrado na Figura 4-17), que está fadado ao fracasso
eventualmente. Lembre-se: aquecer as partes, e não o de solda. Se você tiver problemas para obter a quente conjunta suficiente
para a solda
para derreter para ele, você pode derreter um pouco de solda na ponta do seu ferro antes de tocar em uma articulação, desde a
solda
transferir o calor de forma mais eficaz. Você deve acabar com uma junta que se parece com o mostrado na Figura 4-18.
Resumo
Depois de ser apresentado a alguns princípios básicos de eletricidade, você aprendeu o caminho de volta alguns dos comum
ferramentas de eletrônicos no laboratório, e aprendeu o básico de como usá-los de forma segura. Eu também apresentei a solda e
apontou na direção de alguns recursos para aprender a fazê-lo melhor.
Vamos juntar nossas ferramentas e cabeça nos projetos, começando com um simples que não requer quaisquer ferramentas.
WebBot.
Capítulo 5
O Web Bot
Como qualquer um que tenha passado algum tempo em tudo on-line pode lhe dizer, há uma grande quantidade de informação
disponível na Internet.
De acordo com índices do Google, a partir de 2013, há 4,04 bilhões de páginas da web em existência. (Ver Figura 5-1.) Claro, um
monte
dessas páginas são, provavelmente, imagens do gato e pornografia, mas também há centenas de milhões de páginas com
informações sobre eles. Útil informações. Tem sido dito que cada pedaço de informação que foi digitalizado
existe em algum lugar na internet. Ele só tem que ser encontrado, não é uma tarefa fácil quando a Internet é algo
como a Figura 5-1.
Figura 5-1. Mapa visual da Internet (© 2013 http://internet-map.net, Ruslan Enikeev)
Bot Etiquette
Um fator que você precisa para manter em mente, você deve construir um web crawler funcionando, é bot etiqueta. Eu não quero
dizer
etiqueta no sentido de garantir que mindinho do bot é estendido quando beber chá. Pelo contrário, há certa
sutilezas você deve observar quando você programar o seu bot para rastrear sites.
Uma é a de respeitar o arquivo robots.txt. A maioria dos sites tem esse arquivo no diretório raiz do site. É um arquivo de texto
simples
que contém instruções para visitar bots e aranhas. Se o proprietário do local não quer determinadas páginas rastejou
e indexado, ele pode listar essas páginas e diretórios no arquivo de texto, e robôs cortês irá aderir aos seus pedidos.
O formato do arquivo é simples. Parece que este:
Agente de usuário: *
Proibir: / examples /
Proibir: /private.html
Este arquivo robots.txt especifica que não bots (User-agent: *) pode visitar (crawl) quaisquer páginas na / examples / pasta,
nem eles podem visitar a página de private.html. O arquivo robots.txt é um mecanismo padrão por sites que web pode
restringir visitas a determinadas páginas. Se você quiser que o seu bot para ser bem-vindo em todos os locais, é uma boa idéia
seguir essas regras.
Vou explicar como fazer isso. Se você optar por ignorar essas regras, muitas vezes você pode esperar que o seu bot (e todas as
visitas do seu
Endereço IP) para ser banido do site em questão.
Outra peça de etiqueta é controlar a velocidade de pedidos de informação do seu bot. Porque bots são computadores,
eles podem visitar e download de páginas e arquivos de centenas e milhares de vezes mais rápido do que os seres humanos
podem. Por esta razão,
é inteiramente possível para um bot para fazer tantas solicitações para um site em um curto espaço de tempo tal que pode
incapacitar um mal
servidor web configurado. Portanto, é educado para manter solicitações de página do seu bot a um nível administrável; a maioria
dos proprietários do site
são muito bem com cerca de 10 pedidos de página por segundo, muito mais do que pode ser feito à mão, mas não o suficiente
para trazer para baixo
um servidor. Mais uma vez, em Python, isso pode ser feito com uma função de descanso simples ().
Por fim, que muitas vezes pode ser problemático para falsificar sua identidade user-agent. A identidade do usuário-agente
identifica os visitantes
um site. Navegadores Firefox tem um certo user-agent, o Internet Explorer tem outra, e robôs têm ainda outra. por que
existem muitos sites que não querem bots para visitar ou rastrear suas páginas no total, cerca de bot-escritores dão a seus bots um
-agent usuário fraudulento, para torná-lo parecido com um navegador web normal. Isso não é legal. Você pode nunca ser
descoberto,
mas é uma questão de decência comum, se você tivesse páginas que você queria privado, você quer que os outros a respeitar os
pretende como bem. Faça o mesmo para outros proprietários do site. É apenas parte de ser um bom bot-escritor e internauta. Você
pode
simular user-agent do navegador, se você está a emular um navegador para outros fins, tais como teste de site ou para encontrar e
arquivos de download (PDFs, mp3s, e assim por diante), mas não para rastrear esses sites.
Resumo
Neste capítulo, você tem uma boa introdução ao Python, escrevendo um bot web, ou aranha, que podem atravessar a Internet para
você e download de arquivos que você achar interessante, talvez até mesmo enquanto você dorme. Você usou uma função ou
dois, construído
e adicionado a uma lista de objeto, e até mesmo fez algumas manipulação de cadeia simples.
No próximo capítulo, vamos transição longe do mundo digital e interagir com um fenômeno muito físico, o
clima.
Capítulo 6
A Estação Meteorológica
Desde tempos imemoriais, o homem foi fascinado pelo clima, fazendo perguntas como: "Será que vai chover para as nossas
colheitas?
Será que vai neve, para que possamos ir esquiar? Será que um tornado levar a nossa casa para um país fictício povoado por
sobrenatural
mulheres e primatas aéreas com capacidade? Nós obter algum tipo de tempo a cada dia: O que é que vai ser hoje "?
Previsão do tempo nem sempre tem sido uma busca científica. Pessoas ia rezar para os deuses da chuva para a chuva e para
os deuses do sol para a luz do sol. Se a oração não funcionou, eles costumam visitar um profeta ou um vidente, que professavam a
capacidade de olhar
para o futuro e prever o caminho de um sistema de baixa pressão vindo (embora não com essas palavras em particular, é claro).
Gradualmente, a ciência por trás o tempo foi descoberto, e nós já não teve que contar com uma pedra mágica para um
previsão. (Veja a Figura 6-1). As pessoas frequentaram a escola para se tornar meteorologistas e aprender sobre frentes tempo,
tempestade
surtos e outras informações relacionadas com o clima ciência.
Figura 6-1. A pedra tempo (imagem © 2010 Tom Knapp)
Usando um anemômetro
Uma parte importante de qualquer estação meteorológica é o anemômetro, o dispositivo que mede a velocidade do vento, porque
o vento
velocidade é um fator importante em qualquer previsão do tempo. Se for um dia frio (abaixo de 32 ° F ou 0 ° C, por exemplo), o
vento
velocidade desempenha um fator importante para o frio que se sente (o vento frio). De acordo com o vento do Serviço Nacional
de Meteorologia
gráfico frio, um vento de 15 MPH a 15 ° F faz sentir como 0 ° F, e um vento de 20 MPH a 0 ° F faz sentir como 24 graus abaixo
zero. A velocidade do vento é importante neste caso para determinar se suas extremidades vão congelar primeiro ou cair
primeiro (ambos igualmente desagradável, se você me perguntar).
Por outro lado, se não é particularmente frio, a velocidade do vento desempenha um papel na rapidez com que o próximo tempo
fenômeno está vindo em você. Às 2 MPH, naquele dia ensolarado vai levar mais alguns dias para chegar até você; a 50 MPH,
você tem apenas alguns minutos antes de o ciclone destrói sua casa.
Um anemômetro pode ser um dispositivo relativamente complicado, com rolamentos e eixos e comutadores e assim por diante;
nosso filho
Por outro lado, é relativamente simples.
Construindo o anemômetro
Nós estaremos usando um codificador rotativo do eixo, um eixo de rotação, e algumas barbatanas para medir a velocidade do
vento.
O codificador do eixo rotativo que estamos usando de robótica Vex é composto por um disco de plástico com fendas espaçadas
uniformemente ao redor
sua circunferência. Quando a energia é aplicada, uma pequena luz brilha através das fendas no disco e em uma fotossensível
receptor no outro lado. Por contagem do número de vezes que a luz é bloqueada pelo disco (ou, alternativamente, o
número de vezes que a luz brilha através de uma fenda) em um determinado espaço de tempo, é possível determinar quão rápido o
disco é
fiação. É também possível determinar o número de vezes que o disco tenha rodado, e este é, de fato, como codificadores rotativos
são usados frequentemente; se um codificador rotativo é ligado ao eixo de um robô, é uma boa forma de medir o quão longe as
rodas
ligado ao eixo que tenham viajado, por exemplo. Se o disco tem 90 ranhuras (como o nosso faz), sabemos que uma rotação
completa
do eixo (uma rotação completa da roda) é de 90 flashes de luz sobre receptor foto do encoder. Assim, podemos dizer ao
robô, "Vá em frente 30 de fendas", e a roda vai avançar exatamente um terço da sua circunferência para a frente. Se sabemos o
circunferência do disco / roda é de 3 pés, sabemos que o robô tem apenas um avançado pé.
Isto pode parecer um monte de matemática desnecessário, mas é importante para você entender como o codificador
opera. Uma vez que anexar as barbatanas para o eixo rotativo, que poderia (teoricamente) descobrir a velocidade do vento com
base no
circunferência das aletas e a velocidade do veio. No entanto, a minha experiência é que ele é realmente muito mais fácil
simplesmente
experiência com velocidades do vento conhecidos e incorporar essas velocidades em nosso programa, de modo que é o que vamos
fazer. Façam
isso, você vai precisar de um parceiro alguém que pode levá-lo ao redor em pré-determinado, sãs velocidades, enquanto você
toma vento
medições de velocidade. Isso significa velocidades de cerca de 5-20 MPH, não 80.
Para criar o seu anemômetro, examinar sua loja de ferragem local até encontrar um pequeno eixo, 1/8-polegada quadrada que
vai caber no buraco quadrado no codificador rotativo. (Ver Figura 6-3.)
Ligar o Barômetro
Talvez uma das partes mais interessantes da estação meteorológica é o chip barómetro BMP180, mesmo por que
mudando a pressão do ar é um dos melhores indicadores, como o que o tempo vai fazer a seguir. Em geral, caindo
pressão de ar indica uma tempestade no caminho e crescente pressão de ar indica bom tempo pela frente. Isso é um
simplificação, é claro, mas que parece ser o caso.
O chip BMP180 é executado no protocolo I2C, então você vai ter que conectá-lo até seus SDA e SCL pinos (pinos de Pi # 3 e
# 5) como você fez com a bússola. Depois de soldar os cabeçalhos para o conselho, se conectar VCC e GND para os pinos # 1 e #
6,
e, em seguida, SDA e SCL para os pinos # 3 e # 5, respectivamente.
O código final
O código final está disponível como weather.py de Apress.com.
import os
tempo de importação
de importação sht1x.Sht1x Sht1x como SHT1x
importação Rpi.GPIO como GPIO
Adafruit_BMP085 BMP085 de importação
smbus importação
matemática importação
Capítulo 7
O Media Server
O conceito por trás de um servidor de mídia é a capacidade de armazenar todos os seus arquivos de mídia de música e filmes em
um centro-
localização, e depois transmiti-los a partir desse local para qualquer dispositivo em sua casa que você escolher. Estes dias, quase
cada dispositivo de mídia (e alguns dispositivos não-mídia) pode ligar a uma rede senão a Internet, então, pelo menos,
sua rede doméstica. Isto significa que todas essas máquinas, exceto, talvez, para o refrigerador, pode tornar-se clientes,
streaming de arquivos de mídia a partir de um centro servidor. Esta é a linguagem padrão de rede; o computador que armazena
Arquivos-
sejam eles arquivos de mídia, planilhas ou páginas de web é chamado de servidor e os computadores que solicitam esses arquivos
são
chamados clientes.
Quando isso acontece, o Pi é perfeito para agir como um servidor. Isso porque há muito pouco poder de computação necessário
(um Arduino pode realmente ser um servidor de mídia, e é cerca de 100 vezes menos potente do que o Pi), e espaço de
armazenamento é
não é um problema, porque você pode transmitir arquivos de mídia a partir de qualquer dispositivo de armazenamento conectado,
como um disco rígido externo.
O Pi pode transmitir arquivos para qualquer dispositivo compatível. "Mas é uma caixa de Linux!" Eu ouço alguns de vocês
gritando na parte de trás
fila. "Eu preciso transmitir ao meu laptop Windows!" Não é um problema, o software usaremos para atuar como o servidor
permite Linux
servidores e clientes do Windows para jogar bem juntos.
Em relação a seus arquivos de mídia, eu estou indo supor que você é, um cidadão cumpridor da lei íntegro que tenha pagado para
todos
dos seus filmes e música e acumularam uma coleção bastante o correto, legal caminho. Certo? Certo. Vamos começar com o
peças que você vai precisar.
Configurando Samba
Uma vez Samba é instalado, é preciso configurá-lo. É uma boa idéia fazer um backup do arquivo de configuração atual
antes de editá-lo para que você pode simplesmente restaurar deveria você regiamente estragar tudo.
Para fazer isso, use o comando do Linux cp:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
Resumo
Neste capítulo, você aprendeu um pouco sobre como os servidores e clientes operam, tanto na Internet e sobre a sua casa
rede. Você aprendeu sobre como obter o Pi e outros computadores (nomeadamente Windows) para jogar bem juntos, e como
compartilhar todos os seus arquivos de mídia em sua rede doméstica, acessível por qualquer dispositivo conectado, usando um
compartilhamento de arquivos livre
programa.
No próximo capítulo, você aprenderá como usar o Pi para proteger sua casa rede não de hackers, mas a partir de
intrusos físicas.
Capítulo 8
O sistema de segurança Home
Vivendo em tempos modernos pode ser. . . bem, vamos enfrentá-lo. Pode ser, uma coisa estressante assustador. Os vilões, e os
crimes que
cometer, estão por toda parte. De acordo com o site do FBI Crime Statistics, havia cerca de 9 milhões de propriedade
crimes cometidos nos Estados Unidos, em 2012, o ano mais recente para o qual existem estatísticas disponíveis. Os dias de
vivendo em uma rua tranquila, onde os vizinhos se conheciam e você pode deixar sua porta destrancada enquanto você passou
ao trabalho, estão muito longe.
Felizmente, nós somos capazes de proteger as nossas casas e também para assistir as casas com câmeras de ambos ainda e vídeo
de que
são montados onde precisamos deles e capaz de live-streaming de vídeo que a qualquer dos nossos dispositivos sempre
conectados,
tais como os nossos laptops ou telefones. Podemos equipar nossa casa com sensores, como sensores de movimento e interruptores
de viagem, e
utilizar as informações recolhidas a partir desses sensores como um gatilho para executar determinadas ações. Se você está
disposto a gastar o
dinheiro, você pode instalar sistemas que fazem de tudo: proteger sua casa de fogo e os assaltantes para alertando-o para
monóxido de carbono (CO) vazamentos.
Quando isso acontece, o Raspberry Pi é perfeito para fazer todas essas coisas para um pouco mais barato do que uma rede inteira
de câmeras de circuito fechado e o sistema de computador para executá-los. Não é um monte de poder de computação é
necessário é pequeno-
suficiente e poder-mesquinho o suficiente para realmente ser instalado no local, ele pode tirar fotos de momentos importantes
através da sua
onboard câmera, e porque ele está conectado a uma rede doméstica pode alertá-lo quando algo está errado. Perfeito.
Sim, você pode obter um cão de guarda. Na verdade, isso é o que muitas pessoas (alguns diriam normais de pessoas) fazer. Mas
vamos dar
um momento para considerar os prós e os contras de possuir um cão contra possuir um Raspberry Pi. Então, podemos começar a
construir
nosso sistema de segurança em casa com o Raspberry Pi.
Resumo
Neste cCapítulo, você aprendeu sobre o que são os sensores, o conceito de uma rede de sensores, e como ligar diferentes
sensores para pinos GPIO do seu pi. Você configura o interruptor de limite, interruptor de pressão, sensor magnético, e sensor de
movimento
(que também usar no brinquedo gato Pi-alimentado no próximo cCapítulo). Com o conhecimento que você ganhou aqui, você
agora
têm a capacidade de criar um sistema de segurança de tamanho completo, com a sua amplitude limitada apenas pela quantidade
de sensores tiver
e quanto fio você tem que colocá-los todos juntos.
Capítulo 9
O Toy Cat
A maioria das pessoas são bastante familiarizado com o "gato que persegue o pequeno ponto vermelho" paradigma. É tão popular
que até tinha um curto
cena numa das Shrek filmes. Alguns gatos perseguir o ponto de laser até cair. Alguns só vai persegui-lo por um pouco
enquanto. Em qualquer caso, qualquer pessoa que tenha um gato provavelmente já tocou com um ponteiro laser com o seu amigo
felino em algum ponto.
Mas não seria bom se você pudesse entreter seu gato quando você não está lá? Um ponteiro laser, ao contrário do que você
poderia pensar, se não tem que ser mantido e controlado por um humano. Um pouco de programação e engenharia mecânica
magia, e você tem-se um brinquedo de gato autônoma.
No entanto, no projeto gato-brinquedo vamos construir neste cCapítulo, não vamos deixar por isso mesmo. Nós apenas não pode.
Afinal, não seria
faz sentido ter o brinquedo sempre em movimento, com ou sem o seu gato está por perto para brincar com ele, não é? Então,
vamos adicionar
algo um especial sensor infravermelho. Dessa forma, ele vai ligar apenas quando seu gato está por perto, e ele vai desligar quando
o gato deixa a sala.
Você está pronto? Vamos começar por obter as peças que você precisa para criar o nosso brinquedo de gato.
A Lista de Compras de Peças
Um recurso interessante do brinquedo do gato, além de ser simples e caseiro, é que as peças são realmente muito barato.
Você vai precisar do seguinte:
• A Raspberry Pi.
• Dois padrão (não contínua) servos-I recomendar o Parallax 900-00005
(Http://www.parallax.com/product/900-00005), mas qualquer modelo vai funcionar.
• Um ponteiro laser barato, que você pode comprar em uma loja de animais para cerca de US $ 10 US. (Ver Figura 9-1.)
OH, a aleatoriedade
Desde os tempos antigos, os humanos tiveram muitos métodos para gerar números "aleatórios", de lançar uma
moeda, para
rolar um dado, para baralhar um baralho de cartas. E para a maioria das aplicações, qualquer um destes seria bom
para gerar uma
número aleatório ou conjunto de números. Se você precisa decidir que chuta a bola em primeiro lugar, você pode
lançar uma moeda; escolher um cartão
fora de um baralho de 52 é aleatório o suficiente para torná-lo muito impressionante quando um mágico adivinha com
sucesso sua identidade.
No entanto, existem duas questões principais com o uso destes métodos para gerar números aleatórios para
qualquer verdadeira
esforço matemática ou estatística. Primeiro de tudo, eles são todos baseados em sistemas físicos, a tampa de uma
rodada
moeda no ar, o rolamento de um dado mais ou menos quadrado em um patch não-tão-nível de chão. Porque eles
são física
sistemas, eles nunca podem ser verdadeiramente aleatória. Dada suficiente iterações, um padrão irá, eventualmente,
começam a surgir baseada
em imperfeições no sistema. Uma moeda, por exemplo, tem um ligeiro desvio do peso de um lado, devido aos
padrões
gravado em ambas as faces. Se você lançá-lo bastante vezes, esse padrão irá mostrar-se nos resultados coletados.
Pode demorar
vários milhões ou vários bilhões de flips, mas vai emergir. Do mesmo modo, um molde nunca será perfeitamente
quadrada ou perfeitamente
ponderadas, e, eventualmente, mostram uma tendência para um lado, depois de uma quantidade suficiente de rolos.
O segundo problema com esses métodos de geração de números aleatórios é simplesmente que eles tomam muito
tempo.
Se você precisa de um bom lote de um milhão de números aleatórios, você vai ser lançando uma moeda para um
longo tempo para obter todas
esses números. É apenas impraticável para grandes lotes de dados.
Mas os computadores são excelentes em lidar com lotes imensos de números e dados, e eles podem gerá-los
incrivelmente rápido. O computador de mesa médio pode processar a uma velocidade teórica de cerca de 7
Gigaflops. (Isso é
7 bilhões de operações de ponto flutuante por segundo.) A essa velocidade, gerando um milhão de números
aleatórios levaria ...
bem, vamos ver ... transportar os dois ... dividir por amarelas ... um ... cerca de 7 milissegundos. Muito mais rápido
que o cartão de embaralhar.
No entanto, os computadores, mais uma vez, são sistemas físicos. Sim, você está gerando os números de dentro do
"Ciberespaço" do processador central do computador, mas que o processador é um chip de silício física, com física
transistores e fios. Não importa o programa que você usa para gerar esses números aleatórios, eles acabarão por
exibir um padrão que mostra que eles não são verdadeiramente aleatórios. Assim, você vê o interesse em números
aleatórios por
matemáticos e cientistas. Um gerador de números verdadeiramente aleatórios seria extremamente útil em muitas
áreas da
ciência, não menos do que é a criptografia. A maioria das cifras são baseadas em um código de hash aleatório; um
verdadeiramente aleatório
código seria infinitamente mais difícil de decifrar-que é uma das razões para o interesse intenso.
Geradores de números aleatórios atuais funcionam utilizando algoritmos que criam longas seqüências de números
pseudo-aleatórios,
frequentemente com base em combinações de multiplicações e as operações de módulo. Dependendo da qualidade
do algoritmo,
os números assim gerado pode ou não ser criptograficamente som, apesar de serem na maioria das vezes aleatório
o suficiente para aplicações como jogos de vídeo. Em outras palavras, o algoritmo utilizado para gerar números
aleatórios
provavelmente não vai parar um esforço concertado para quebrar o código de um supercomputador, mas é bom o
suficiente para gerar
oponentes quando você joga Call of Duty: The Day We All morreu nas mãos da Sexta-Grader para baixo do bloco.
Controlando o Servo
Servos são uma parte importante de muitas, muitas aplicações diferentes, de veículos controlados por rádio para high-end
robótica. Um servo é, na sua essência, nada mais do que um motor DC. No entanto, com a ajuda de software você pode ter
extremamente bom controle sobre a rotação do motor. Por exemplo, se você precisar dele para rodar 27,5 graus e, em seguida,
parar
(e assumindo que o servo é capaz), você pode enviá-lo de que o comando de programação.
Então, como você faz isso usando os pinos GPIO sobre o Pi? Infelizmente, você não pode simplesmente ligar o fio de sinal do
servo
(o branco, geralmente) em um pino GPIO para fora, dar-lhe uma tensão positiva e negativa, e esperar que ele funcione. Pode, mas
em seguida, novamente ele não pode.
A resposta está em como controlar servos. Como peças analógicas de hardware, eles são anteriores a maior parte digital de hoje
hardware, incluindo a Pi. Eles funcionam utilizando modulação de largura de pulso (PWM). Para controlá-los, você deve
ser capaz de enviar sinais PWM via qualquer mecanismo que você está usando, se é um pino de Arduino, cabo serial, ou
Pino GPIO do Raspberry Pi. Se você deseja definir a posição de um servo, você precisa enviá-lo pulsos regulares de corrente-50
vezes por segundo é uma média de pulso de velocidade em vez de um pulso longo. Que 50 vezes por segundo traduz-se você
estiver
pensando-a um impulso a cada 20 milissegundos (ms).
O comprimento do pulso, que, além disso, é o que determina a posição do servo. Um no pulso de 1,5 ms, para
exemplo, enviou a cada 20 milissegundos, irá enviar o servo para a posição central. Pulsos mais curtos vai transformá-lo um
direção, enquanto pulsos mais longos irá enviá-lo a outro. Assim, precisamente por o comprimento de temporização dos impulsos
para o enviar
servo, você pode posicionar precisamente a cabeça servo.
O gráfico da Figura 9-3 ilustra isso melhor.
Capítulo 10
O avião controlado por rádio
Muitos de nós têm muito tempo sonhava em vôo de voar através do ar, livre como um pássaro. Ou, como o piloto John Magee Jr.
colocou,
deslizando as "ligações surly da Terra. . . ", Dançando através dos céus" nas asas lisas e prateadas, "e no topo" da
alturas varridas pelo vento com graça fácil ".
Infelizmente, deslizando as ligações surly da terra, muitas vezes leva tempo e dinheiro que não temos, e isso pode
explicar, em parte, o advento do (RC) do avião controlado por rádio. Embora possamos não ser capaz de suportar terra ou vôo
escola, uma escala 1:12 Piper Club pode ir um longo caminho para tornar-nos sentir menos fundamentada, e nós temos a
oportunidade de pilotar um
avião real sem ter de pisar fora de terra firme.
O problema, porém, é que, enquanto nós podemos controlar o avião do chão, não é completamente como realmente estar
há. Embora existam complicados, caros maneiras de prender uma pequena câmera de vídeo no seu plano de RC, que seria bom
se você poderia fazer algo semelhante com o Pi. E isso seria muito legal se você pudesse manter o controle de seu vôo, e depois
carregar as coordenadas para o Google Earth para ver o que o seu vôo parecia.
Bem, neste projeto que você pode fazer exatamente isso. O plano para este projeto é colocar o Pi e um receptor GPS a bordo de
um
Plano de RC e, em seguida, voar. A câmera do Pi vai tirar fotos durante o vôo, e o GPS irá registrar os dados de localização.
Depois,
quando você voltar para casa, você vai usar um script Python para analisar os dados de localização em um arquivo KML que você
pode fazer o upload para
Google terra
■ Nota Este cCapítulo contém alguns conceitos avançados de programação, talvez mais avançados do que
qualquer coisa que você tem
deparamos até agora, como fios e até mesmo um pouco de programação orientada a objetos (OOP). Mas eles não
são terrivelmente
complicado, e eu vou explicar os conceitos que possam surgir.
A Lista de Compras de Peças
Embora este projeto não requer muitas partes, ele pode realmente ser o projeto mais caro para construir neste
livro, porque requer um, (RC) do avião rádio-controlado de médio porte. Aqui estão algumas peças adicionais que você vai
precisar:
• Raspberry Pi (com câmera)
• Receptor GPS (https://www.adafruit.com/products/746)
• Antena para o receptor (opcional) (https://www.adafruit.com/products/851)
• tamanho médio RC avião
• RC bateria e regulador de 5V para alimentar o Pi
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
O código final
O código final é composta de duas partes: o programa de avião e o programa de conversão de KML.
Resumo
Neste cCapítulo, nós conectamos um GPS para o Pi e ler sua entrada via conexões UART do Pi. Em seguida, colocar isso
informações em um arquivo de log Python. Nós preso a Pi e os GPS para um avião rádio-controlado e registrado o nosso vôo,
tirar fotos a cada poucos segundos, como nós voamos. Em seguida, após a aterragem do avião, nós transcodificamos nosso
arquivo de log do GPS a um KML
arquivo e colocar esse arquivo para o Google Earth para ver um ecrã de satélite de nossa trajetória de vôo final. Este cCapítulo
demonstrou a
verdadeira portabilidade do Raspberry Pi.
No próximo cCapítulo, vamos dar o Pi ainda mais alto, enviando-o em um balão meteorológico para a atmosfera superior.
Capítulo 11
The Weather Balloon
Você pode estar familiarizado com balões meteorológicos. Às vezes até 20 pés de diâmetro, que pode ser preenchido com hélio,
dada uma pequena carga útil científica, e ascender aos limites superiores da atmosfera, levando e gravando vários
as leituras dos sensores como eles vão. Em seguida, quando a pressão do lado de fora torna-se significativamente menos do que a
pressão interior da
o balão, que estourou, ea carga cai de volta à Terra com a ajuda de um pequeno pára-quedas. O grupo que
lançou o balão rastreia o pacote caído e recupera os dados. Desta forma, os cientistas e os aficionados podem
aprender muito sobre os alcances superiores da atmosfera.
Apesar de operar o avião controlado por rádio com um Raspberry Pi no cCapítulo anterior foi legal, foi
também domar um pouco em que nós conectado a sua posição e carregou seus dados de caminho para o Google Earth. O conceito
por trás
este projeto, a construção de um balão meteorológico, é muito simples, mas mais avançado. Vamos inflar e lançar um tempo
pequeno
balão capaz de enviar o Raspberry Pi para pelo menos 30.000 pés. Vamos então programar o Pi para tirar uma foto a cada tantas
muitas vezes, dando-nos um registro pictórico de nosso vôo e usar uma pequena unidade de GPS para registrar a viagem de nosso
Pi.
Mas não vamos parar por aí, porque esse é o tipo de chato, e que tem sido feito por muitos aquaristas diferentes e
profissionais. Além disso, nós vamos chegar uma atualização, em tempo real, como o que o balão está fazendo-a sua latitude,
longitude,
e até mesmo na altitude a programação do Pi para registrar-se falando suas coordenadas a cada 15 segundos ou assim. Então nós
vamos
transmitir que a gravação de um rádio no chão. Tudo o que precisamos fazer é sintonizar nossa rádio FM pequeno para um pré-
designado
freqüência, e nós vamos ser capazes de ouvir nosso balão falando para nós, dando-nos as atualizações ao vivo sobre sua condição.
Vamos ir às compras para peças!
■ Cuidado Nos Estados Unidos, os regulamentos da FAA exigem que você notificar a agência de 6 a 24 horas
antes de seu lançamento com
informações relevantes, tais como a hora e o local do lançamento, altitude previsto, balão de descrição e previsão do
o desembarque de localização. A FAA também exige que você manter o controle de localização do balão e ter a
capacidade de atualizar o FAA com
que as informações que devem ser exigidos. Regulamentos diferentes para ancorado contra balões livres; Para obter
mais informações, consulte o pleno
regulamentos em http://www.gpo.gov/fdsys/pkg/CFR-2012-title14-vol2/pdf/CFR-2012-title14-vol2-part101.pdf.
Preparando o Pi
Se você estiver lendo este cCapítulo depois que o avião cCapítulo RC, você pode reconhecer a maior parte da configuração aqui,
como muitos de
as partes deste projeto são muito semelhantes. A primeira coisa que você precisa fazer é certificar-se de que o módulo será gpsd
correndo cada vez que você iniciar o Pi. Para fazer isso, abra o arquivo rc.local, digitando
sudo nano /etc/rc.local
e adicione a seguinte linha ao final:
sudo gpsd / dev / ttyAMA0 -F /var/run/gpsd.sock
■ Nota Para mais informações sobre o rc.local arquivo, consulte a barra lateral no cCapítulo 10.
Agora, o módulo gpsd será executado cada vez que iniciar o Pi.
No entanto, nós não somos feitos no arquivo rc.local. É provável que quando você lançar o balão, você vai querer apenas
alimentar o Pi e lançamento, sem ter que se preocupar com o login e iniciar o programa que você escreveu.
Felizmente, você pode fazer isso com o arquivo rc.local também. Na inicialização, após o módulo gpsd lança, você vai querer dar
sua placa GPS alguns segundos para obter uma correção em alguns satélites antes de começar o registro de dados. Para isso, após
a linha gpsd
apenas mostrado, adicione a linha
sono (45)
para fazer a pausa Pi por 45 segundos e, em seguida, adicione a linha
sudo python /home/pi/Documents/balloon/balloon.py
(Certifique-se esta linha jogos onde quer que você está armazenando o seu programa de balão, é claro.) O seu programa de balão
vai
agora começar automaticamente, 45 segundos após seu módulo GPS começa a ler dados de suas correções de satélite.
O código final
Este código (disponível como balloon.py de Apress.com) irá consultar o GPS de bordo, registrar e transmitir suas coordenadas,
e tirar uma foto com a câmera periodicamente a bordo:
import os
gps de importação *
tempo de importação
rosqueamento de importação
subprocess importação
#set-se variáveis
picnum = 0
gpsd = None
classe GpsPoller (threading.Thread):
def __init __ (self):
threading.Thread .__ o init __ (self)
gpsd mundial
picnum mundial
gpsd = gps (mode = WATCH_ENABLE)
self.current_value = None
self.running = True
run def (self):
gpsd mundial
enquanto gpsp.running:
gpsd.next ()
E se
__name__ == '__main__':
GPSP = GpsPoller ()
experimentar:
gpsp.start ()
while True:
f = open ('Position.txt', 'w')
curAlt = gpsd.fix.altitude
curLong = gpsd.fix.longitude
curLat = gpsd.fix.latitude
f.write (str (curAlt) + "pés de altitude," + str (curLong) + "graus de longitude," +
str (curLat) +
"
graus de latitude ")
f.close ()
subprocess.call (["text2wave Position.txt -o position.wav"], shell = True)
subprocess.call (['ffmpeg -i "position.wav" -y -ar 22050 "position.wav"'], shell = True)
subprocess.call (["sudo ./pifm position.wav 103,5 22050"], shell = True)
subprocess.call (["raspistill -o / home / pi / Documents / balão / imagem" + str (picnum) +
".jpg"], shell = True)
Resumo
Neste cCapítulo, você programou o seu Pi para obter a sua localização a partir de um módulo GPS e transmitir a sua localização
para você, para que
você pode ficar no chão e enviá-lo para a atmosfera superior para tirar fotos. Você trabalhou com tópicos de novo,
bem como um pouco mais com código orientado a objeto, e tem algumas boas fotos do alto, eu espero.
No próximo cCapítulo, vamos na direção oposta e enviar o underwater Pi.
Capítulo 12
O submersível
Submersíveis, tanto remotamente operados e autônomo, têm sido usados tanto para fins de investigação científica e
empresa privada por várias décadas. Eles estudaram a vida nas planícies áridas intercontinentais, têm explorado
respiradouros vulcânicos no meio do Oceano Atlântico, e tem ido lugares impossíveis para os seres humanos para ir. no
mundo comercial, que estavam no centro das atenções durante o desastre de petróleo Deepwater Horizon em 2010. A frota de
submersíveis foi usada para tampar o poço de petróleo e interromper o vazamento em 5.000 pés profundidades-muito abaixo do
que poderia mergulhadores humanos
alcance. Eles são usados rotineiramente para realizar manutenção em plataformas de petróleo do fundo do mar e fazendas de
ondas offshore.
Existem basicamente dois tipos de submersível:. ROVs e AUVs ROV significa Veículo de Operação Remota, e
descreve um sub que é controlado remotamente a partir de um navio por meio de uma corda-um cabo que fornece energia para o
sub e
uma comunicação bidireccional com os seus sistemas de bordo. Normalmente, uma câmera onboard envia um sinal de vídeo até a
corda
a um monitor na sala de controle, onde um operador treinado especialmente usa o sinal de vídeo para controlar o sub com um
versão high-tech de um controlador Xbox. O operador remoto controla o sub propulsão, governo, e profundidade, e
essa pessoa também é capaz de trabalhar garras do veículo e coletores de amostra, assumindo-se assim equipado.
AUV, por outro lado, meios Autonomous Underwater Vehicle e descreve um submersível que funciona
sem intervenção humana ou de controlo. Ele pode ou não usar uma câmera a bordo; se isso acontecer, o vídeo da
câmera é muitas vezes usado apenas para fins de coleta de dados, não para a navegação. Um AUV tem uma variedade de sensores
a bordo
e um computador de bordo relativamente sofisticado que está programado para executar uma variedade de tarefas e movimentos,
com base em informações dos sensores.
Usando o Raspberry Pi, você pode realmente construir quer um ROV ou um AUV em grande escala, mas para os nossos
propósitos nós somos
vai fazer um veículo (muito mais simples) operado remotamente. Podemos usar a câmera onboard do Pi para tirar fotos de
nossas explorações subaquáticas, e podemos controlar o sub com um nunchuk hackeado Wii. Você não será capaz de navegar
através de vídeo, pois o envio de um sinal de vídeo através de um cabo para um monitor externo é ligeiramente para além do
âmbito do presente
livro, mas contanto que você não vá muito profundo, você deve ser capaz de seguir o sub com uma balsa ou barco pequeno e
direta
-lo a partir da superfície. Mais uma vez, para manter o projeto no âmbito de um único cCapítulo de livro, nós estamos indo para
evitar profundidade
controlar bem; em vez disso, vamos fazer o sub flutuabilidade neutra.
PRECAUÇÕES no caso de você fritar seu PI
Esta compilação envolve tanto profunda água e sistema eletrônico de duas coisas que caminham juntas
historicamente tão bem quanto
água e gatos. Há uma muito boa chance de fritar seu Pi e / ou seus bits associados se o recinto de criar
não é completamente estanque. Com isso em mente, você deve fazer um ou ambos dos seguintes procedimentos:
• Compre um Pi extra para usar em seu submersível. É relativamente barato, e deve acontecer de você
fritá-lo, você ainda vai ter o seu Pi original com todos os seus ajustes e módulos adicionais. Se você duplicar
o seu cartão SD (consulte o próximo ponto) o Pi submersível será exatamente como seu um regular.
• Faça backup do cartão SD regularmente, assim como fazer com o disco rígido do seu computador. Se você fizer
backup como você
ir, você não vai perder muito trabalho duro se algo acontecer com o cartão.
Capítulo 12 ■ O submersível
A Lista de Compras de Peças
Para esta compilação, você vai precisar do seguinte:
•
Raspberry Pi
•
Raspberry Pi câmera kit-disponível a partir de Adafruit, Amazon, e Sparkfun
•
1 Edimax USB dongle wireless EW7811UN
•
Motor Motorista-dual L298 H-ponte (http://www.sparkfun.com/products/9670)
•
Nintendo Wii Nunchuk
•
1 adaptador Wiichuck (http://www.sparkfun.com/products/9281)
•
Cabeçalhos
•
2 motores de corrente contínua
•
Hélices modelo
•
2 baterias (os pacotes de bateria de lítio-polímero utilizado por amadores RC são uma boa escolha)
•
1 à prova de água-gabinete pensar Tupperware ou algo semelhante
•
1 tubo de 5200 marinho impermeabilização vedante
•
PVC para tubos e cotovelo
•
Zip variados laços
•
O fio de galinha ou malha de plástico / compensação
•
Fio-vermelho e preto, de calibre 18
•
Ethernet cabo de 25 pés (comprá-lo em grandes quantidades, se possível, como você não vai precisar dos terminais de plástico,
apenas o cabo)
•
Cera
•
Calafetar
Acessando pinos GPIO do Raspberry Pi
Uma das características que torna o Raspberry Pi tão incrivelmente útil é sua GPIO (General Purpose Input / Output) pinos.
Usando um módulo Python específico que vem pré-instalado no Pi, os pinos GPIO pode ser controlado diretamente, enviando
Tensões para dispositivos externos de leitura e entradas, que podem então ser utilizados nos programas.
GPIO: QUAL É O GRANDE COISA?
GPIO pinos são como algumas das portas em um computador antigo. Uma maneira fácil de interagir com o mundo
externo usado
para ser o porta serial ou a porta da impressora (paralela). Ambos podem ser acessados com a programação correta
bibliotecas, enviando sinais diretamente para cada pino. Mas como a tecnologia progrediu, ambas as portas
desapareceram e foram
substituído com conectividade USB e Ethernet. Como resultado, tornou-se muito mais difícil de controlar dispositivos
externos
do ponto de vista de programação, e é por isso que muitas pessoas estão animados com as possibilidades
oferecidas pelo Pi de
Pins GPIO.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Para configurar o Pi para acessar os pinos GPIO programaticamente, você pode precisar instalar o correto desenvolvimento
kit e ferramentas. Basta digitar
sudo apt-get install python-dev
e quando isso acaba, tipo
sudo apt-get install python.rpi-GPIO
■ Nota python-rpi.gpio já pode ser instalado, dependendo da sua versão Raspian. Dependendo da data em que você
está
a leitura deste cCapítulo, ele também pode retornar um erro de "Não é possível localizar pacote." Não é grande
coisa, é mais provável já instalado.
Agora você está pronto para acessar os pinos. O módulo Python usado para acessá-los é o módulo RPi.GPIO.
Ele é normalmente chamado nas primeiras linhas de seu programa digitando
importação RPi.GPIO como GPIO
e, em seguida, configurado digitando
GPIO.setmode (GPIO.BOARD)
que permite identificar os pinos de como eles são rotulados em um diagrama de pinagem padrão, como mostrado na Figura 12-1.
Figura 12-1. O diagrama de pinagem GPIO
Capítulo 12 ■ O submersível
■ Nota Tenha em mente que com GPIO.setmode (GPIO.BOARD), quando você se referir ao pino 11, na verdade você
está se referindo a
o pino físico # 11 (que se traduz em GPIO17 no diagrama na Figura 12-1), não GPIO11, o que se traduz em
pin física # 23.
Depois de definir o modo, você pode então definir cada pino para ser uma entrada ou uma saída. Os usuários do Arduino vai
provavelmente reconhecem o conceito aqui. Digite o seguinte
GPIO.setup (11, GPIO.OUT)
GPIO.setup (13, GPIO.IN)
e assim por diante. Depois de definir um pino como uma saída, você pode então enviar tensão para ele (ligá-lo), digitando
GPIO.output (11, 1)
ou
GPIO.output (11, True)
e, posteriormente, desligá-lo digitando
GPIO.output (11, 0)
ou
GPIO.output (11, False)
Se o pino foi configurado como uma entrada, você pode consultar o pino para ver se um botão ou interruptor ligado a ele
foi pressionado. No entanto, uma importante advertência aqui é que se o pino é apenas declarada uma entrada, ele é definido
como
"Flutuante" e não tem qualquer nível de tensão definida. Neste caso, é preciso conectar o pino de um terreno para que ele seja
sempre
LOW (0) até que pressionar um botão. Isso é feito colocando um resistor entre o pino e um terreno comum. Felizmente,
o módulo RPi.GPIO nos permite fazer isso em software, digitando o seguinte:
GPIO.setup (11, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
Neste ponto, você pode "poll" o pino, a qualquer momento, digitando
Se GPIO.input (11):
print "Input foi HIGH"
outro:
print "Input foi LOW"
Insira este simples pedaço de código em um loop no seu script; cada vez que o loop é executado, o script irá verificar o pino de
Status. Vamos usar essa funcionalidade no nosso programa submersível final para acionar a câmera para tirar fotos.
Capítulo 12 ■ O submersível
Quando você começa a placa da câmera, ele provavelmente irá vêm em uma caixa branca simples, dentro do qual é um cinza anti-
estática
saco que contém a placa da câmera. Certifique-se de que você tenha descarregado toda a eletricidade estática do seu corpo
(porque o
câmera é muito sensível à estática) tocando em uma boa terra, e, em seguida, retire a câmera do saco.
A câmera se conecta ao conector tira localizada na placa entre a saída HDMI e Ethernet
porta. Abra o conector puxando para cima nos lados-it'll "pop" por alguns milímetros, o que é tudo que você precisa.
Posicione o fim do cabo de fita da câmera de modo que os conectores (o lado prata, não o lado azul) estão enfrentando o
Porta HDMI. Deslize a cabo dentro do conector até que encoste para se certificar de que você tem uma boa conexão. Depois,
enquanto segura o cabo ainda, pressionar para baixo em ambos os lados do conector até que eles se encaixem no lugar. (Veja a
Figura 12-2.)
Figura 12-2. Conexão do cabo da câmera do Pi
Você deve ter habilitado o apoio da câmara quando você configurar sua Pi no cCapítulo 3; se você não fez, no entanto, não é
difícil. A partir do terminal, digite
sudo apt-get update
e
sudo apt-get atualização
para se certificar de sua Pi está executando todas as correções mais recentes do kernel e atualizações de software. Quando ambos
os acabamento, tipo
sudo Raspi-config
para iniciar o programa de configuração. Navegue para a seleção "câmera" e clique em "Ativar". Em seguida, selecione "Finish" e
reinicie o Pi.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Quando o Pi volta para cima, você pode usar a sua built-in funções da câmera, raspistill e raspivid, para experimentar
com a câmara. Para obter uma lista completa de comandos, basta digitar
raspivid
ou
raspistill
no prompt de comando para obter instruções. Por exemplo, para tirar uma fotografia num formato de "cartoon", basta digitar
raspistill -o image.jpg -ifx desenhos animados
ea imagem será salva em qualquer diretório acontecer de você estar dentro. Você pode alterar a resolução da imagem, altura,
largura, efeitos e atraso, e até mesmo configurar uma situação de lapso de tempo usando a bandeira -tl (que nós podemos usar
mais tarde).
Controlar o Sub
Para controlar o sub, vamos usar dois motores DC, um chip controlador de motor (já colocado num circuito impresso
placa), e um Nunchuk Wii (como mostrado na Figura 12-3). Usando um adaptador especial, você pode acessar os fios da nunchuk
e
ligá-los directamente para o Pi framboesa sem ter de cortar o conector a partir da extremidade do controlador.
Figura 12-3. O Wii nunchuk
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
O nunchuk comunica através de um protocolo conhecido como I2C, ou IIC, que significa Circuito Inter-Integrated.
Se você está trabalhando o seu caminho através dos projectos em ordem, você pode se lembrar o protocolo I2C do Capítulo 6,
"A Estação de tempo." I2C foi criado pela Philips no início de 1980 como uma forma para diferentes dispositivos para se
comunicar
em um único ônibus (fio de comunicação). Desde então tem sofrido várias revisões, mas o conceito básico continua a ser o
mesmo. Num barramento I2C, uma máquina serve como um "mestre", e pode ser conectado a uma variedade de diferentes
"escravos". Cada
máquina pode comunicar com o mesmo conjunto de fios, usando um sinal de relógio transmitida pelo mestre para sincronizar o
comunicação. Felizmente, para os nossos propósitos, o Raspberry Pi pode utilizar o protocolo I2C sobre alguns dos seus pinos
GPIO,
e a comunicação é relativamente simples, porque existem apenas dois dispositivos de comunicação: a Pi, servindo como o
mestre, e ao Wii nunchuk como o escravo solitário.
Anexando o Adaptador Wiichuck
A primeira coisa a fazer é soldar um conjunto de quatro cabeçalhos para seu adaptador Wiichuck. Usando apenas uma pequena
quantidade de solda,
ligar os cabeçalhos para o adaptador (como mostrado na Figura 12-4). Como muitas placas disponíveis comercialmente, o
adaptador
é coberto com um revestimento de solda-fóbica, o que impede o fluxo de solda e o curto-circuito entre as conexões
los para fora. Isso faz com que os cabeçalhos de solda para o conector de um processo simples, mesmo para soldadores
inexperientes.
Figura 12-4. Cabeçalhos soldadas ao adaptador Wiichuck
Você vai fazer quatro ligações para o,, SDA (a linha de dados I2C) negativo Wiichuck-positivo, e SCL (o relógio I2C
linha). Você vai ligar o fio positivo para GPIO pin # 1 e o fio negativo para GPIO pin # 6. Conecte o fio para SDA
pin # 3 e o fio SCL ao pino # 5. Você pode ver o Wiichuk inserido corretamente no controlador na Figura 12-5.
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 12 ■ O submersível
Figura 12-5. O correto posicionamento do adaptador Wiichuck
■ Cuidado Você deve ligar o nunchuk para o # 1 pino do Pi (3.3V), não o # 2 pinos (que é 5V). A razão é
que nunchuk do Wii é projetado para funcionar em 3.3V, não 5V. Embora ele vai trabalhar com 5V, pode encurtar
severamente a vida
do controlador.
Ativando I2C do Pi
Para usar o controlador com o Pi, nós precisamos de ativar a capacidade de I2C do Pi, o que não é habilitado por padrão.
Para habilitá-lo, você precisa editar o arquivo lista negra-configuração do Pi, que lista os módulos que o Pi não precisa carregar
em
comece. Os módulos são normalmente listados aqui, porque embora eles estão disponíveis, eles não são usados frequentemente.
Abra a
arquivo lista negra configuração digitando
sudo emacs /etc/modprobe.d/raspi-blacklist.conf
Comente as duas últimas linhas para remover o seu estado na lista negra. Quando estiver pronto, o arquivo deve ser semelhante a
este:
# Lista negra spi e i2c por padrão (muitos usuários não precisam deles)
#blacklist spi-bcm2708
#blacklist i2c-bcm2708
Capítulo 12 ■ O submersível
Salve o arquivo e saia. Você também deve adicionar os drivers de I2C para o kernel. Para fazer isso, abra o arquivo / etc /
modules
digitando
emacs sudo / etc / modules
em seguida, digite
i2c-bcm2708
i2c-dev
para o fim do ficheiro. Salvar e sair. Por último, para usar as ferramentas de I2C, você precisará usar o sudo apt-get para adicionar
estes alguns pacotes:
sudo apt-get install I2C-ferramentas
sudo apt-get install python-smbus
Quando esses pacotes são terminar a instalação, reinicie o Pi.
Testando o Nunchuk
Para ver se a configuração funcionou I2C, conecte o nunchuk aos pinos corretos (1, 3, 5 e 6). Comece o seu terminal,
e digite o seguinte:
sudo i2cdetect -y 0
Esta consulta o barramento I2C para o endereço de todos os dispositivos conectados. Você deverá receber uma resposta como
esta:
0
1
2
3
4
5
6
7
8
9 abcdef
00:
03 04 05 06 07 - - - - - - - -
10: - - - - - - - - - - - - - - - -
20: - - - - - - - - - - - - - - - -
30: - - - - - - - - - - - - - - - -
40: - - - - - - - - - - - - - - - -
50: - - 52 - - - - - - - - - - - - -
60: - - - - - - - - - - - - - - - -
70: - - - - - - - -
Isso mostra que o nunchuk está conectado no endereço # 52.
Se você não vê nada, e você está certo de ter ligado os fios nunchuk corretamente, tente executar
sudo i2cdetect -y 1
ao invés. O "1" ou "0" depende de qual modelo você tem Pi. Embora seja mais provável que o conselho você tem utiliza o
"0", tente o "1" se você está tendo nenhuma sorte de ler o ônibus.
■ Dica Se você tiver problemas para obter resultados, e você é positivo que você ligado todos os fios e dispositivos
corretamente, cheque
que todos os seus fios estão intactos. Perdi horas e horas de solução de problemas uma compilação, apenas para
descobrir que um ou mais dos barato
fios de ligação que eu estava usando foi quebrado dentro do isolamento, ou seja, eu não estava recebendo sinais de
onde eu era suposto.
Isso acontece com mais freqüência do que você pensa!
Capítulo 12 ■ O submersível
Leitura desde o Nunchuk
Agora você está pronto para ler a partir do nunchuk. Eventualmente, é claro, nós estamos indo para traduzir os sinais do nunchuk
em comandos para os motores, mas pode ser instrutivo para ver o que os sinais que estamos recebendo para começar. Para fazer
isso,
vamos criar um script Python que importa os módulos corretos, ouve a sinais provenientes do nunchuk, e emite-os a
a tela. Há sete sinais enviados sobre o fio: o X e Y-posição do joystick, o estado do "Z" e "C"
botões na frente, e o X, Y, e Z estado de acelerômetro embutido do nunchuk. Nós não vamos usar tudo isso para
o sub, mas ainda podemos dar uma olhada neles.
Aqui está o script completo para que você digite:
#import módulos necessários
smbus importação
tempo de importação
ônibus = smbus.SMBus (0)
# Ou smbus.SMBus (1), se você tinha que usar -y 1 no comando i2cdetect
comunicação I2C #initiate por escrito para o nunchuk
bus.write_byte_data (0x52,0x40,0x00)
time.sleep (0,1)
while True:
experimentar:
bus.write_byte (0x52,0x00)
time.sleep (0,1)
DATA0 = bus.read_byte (0x52)
data1 = bus.read_byte (0x52)
data2 = bus.read_byte (0x52)
data3 = bus.read_byte (0x52)
data4 = bus.read_byte (0x52)
dados5 = bus.read_byte (0x52)
joy_x = DATA0
joy_y = dados1
accel_x = (data2 << 2) + ((dados5 & 0x0c) 2 >>)
accel_y = (data3 << 2) + ((dados5 & 0x30) >> 4)
accel_z = (data4 << 2) + ((dados5 & 0xC0) >> 6)
botões = dados5 & 0x03
button_c = (botões == 1) #button_c é Verdadeiro se botões = 1
button_z = (botões == 2) #button_z é Verdadeiro se botões = 2
print 'Jx:% s Jy:% s Ax:% s Ay:% s Az:% s Bc:% s Bz:% s'% (joy_x, joy_y, accel_x, accel_y,
accel_z, button_c, button_z)
exceto IOError como e:
impressão e
Se você não tiver, crie uma pasta para o seu programa submersível, salve esse script em que pasta, e executá-lo.
Depois de importar os módulos necessários, o script cria um "bus" sobre o qual todas as comunicações serão feitas com
o nunchuk. Em seguida, ele começa a comunicação por escrito ao endereço I2C do nunchuk (bus.write_byte_data ()). É então
introduz um ciclo onde se lê continuamente as cordas 5-byte proveniente do Nunchuk (DATA0, dados 1, e assim por diante) e
categoriza-os como direções do joystick, leituras do acelerômetro, e pressiona o botão, nessa ordem. Em seguida, ele imprime os
valores para a tela e repete o processo.
Capítulo 12 ■ O submersível
Porque envolve a leitura ea escrita para o barramento I2C, você vai ter que executá-lo como root, então digite o seguinte:
sudo python nunchuktest.py
Assim que inicia o script, ele irá mostrar-lhe um relatório sobre o estado de execução de todos os sensores do Nunchuk,
atualizado em tempo real
tempo e formatados assim:
JX: 130 Jy: 131 Ax: 519 Ay: 558 Az: 713 Bc: Falso Bz: Falso
Com o script em execução, tente mover o joystick, pressionando os botões, e agitando o nunchuk para assistir a
valores mudam. Você já sabe como ler valores do nunchuk, que vamos usar para acionar os motores.
Capítulo 12 ■ O submersível
# As seguintes linhas adicionar os valores necessários para fazer a receberam 5-byte
# Cordas mais fácil de descodificar e impressão
accel_x = (data2 << 2) + ((dados5 & 0x0c) 2 >>)
accel_y = (data3 << 2) + ((dados5 & 0x30) >> 4)
accel_z = (data4 << 2) + ((dados5 & 0xC0) >> 6)
botões = dados5 & 0x03
button_c = (botões == 1)
button_z = (botões == 2)
imprimir 'Jx:% s Jy:% s Ax:% s Ay:% s Az:% s Bc:% s Bz:
%s'
%
(joy_x, joy_y, accel_x, accel_y, accel_z, button_c, button_z)
Se joy_x> 200:
GPIO.output (11, 1)
GPIO.output (13, 0)
GPIO.output (15, 0)
GPIO.output (19, 0)
GPIO.output (21, 0)
GPIO.output (23, 0)
elif joy_x <35:
GPIO.output (11, 0)
GPIO.output (13, 1)
GPIO.output (15, 0)
GPIO.output (19, 0)
GPIO.output (21, 0)
GPIO.output (23, 0)
elif joy_y> 200:
GPIO.output (11, 0)
GPIO.output (13, 0)
GPIO.output (15, 1)
GPIO.output (19, 0)
GPIO.output (21, 0)
GPIO.output (23, 0)
elif joy_y <35:
GPIO.output (11, 0)
GPIO.output (13, 0)
GPIO.output (15, 0)
GPIO.output (19, 1)
GPIO.output (21, 0)
GPIO.output (23, 0)
elif button_c == True:
GPIO.output (11, 0)
GPIO.output (13, 0)
GPIO.output (15, 0)
GPIO.output (19, 0)
GPIO.output (21, 1)
GPIO.output (23, 0)
elif button_z == True:
GPIO.output (11, 0)
GPIO.output (13, 0)
GPIO.output (15, 0)
GPIO.output (19, 0)
GPIO.output (21, 0)
GPIO.output (23, 1)
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
outro:
GPIO.output (11, 0)
GPIO.output (13, 0)
GPIO.output (15, 0)
GPIO.output (19, 0)
GPIO.output (21, 0)
GPIO.output (23, 0)
exceto IOError como e:
impressão e
Figura 12-6. Configuração de teste LED
Como mencionado anteriormente, o código primeiro cria um "bus" sobre o qual todas as comunicações serão feitas com o
nunchuk. Em seguida, ele começa a comunicação por escrito ao endereço I2C do nunchuk (bus.write_byte_data ()). É então
introduz um ciclo onde se lê continuamente as cordas 5-byte proveniente do Nunchuk (DATA0, dados 1, e assim por diante)
e classifica-los como direções do joystick, leituras do acelerômetro, e pressiona o botão, nessa ordem. O valor que
dessas cordas indicar o que cada componente do nunchuk está fazendo: se Buttonz é verdadeiro, por exemplo, o botão
foi pressionado. Da mesma forma, o valor de Y-direção do joystick indica se o joystick está sendo empurrado para a frente
ou puxado para trás. A longa sequência de declarações if-elif simplesmente percorre os valores recebidos e acende o
LED correspondente.
Executá-lo (novamente, usando sudo) deve resultar em diferentes LEDs de iluminação, dependendo do que você está fazendo
com
o nunchuk.
Como você pode ver, enganchando os LEDs em paralelo significa que todos eles compartilham um terreno comum, e uma comum
de alta
linha de tensão. Em contraste, se você fosse para conectá-los em série, a perna positiva de cada LED iria ligar para o negativo
perna do lado de LED, com uma resistência de entre o último LED e quer o pino positivo ou negativo da Pi.
Controlar os Motors Sub Câmara e com o Nunchuk
Agora que você tem o trabalho nunchuk, precisamos usá-lo para controlar os motores do sub, que envolve o uso do
L298 chip controlador do motor. Normalmente, não podemos dirigir motores muito potentes ou servos com o Pi, porque o Pi não
pode
fonte (oferta) corrente suficiente para conduzi-los. Para contornar esta limitação, usamos um chip controlador do motor, tal como
a L298. Chips como esse, chamados pontes H, permitem-lhe ligar uma fonte de alimentação externa para os seus motores e
utilizar o Pi
Capítulo 12 ■ O submersível
para ligar os motores e desligar conforme necessário. Os custos L298 chip de apenas alguns dólares e pode ser usado para
conduzir incrível
quantidades de corrente e tensão-até 4 amperes e 46 volts. É comumente usado com robôs passatempo e é perfeito para
este tipo de aplicação.
No entanto, embora o chip é barato, conectá-lo ao Pi e os motores podem ser complicado porque você precisa
a utilização de vários capacitores de 10nF e alguns diodos flyback para proteger o Pi de picos de tensão provenientes dos motores.
Por essa razão, eu recomendo começar a bordo motorista L298 motor do Sparkfun, como mencionado no
"A Lista de Compras de Peças" seção. Ele faz as conexões muito mais simples: você conecta a fonte externa, os sinais de entrada
do Pi, e fios de saída para os motores, e está feito. Para o resto do cCapítulo, eu estou indo supor que você é
usando a placa Sparkfun. Se você decidir breadboard o chip mesmo, alguns bons esquemas podem ser encontrados online.
Para controlar o sub e os motores, podemos modificar o script de condução LED apresentei anteriormente na seção
"O Nunchuk e LED de teste", mas em vez de virar LEDs dentro e fora, nós vamos girar motores dentro e fora, e
activar a câmara. Controle será basicamente da seguinte forma:
• Joystick para a frente = ambos os motores de giro
• Joystick para a esquerda = motor girando à direita
• direito Joystick = motor girando esquerda
• botão C pressionado = tirar o retrato com câmera
• botão Z = pressionadas ter vídeo com câmera
Para alimentar os motores com a placa L298, sete fios ligar o Pi à placa-três para cada conectado
do motor, e o chão. Motor A é controlada com IN1, IN2, e ENA ("enable A"). Motor B é controlado com IN3, IN4,
e ENB. Para controlar o motor A, você define ENA a alta, e em seguida, enviar para baixo tensões quer IN1 ou IN2 (ou nenhum,
para frear
o motor). Motor B é controlado da mesma maneira. O fornecimento de energia para os motores é conectado à placa, ignorando
a Pi inteiramente. Para ver uma ilustração, dê uma olhada na tabela 12-1 e Figura 12-7.
Tabela 12-1. Valores e configurações de motor
Valor ENA ENA = 1
ENA = 1
ENA = 1
ENA = 0
IN1 Valor
IN1 = 1
IN1 = 0
IN1 = 0
-
IN2 Valor
IN2 = 0
IN2 = 1
IN2 = 0
-
Resultado
A Motor gira rotações do motor A
Travões de um motor paradas do motor A
no sentido horário
sentido anti-horário
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 12 ■ O submersível
Figura 12-7. Motors eo controlador do motor ligado ao Pi
Obviamente, tudo o que precisamos fazer é criar três pinos GPIO para cada motor. Ao mesmo tempo, lemos os pinos GPIO
definido
como entradas I2C, e definir os pinos do motor alta ou baixa, dependendo dos sinais que estamos recebendo do nunchuk. Bem,
também
verificar se há botões pressionados, a fim de ativar a câmera. (Figura 12-7 mostra as conexões para um motor, não ambos.)
Não há bibliotecas Python ainda disponíveis para interface direta com módulo de câmera do Pi. No entanto, não temais;
podemos usar o módulo subprocesso do Python para fazer comandos do sistema como se estivéssemos na linha de comando. Se
você quisesse
para tirar uma fotografia usando a câmera de dentro de um script Python, você deve digitar
de subprocess chamada de importação
ligar para (["raspistill -o image.jpg"], shell = True)
O comando de vídeo é quase o mesmo:
de subprocess chamada de importação
ligar para (["raspivid -o video.mp4"], shell = True)
Podemos definir cada comando dentro de sua própria função e chamar essa função quando o botão apropriado é pressionado
sobre o nunchuk. Da mesma forma, podemos configurar as funções para executar os motores e chamar essas funções de acordo
com a posição
do joystick. Tudo isso acontece dentro de um loop while e continua até que nós matamos o programa ou as baterias morrer.
Iniciando o Programa remotamente
Existem várias maneiras de obter o programa Python em execução uma vez que você ligar o seu submersível, como você não terá
um teclado, mouse ou monitor conectado ao Pi. Parece que a maneira mais fácil seria a criação de um IP estático
endereço, efetuar login remotamente em o Pi a partir de um laptop, e, em seguida, iniciar o programa a partir daí. No entanto, isto
só irá funcionar se
você estiver conectado a uma rede sem fio, e as chances são de que não haverá quaisquer redes disponíveis fora no meio
de um lago (ou oceano, ou onde quer que acontecer de você estar usando o seu submersível).
Você pode configurar um ad hoc de rede, que é onde o Pi e seu laptop criar uma rede pequena, exclusivo, e
em seguida, faça o login para o Pi a partir do seu laptop. No entanto, a criação de uma rede ad hoc pode ser problemático, e se
isso não acontecer
funcionar por algum motivo, você será incapaz de acessar sua Pi, tornando o seu submersível inútil.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Depois de alguma reflexão, eu decidi que a melhor maneira de proceder seria a de simplesmente iniciar o programa de sub
controle
automaticamente, quando você iniciar o Pi. Dessa forma, você pode ligá-lo, enviar energia para os motores, e prossiga para
trabalhar
com o seu sub.
Para fazer isso, tudo o que precisamos fazer é editar um arquivo-o planejador Cron. O planejador Cron é um agendador de tarefas
você
pode editar. Ele permite que você agende tarefas e scripts em horários e intervalos especificados. Para editá-lo, você abre o
arquivo chamado
o crontab, digitando
sudo crontab -e
Cada usuário tem sua própria crontab, mas usando sudo estaremos editando Cron do usuário root, que é o usuário que precisamos
para executar o nosso script Python. Você verá algo como a Figura 12-8.
Figura 12-8. Arquivo crontab do usuário
Desça até a final do arquivo, e digite o seguinte:
reboot python /home/pi/Desktop/submersible/sub.py &
Este é o caminho específico para o seu script Python (supondo que você salvou sub.py na pasta "submersível" na
sua área de trabalho), ea "&" diz Cron para executar o trabalho em segundo plano, de modo a não interferir com a inicialização
normal
rotina. Salve o arquivo, digitando Ctrl + X, Y e pressione Return. A próxima vez que você reiniciar o Pi, sub.py será
correndo testar-lo se você gosta!
Capítulo 12 ■ O submersível
O Programa de Controle de final
Temos agora todas as diferentes peças Python programado; tudo o que resta é para combiná-los em um script. Temos
determinou os parâmetros de movimento, então vamos escrever algumas funções que serão chamadas a partir do circuito principal
do programa
para reagir aos movimentos do joystick e botões pressionados. O mais fácil será as funções da câmera. Para tirar uma foto
estática, tipo
def takeStillPic (picNum):
"Tome imagem estática quando o botão é pressionado C"
ligar para (["raspistill -o imagem" + str (picNum) + ".jpg"], shell = True)
E para um vídeo, digite:
def takeVideo ():
"Tome vídeo quando o botão é pressionado Z"
ligar para (["raspivid -o video.mp4"], shell = True)
A primeira função, takeStillPic (picNum), tira uma foto, usando a chamada de sistema raspistill, com o nome de
o parâmetro, picNum. A segunda função, takeVideo (), leva a um vídeo com a extensão .mp4, usando o raspivid
chamada de sistema.
Nós vamos fazer uma chamada de importação subprocess no início do programa, com todos os nossos outras importações. É uma
boa
prática de programação para importar todos os seus módulos quando você iniciar o programa, mesmo que seja tecnicamente
possível importar um módulo necessários em qualquer parte do script. Mantendo suas importações em um lugar pode torná-lo
mais fácil
depurar o script mais tarde. Você também vai notar que takeStillPic leva um inteiro como um parâmetro; se mantivermos um
contador de
cada vez que pressione o botão C e enviar essa contagem para a função, nós vamos obter um nome de imagem diferente
("image4.jpg
,
"Image5.jpg", e assim por diante) cada vez que pressionar o botão. Se não fizermos isso, cada vez que chamar a função que vai
criar outro "image.jpg", substituindo a imagem anterior do mesmo nome. Além disso, observe que o parâmetro precisa
ser moldado como uma string com str (), a fim de ser inserido na seqüência de nome de arquivo dado.
Para manter as coisas simples, nós não estamos indo para usar recursos de vídeo da câmera neste programa. Em vez disso,
podemos tomar
uma foto com o botão nunchuk, espere até que o processo for concluído câmera, e, em seguida, continuar com o programa de
loop principal até que o botão é pressionado novamente.
O código final
Salve o seguinte código no seu Pi, de preferência em sua própria pasta. Também está disponível como sub.py no site da Apress.
de subprocess chamada de importação
tempo de importação
smbus importação
importação RPi.GPIO como GPIO
GPIO.setwarnings (False)
GPIO.setmode (GPIO.BOARD)
take_stillpic def (num):
ligue para (["raspistill -o imagem" + str (num) + "jpg"], shell = True)
go_forward def ():
GPIO.output (19, 1) # IN1 sobre
GPIO.output (23, 0) # IN2 off
GPIO.output (11, 1) # IN3 em
GPIO.output (15, 0) # IN4 off
CCapítulo 12 ■ O submersível
go_backward def ():
GPIO.output (19, 0) # IN1 off
GPIO.output (23, 1) # IN2 sobre
GPIO.output (11, 0) # IN3 off
GPIO.output (15, 1) # IN4 sobre
go_right def ():
GPIO.output (19, 1) # IN1 sobre
GPIO.output (23, 0) # IN2 off
GPIO.output (11, 0) # IN3 off
GPIO.output (15, 1) # IN4 sobre
go_left def ():
GPIO.output (19, 0) # IN1 off
GPIO.output (23, 1) # IN2 sobre
GPIO.output (11, 1) # IN3 em
GPIO.output (15, 0) # IN4 off
#set pinos de controle do motor
do motor #left
# 11 = IN3
# 13 = enableB
# 15 = IN4
GPIO.setup (11, GPIO.OUT)
GPIO.setup (13, GPIO.OUT)
GPIO.setup (15, GPIO.OUT)
do motor #right
# 19 = IN1
# 21 = enableA
# 23 = IN2
GPIO.setup (19, GPIO.OUT)
GPIO.setup (21, GPIO.OUT)
GPIO.setup (23, GPIO.OUT)
#enable ambos os motores
GPIO.output (13, 1)
GPIO.output (21, 1)
#setup ler nunchuk
ônibus = smbus.SMBus (0)
# Ou um y (1) Se você precisava usado -1 no comando i2cdetect
bus.write_byte_data (0x52, 0x40, 0x00)
time.sleep (0,5)
x=1
while True:
experimentar:
bus.write_byte (0x52, 0x00)
time.sleep (0,1)
DATA0 = bus.read_byte (0x52)
Capítulo 12 ■ O submersível
data1 = bus.read_byte (0x52)
data2 = bus.read_byte (0x52)
data3 = bus.read_byte (0x52)
data4 = bus.read_byte (0x52)
dados5 = bus.read_byte (0x52)
joy_x = DATA0
joy_y = dados1
accel_x = (data2 << 2) + ((dados5 & 0x0c) 2 >>)
accel_y = (data3 << 2) + ((dados5 & 0x30) >> 4)
accel_z = (data4 << 2) + ((dados5 & 0xC0) >> 6)
botões = dados5 & 0x03
button_c = (botões == 1) ou (botões == 2)
button_z = (botões == 0) ou (botões == 2)
se joy_x> 200: direito #joystick
Vire a direita()
elif joy_x <35: #joystick esquerda
vire à esquerda()
elif joy_y> 200: #joystick frente
ir para a frente()
elif joy_y <35: #joystick volta
go_backward ()
elif button_c == True:
X=x+1
take_stillpic (x)
elif button_z == True:
print "botão z! \ n"
else: #joystick em neutros, sem botões
GPIO.output (19, 0)
GPIO.output (23, 0)
GPIO.output (11, 0)
GPIO.output (15, 0)
exceto IOError como e:
impressão e
Construindo o Sub
Neste ponto, estamos prontos para começar a construir o submersível real. Reúna suas peças em conjunto: os tubos de PVC e
cotovelos, recipiente à prova d'água, colas, parafusos, e o resto. Lembre-se que o projeto que eu ilustrar da seguinte
seções é apenas isso: uma ilustração, não uma folha de instruções passo-a-passo. Contanto que você acabar com um quadro de
algum
ordenação, sobre a qual você pode montar o seu gabinete Pi impermeabilizada e impermeabilizadas motores e hélices, você vai
tiveram sucesso nesta tarefa.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
■ ■ Nota planos de construção, em particular os procedimentos a motor de impermeabilização foram influenciados
fortemente pelo
Programa seaperch (http://www.seaperch.org), um programa projetado para ensinar os alunos de todas as idades
sobre a construção de uma
submersível controlado remotamente e que incentiva o envolvimento nos campos de engenharia e matemáticas. É
um valioso
programa, e eu altamente endossar seus objetivos.
Construindo o quadro
Usando o tubo de PVC e 90 ° cotovelos, construir um quadro mais ou menos quadrado grande o suficiente para manter seu
gabinete de Pi. Após
usando cola de PVC ou parafusos para fixar tudo no lugar, cortar a rede plástica para ajustar a praça e usar os laços zip para
prendê-lo ao quadro. Você deve acabar com uma "bandeja" de plástico, como o mostrado na Figura 12-9.
Figura 12-9. O sub plataforma
Este é o corpo do seu sub. Eu deixei-o suficientemente grande para adicionar tiras de isopor sobre os lados se eu precisar mudar o
flutuabilidade, embora eu não deveria ter que, vendo como do gabinete do Pi é preenchido com ar.
Criação do gabinete do Pi
Você precisa de uma clara recipiente de plástico grande para conter todos os seus eletrônicos. Eu especificar "clara" porque sua
câmera será
olhando através dela e precisa ser capaz de ver. Quando você tiver selecionado o seu recipiente, perfurar três pequenos furos nele
e dois
para os fios para os motores, e um para o fio para o nunchuk-como você vê na figura 12-10.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Figura 12-10. Recinto Pi Waterproof
Impermeabilização de Caixas de motor
Talvez a parte mais difícil deste projecto é a impermeabilização dos motores, como eles estarão fora do recinto. eu costumava
frascos de comprimidos prescritos para segurar a minha. Primeiro, enrole o motor inteiramente com fita isolante para vedar as
grandes buracos na
invólucro. (Veja a Figura 12-11.)
Figura 12-11. Motor envolto em fita isolante
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Em seguida, tira as extremidades de um curto comprimento do cabo Ethernet e solda dois dos fios fechados para os fios de
o motor. Quando ele está totalmente envolvido e os cabos estão conectados, faça dois furos no frasco de comprimido e um na
tampa
para a hélice, e um na base para os fios de controlo. Deslize os fios através da garrafa e se certificar que tudo
se encaixa perfeitamente na garrafa, como mostrado na Figura 12-12 e a Figura 12-13.
Figura 12-12. Motor pronto para inserir no frasco de comprimido
Figura 12-13. Motor devidamente introduzida na garrafa
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Agora (e aqui está a chave impermeabilização) defender o seu frasco de comprimido na vertical e preenchê-lo com cera, em torno
do motor
e os fios, como mostrado na Figura 12-14. A cera de parafina, disponível no seu supermercado, funciona bem para isso. Você vai
provavelmente tem a melhor sorte se você adicionar uma pequena camada de cera, deixe endurecer, e depois continuar até que a
garrafa está cheia.
Figura 12-14. Motor rodeado por cera
Quando está firmemente cercada por cera, verifique se o eixo do motor ainda pode virar e em seguida, deslize a tampa, cabendo
o eixo do motor através de sua pré-furo. Em seguida, deslize o seu hélice no eixo exposto, e você deve ter
um motor à prova de água que se assemelha a Figura 12-15. Repetir para o outro motor para o outro lado do secundário, e em
seguida
aperte os dois motores a moldura do seu sub com laços zip.
Figura 12-15. Motora impermeabilizado, pronto para montagem
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Conexão do Nunchuck
Desde que nós estamos indo para ser executado cabo Ethernet da sub ao nunchuck (que será mantida a bordo do seu
barco), você vai precisar usar outro comprimento de cabo Ethernet. Tira as extremidades, pegar quatro fios e solda-los para o seu
controlador wiichuck. Deslize a outra extremidade do cabo através do orifício superior no corpo do seu sub, e conecte a outra
termina desses quatro fios para seus pinos GPIO do Pi.
Montagem do produto final
Uma vez que seus motores são à prova d'água, você pode montar o produto final. Executar os fios de cada motor através do
buracos em seu recipiente, e conectá-los à placa do controlador do motor da mesma forma que você fez para o teste. Quando
todos
os fios foram alimentadas através dos orifícios, utilizar o epóxi marinho para vedar os furos.
■ ■ Aviso O 5200 selante é extremamente pegajosa e confusa, e se você obtê-lo em sua pele que não vai sair.
Usar
luvas, e fazer todo o seu trabalho fora, se puder. Além disso, não ser mesquinho com o selante-você está tentando
proteger todo o seu
eletrônica, para se certificar que não há maneira de a água entrar em seu gabinete.
Quando os buracos são fechados, certifique-se de todas as suas conexões eletrônicas são de som e colocar o Pi eo motor
controlador para dentro do gabinete. Use um pequeno pedaço de fita ou um cartaz massa (que é o que eu usei) para pressionar a
câmera
contra o "muro" parte frontal do gabinete, e para manter as várias placas no lugar. Use uma pequena placa de ensaio para se
conectar
seus motivos, e adicionar suas duas baterias: uma para o Pi, e um para o controlador do motor.
Quando você liga o seu Pi com uma bateria, você deve usar uma fonte de 5V porque o Pi não tem um bordo
regulador de voltagem. Você pode experimentar com diferentes combinações de baterias, ou você pode usar um regulador de
tensão para fazer o
trabalhar para você. Para todo o meu trabalho Pi portátil, eu ter cortado um carregador de carro USB, visto na Figura 12-16, para
o efeito,
porque fornece 5V e cerca de 1 ampères perfeitamente.
Figura 12-16. Carregador de carro USB
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 12 ■ O submersível
Rachar a caixa aberta, e usar um cabo USB para micro-USB para conectar o poder USB para o seu poder de Pi in.
Em seguida, anexar o poder de sua bateria para entradas de alimentação do carregador, e voila! Você tem 5V alimentando o Pi!
Uma vez que você tem seus problemas de energia classificada, você pode colocar tudo no recinto, ligue o Pi, e selo
-lo. Esperançosamente, você tem algo que parece semelhante à da Figura 12-17.
Figura 12-17. Concluído submersível
Obviamente, a versão do produto mostrado na Figura 12-17 está inacabada, eu não ter ligado o nunchuk
Ainda não, mas você pode ver a colocação dos motores e do próprio recinto. Como uma foto final de construção, figura 12-18
mostra a colocação da câmera do Pi contra a parede frontal do gabinete, realizada no local com poster massa de vidraceiro.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Figura 12-18. Pi posicionamento da câmera em gabinete
Se você seguiu todas as instruções com cuidado, você deve agora ter um submersível Pi-motorizado que você pode
controle de terra ou seu barco, usando um nunchuk Wii. Pressionando o botão no nunchuk vai deixar você tirar fotos,
e você pode transferi-los para seu computador de casa quando você traz o Pi de volta a bordo.
E que tipo de fotografias que pode fazer? Bem, se você mora na Austrália, você poderia tomar algo como você vê na
Figura 12-19.
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 12 ■ O submersível
Figura 12-19. A fotografia subaquática
(Divulgação completa aqui: esta imagem foi não tomado com uma sub Pi Mas. Poderia ter sido.)
Se, entretanto, você vive no Alasca, as imagens que você começa pode acabar parecendo mais Figura 12-20 e Figura 12-21.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 12 ■ O submersível
Figura 12-20. Alasca fotografia subaquática
Figura 12-21. Mais do Alasca fotografia subaquática
Estas foram tiradas em um lago não muito longe da minha casa. Sim, é muito chato, não muito acontecendo em lagos do Alasca
em
final do outono. Eu provavelmente vou tentar novamente na primavera ou no verão.
Aproveite o seu submarino!
Resumo
Neste cCapítulo, você aprendeu sobre como usar o protocolo I2C para conectar um nunchuk Wii para o seu Pi e usá-lo para
controlar alguns
diferentes funções no seu Pi. Você, então, construiu um recinto estanque, móvel para o seu Pi, conectadas alguns motores
e sua câmera, e foram capazes de pilotar remotamente o seu sub e pegue a alguns (espero) impressionantes fotos subaquáticas.
No próximo cCapítulo, você aprenderá como conectar um microcontrolador Arduino-the-à sua Pi para aumentar as suas
capacidades.
Capítulo 13
O Gertboard
Enquanto o Raspberry Pi é uma impressionante peça de hardware, com áudio e interfaces de vídeo, Ethernet, USB, e GPIO
pinos, não é todo-poderoso. Por exemplo, ele não tem um regulador de tensão de bordo, o que torna possível a facilidade
fritar o Pi, dando-lhe muita tensão. Também não tem uma maneira fácil de controlar outros circuitos, tais como motores que
requerem mais corrente do que o Pi pode convenientemente fonte.
Digite o Gertboard. Um add-on placa de circuito, é sobre o tamanho de um cartão de índice e significativamente estende o
funcionalidade do seu Raspberry Pi. Enquanto você definitivamente não precisa de um para trabalhar com o Pi, tendo um marcas
muito mais fácil fazer coisas que você não poderia fazer o contrário. Por exemplo, você pode adicionar mais sensores, motores de
acionamento externo,
e muito, muito mais.
Ele deve a sua existência (e seu nome) para seu criador, Gert Van Loo. Gert foi um dos engenheiros voluntários originais
que doou grandes porções de seu tempo ao projeto Raspberry Pi e ajudou com o projeto que eventualmente se tornou
o modelo B. Raspberry Pi Porque ele queria expandir ainda mais as capacidades do Pi, ele projetou o Gertboard,
que foi o primeiro disponível apenas como um kit; que você teve para soldar a placa junto antes que você poderia usá-lo. No
entanto, você pode
agora comprar uma placa completamente montado a partir de vários varejistas online.
O desenvolvimento continua no Gertboard, então há uma boa chance de que sua placa pode ser diferente daquele em
as imagens neste cCapítulo, mas o posicionamento global de peças e seções não mudou. CIs (circuitos integrados)
podem ser diferentes, mas os cabeçalhos usado para ligar para eles não. Há ainda uma outra versão do chamado Gertboard
Placa Multiface, posto para fora por Tandy. A versão Multiface é concebido com todos através de buracos partes, o que significa
que ele
pode ser vendida como um kit e não requer solda superfície de montagem.
Neste cCapítulo, eu vou te dar um rápido passeio do Gertboard e suas partes, e até mesmo levá-lo através de algumas das
programas disponíveis para você usar. Isto lhe dará uma compreensão de trabalho do que os diferentes componentes do
e mostrar-lhe como fazer a interface com eles e, por sua vez, dar o seu Pi outra interface com o mundo físico.
Examinando o Conselho
O Gertboard é um impressionante PCB (placa de circuito impresso). Ele mede 13,2 por 8,4 cm. (5.1 por 3.3 polegadas, para você
Povos americanos) e cerca de 1,4 cm. (1/2 polegada) de altura quando está sentado em seus suportes de plástico incluído. Esses
apoios são
projetado para permitir que ele "sentar" no topo do Raspberry Pi com seus cabeçalhos GPIO do sexo feminino interface
precisamente com o Pi de
pinos machos (como mostrado na Figura 13-1).
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-1. A Gertboard ligado ao Pi
A partir de onde ele interage com o Pi, e movendo-se no sentido horário, vamos dar uma pequena turnê em torno da placa de
identificar o que todos esses pinos e botões servem para, não é?
Os pinos GPIO
Como um lembrete rápido, pinos GPIO do Pi (a fila de pinos ao lado do cartão SD no Pi) são a forma mais fácil de permitir que
ele
interagir com o mundo, com pinos de terra, ambos 3.3V e 5V pinos, pinos e variados que podem ser configuradas como
entradas ou saídas para ler interruptores e motores de acionamento, por exemplo. (Veja a Figura 13-2.)
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-2. Os pinos GPIO
Desde conectar a placa no Pi abrange pinos GPIO do Pi, os pinos, obviamente, precisa ser acessível,
e eles são, como você pode ver na Figura 13-2. Se você olhar atentamente para as numerações pino, você vai perceber que
unicamente o GPIO
pinos estão nessa linha; as 3.3V, 5V e GND estão em outro lugar no conselho.
Atmega Chip
Uma adição interessante (e útil) para o Gertboard é o chip Atmega 328P (mostrado na Figura 13-3) -a mesma
chip usado na maioria dos Arduinos. É um microcontrolador muito útil, e em uma das suas outras encarnações no Arduino
linha de placas (que eu vou falar sobre no CCapítulo 14), ele é usado por muitos, muitos aficionados. Tê-lo disponível em um
facilmente
forma acessível como este é algo que muitos usuários nos fóruns on-line Raspberry Pi tinha sido pedindo.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-3. O chip Atmega
Embora o chip Atmega no Gertboard não é bootloaded com o software Arduino, é definitivamente possível
para adicionar o software para o chip. Os pinos circulado na Figura 13-3 são as conexões com o chip Atmega.
A-para-D e D-para-um Conversores
Uma parte importante de qualquer placa como o Gertboard é a conversão analógico-digital e digital-analógico. Os quatro
pinos em destaque na Figura 13-4 e seu IC associada gerenciar essas conversões para nós.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-4. Os conversores
Um conversor digital-para-analógico é útil para converter sinais digitais para uma forma utilizada por dispositivos analógicos; por
exemplo,
muitos sinais de áudio modernos são armazenadas como ficheiros digitais MP3 e deve ser convertida para uma forma analógica
de modo a
ser reproduzido pelos alto-falantes. Os sinais de vídeo digitais devem ser convertido a fim de ser reproduzida num monitor
analógico.
Um usuário do Pi empreendedor pode querer saída de seus sinais digitais para um dispositivo analógico, e estes pinos torná-lo
possível.
Por outro lado, analógico-para-digital de conversão também é muito útil quando a interface de um computador digital para uma
mundo analógico, e o conversor no Gertboard pode ser usada para isso também. Por exemplo, você pode querer ler o
valores de um sensor de pressão analógico ligado a uma linha de pressão hidráulica. Esses valores são os valores analógicos, mas
o Pi de
GPIO pinos ler entrada somente digital. Você deve usar um chip para converter esses valores analógicos para um BAIXO ALTO
ou Digital
de modo que o Pi pode compreendê-los.
I Secção / O
A secção I / O do conselho sejam totalmente utilizadas para entradas e saídas em buffer, incluindo interruptores, botões e LEDs.
(Ver Figura 13-5). Em adição para a linha superior de cabeçalhos, que é constituída por uma fileira de 12 pequenas, LEDs
montados em superfície, três
botões de seleção, e três chips SN74HC244N. Esses chips são buffers, e eles são usados para evitar danos
à sua Pi das coisas estranhas que você provavelmente vai ser ligar para os pinos. Há resistores em série no lugar
para proteger o processador do Pi se você por engano programar o GPIO como uma saída, mas deixar a ponte de entrada em
vigor.
Da mesma forma, o envio de 9V a um pino GPIO configurado como uma entrada pode danificar o processador se não fosse para
aqueles
chips de memória intermédia.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-5. A secção I / O
Um detalhe importante a lembrar sobre os pinos na placa é que, enquanto eles podem ser configurados como "inputs"
ou "saídas", o Gertboard está ligado ao Pi e não é uma extensão do mesmo. Em outras palavras, se você chamar um pino no
Gertboard um "input", que significa que ele terá como entrada uma saída Pi. Da mesma forma, um pino de "saída" no Gertboard é
emitido
para um pino de "input" no Pi.
O Controlador de Motor
A seção controlador do motor do conselho (mostrado na Figura 13-6) é especialmente útil para a robótica e outras poder-
projetos intensivos. Ele permite que você controlar itens de alta potência, tais como motores de grande porte, com uma fonte de
alimentação externa.
Enquanto nós não vai usar isso em qualquer um dos projetos neste livro, cCapítulo 12, "O submersível," usa um motor externo
controlador. Se você tem um Gertboard, é perfeitamente aceitável para usá-lo em vez do controlador externo.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-6. O controlador do motor
Os dois terminais de parafuso média são onde vai fixar o motor, e os terminais exteriores permitem que você anexar uma
fonte de energia capaz de fornecer mais corrente do que o Gertboard (ou o Pi) pode entregar com segurança. A direção e
velocidade do motor é controlada por dois conectores localizados logo acima os pinos GPIO marcado com adequadamente
MOTA-
e MOTB.
Open Collector driver
No lado direito da placa é um chip ULN2803 que é usado como um driver de coletor aberto. Os seis portas são usadas para
transformar
ligar e desligar dispositivos externos que requerem diferente de tensão, corrente mais elevada, ou poder separado do utilizado no
Pi ou
Gertboard. (Veja a Figura 13-7.) Em poucas palavras, o coletor aberto liga o térreo de um circuito externo para o chão
na placa, e ele dá o poder circuito. Cada porta pode levar até 50V e colocar para fora 500mA.
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 13 ■ O Gertboard
Figura 13-7. O coletor aberto
Como mencionado anteriormente, o seu conselho pode parecer um pouco diferente a partir dessas imagens, porque tem havido
modificações e melhorias para o projeto desde que a placa consideráveis foi lançado, mas o general
concepção é a mesma. Como você provavelmente pode ver agora, a Gertboard grandemente aumenta as capacidades do Pi
quando se trata
a interface com o mundo físico. Com controlador do motor a bordo do Gertboard e seus drivers de coletor que
deixe-a transformar circuitos externos e fora, seu Pi agora tem a capacidade de realmente tornar-se um mentor eletrônico
sobre o que quer coleção de circuitos que você decidir se conectar a ele-se é o seu sistema de automação residencial ou seu
pessoal 200W CO2, raio de morte movido a laser.
Saltadores
Quando você compra um Gertboard, ele vem com uma seleção de jumpers de plástico (mostrado na Figura 13-8). Estes são
utilizados
para fazer conexões entre os pinos adjacentes sem ter que usar muito curto fios de jumper-a situação que
rapidamente levar a uma confusão caótica na placa, dada a quantidade de jumpers que são comumente usados. Muito
frequentemente a sua
colocação determina se um pin especial vai funcionar como um "input" ou uma "saída." Não perca estes
jumpers. A maioria dos kits vendidos também vêm com alguns jumpers mais longos também. Se o seu caso não o fizesse, não se
preocupe; por mulheres padrão
jumpers femininos funcionar muito bem no tabuleiro.
Figura 13-8. Os jumpers Gertboard
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 13 ■ O Gertboard
Há um jumper que deve no lugar em todos os momentos-o jumper de alimentação (mostrado na Figura 13-9). Localizado na
inferior direito da placa, ele se conecta a entrada de 3.3V do Pi a todas as outras partes da prancha que precisam de energia.
Figura 13-9. Os dois primeiros pinos neste bloco deve ser conectado por um jumper
Agora que já tinha um olhar ao redor do Gertboard, vamos configurar alguns jumpers preliminares e, em seguida, fazer algumas
simples
projetos de fiação para ajudá-lo a pegar o jeito de usar o conselho e suas conexões.
Alguns projetos de exemplo
O manual Gertboard tem uma seleção de scripts para experimentar, escrito em C e Python. Então, vamos fazer
que agora. Você vai notar que muitos dos scripts são quase duplicatas, com nomes como leds-rg.py e leds-wp.py.
A razão é que existem duas bibliotecas diferentes que você pode usar para acessar pinos GPIO do PI: RPi.GPIO, o que você está
familiarizado com a partir deste livro, e-WiringPi uma biblioteca escrito e lançado por Gordon Henderson. Enquanto o WiringPi
biblioteca é eficaz, e ainda resolve alguns problemas com o Pi que não RPi.GPIO (faz como uma maneira fácil de
controlar saídas com PWM), eu escolhi usar RPi.GPIO para os projetos deste livro, por isso vamos concentrar-se no que
versão dos scripts aqui. Se você estiver interessado, no entanto, eu recomendo que você vá para a biblioteca WiringPi, porque é
destina-se a fazer a interface com o Pi assemelham biblioteca Fiação do Arduino.
Configurando o programa de configuração preliminar Jumper
Antes de usar a placa para alguns projetos simples, precisamos instalar alguns jumpers. O primeiro, é claro, foi
ilustrado na Figura 13-9: ele envia energia ao resto do bordo da sua entrada de 3.3V.
O segundo lote de jumpers precisa ser instalado no "output" lado de cada IC na seção I / O buffer.
Existem três chips (mostrado na Figura 13-5), cada um com oito pinos de saída diretamente acima dele. Usando quatro jumpers
por
chips, conectar cada par de pinos juntos. (Veja a Figura 13-10.)
A imagem v inculada não pode ser exibida. Talv ez o arquiv o tenha sido mov ido, renomeado ou excluído. Verifique se o v ínculo aponta para o arquiv o e o local corretos.
Capítulo 13 ■ O Gertboard
Figura 13-10. Jumpers em uma posição de "output"
Essa configuração é necessária para as saídas em buffer funcionar como saídas em vez de entradas. Se você quiser usar o
pinos como entradas, os jumpers precisa estar conectado na linha inferior de pinos para cada IC. Uma vez que você tem os pinos
conectados como ilustrado, você pode continuar. Conecte o Pi em sua placa (como mostrado na Figura 13-1); uma vez que você
fizer isso,
vários LEDs na linha superior deve acender, mostrando que tudo tem o poder. Agora você pode começar com o seu
primeiro programa!
Fazendo Alguns LEDs Blink
Talvez a introdução mais fácil de o Gertboard é fazer algo impressionante, com os LEDs. Depois de tudo, não são
luzes piscando uma das razões que você está brincando ao redor com a eletrônica em primeiro lugar? O código Python no
Manual do usuário Gertboard foi escrito por Alex Eames de http://raspi.tv e é basicamente uma tradução do código C. Para
baixar o código Python para o conselho para experimentar, primeiro fazer um novo diretório em seu Pi, digitando
mkdir gertboard
e, em seguida, cd para o diretório. Uma vez que você estiver lá, fazer o download dos programas zipados, digitando
wget http://raspi.tv/download/GB_Python.zip
Em seguida, descompacte a pasta digitando
unzip GB_Python.zip
e cd para a pasta resultante.
Capítulo 13 ■ O Gertboard
O primeiro script simples que vamos usar é o leds-rg.py acima mencionado. Eu vou levá-lo através deste roteiro, tão aberto
para acompanhar e ver o que ele faz. As três primeiras linhas deve ser familiar para você; você está importando o tempo,
RPi.GPIO, e sys. A próxima linha, board_type = [-1] sys.argv, usa uma chamada de sistema para determinar que tipo de conselho
Você tem-no Gertboard normal ou a versão multiface Tandy. Esta informação é então usada para imprimir o correto
instruções de fiação para sua placa.
importação RPi.GPIO como GPIO
do tempo de sono de importação
sys importação
board_type = sys.argv [-1]
■ ■ Nota Porque você vai estar acompanhando no código que você acabou de baixar, todo o script não é
reproduzido aqui.
A próxima seção do código verifica o número da revisão do Pi para definir as portas de saída corretamente; a primeira revisão do
Pi usa a porta 21, enquanto que a segunda revisão usa a porta 27. O script, em seguida, cria uma lista dos ports-ports = [25, 24,
23,
7]. Depois que a lista for criada, então, copiá-lo para ports_rev e depois invertê-lo com uma chamada para o reverse ()
método. Agora temos duas listas de portos e um numerados sequencialmente para a frente, e um numerado para trás. o
próxima linha simplesmente define o modo de GPIO para BCM.
As próximas duas linhas são um excelente exemplo de Python para a sintaxe do loop. Eles simplesmente percorrer a lista de
portas
e pô-los todos para saídas:
para port_num nos portos:
GPIO.setup (port_num, GPIO.out)
A variável após a de pode ser nomeado o que quiser; a variável depois de a lista ou dicionário ou gama
ou qualquer item que é que você está interagindo através. Neste caso, as portas já foi declarado como uma lista e é
portanto iterable.
Nós, então, definir um método para transformar os LEDs on e off-led_drive (), que toma como parâmetros o número de
repetições (repetições), se estamos acendendo LEDs únicos ou múltiplos de cada vez (múltipla), e direção. Podemos, então,
usar esses parâmetros para fazer coisas interessantes com os LEDs.
De volta à função principal, que, em seguida, basta ir através de uma lista predefinida de chamadas para a função led_drive ().
Esse é o script.
Para configurar a placa, certifique-se os jumpers de saída são definidos como descrito anteriormente. Em seguida, dependendo de
qual Pi
revisão e design Gertboard você, ligue fios de ligação da secção de cabeçalho de GPIO (seção J) para a linha de
cabeçalhos de saída (secção B). Quando estiver pronto, o conselho deve ser semelhante à Figura 13-11.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-11. Posições de jumper para o script LED
Agora você pode simplesmente executar o script digitando
sudo python leds-rg.py
e você será recompensado com algumas seqüências de luzes extravagantes.
Não, nós não escrever qualquer Python elaborado aqui, mas isso é uma espécie de ponto. Simplesmente conectando alguns fios,
nós
foram capazes de obter alguns resultados bastante impressionantes com apenas algumas linhas de código-não LEDs externos ou
resistores necessários.
Os pinos de saída pode ser ligado a qualquer número de dispositivos externos; Por exemplo, um lote de geradores de som,
possivelmente. Você poderia escrever um script que ativou os geradores em certas sequências e, assim, tocar uma música.
Experiências com Motor Controllers
A próxima seção do conselho podemos jogar com é a seção de controlador do motor. Ela tem dois pinos, MOTA e MOTB,
as quais estão ligadas aos dois fios provenientes de um motor de corrente contínua padrão. Os dois pinos pode lidar com um
máximo de 18V
DC e 2A. Cada um deles pode ser definida alta ou baixa, incluindo com uma modulação de largura de impulsos (PWM) de
controlo do sinal
a velocidade do motor, eo resultado de diferentes combinações de altos e baixos são apresentados na Tabela 13-1.
Tabela 13-1. Velocidades do motor e Direcções
MOTA MOTB
Direção Motor
BAIXO
BAIXO
PARAR
BAIXO
ALTO
NO SENTIDO HORÁRIO
ALTO
BAIXO
ANTI-HORÁRIO
ALTO
ALTO
PARAR
212
Capítulo 13 ■ O Gertboard
Assim, por exemplo, se você precisasse de seu motor a girar no sentido horário, você iria enviar um 0 a MOTA e um 1 a MOTB.
Novamente, o código Python que vem com os exemplos é uma excelente maneira de ver o que o motorista do motor pode fazer.
Abrir motor-rg.py, e dar uma olhada nisso. Mais uma vez, você deve reconhecer as primeiras importações, e, em seguida,
algumas variáveis
são declaradas, como são algumas funções projetadas para executar o motor. Algumas instruções de fiação são impressas,
dependendo
o modelo da placa, em seguida, o programa começa principal.
Para executá-lo, ligue um fio do seu motor para MOTA e outro para MOTB, e, em seguida, a (+) e (-) leva do seu
energia para o MOT + e pinos MOT-. Em seguida, execute dois fios de ligação de GP17 para MOTB e GP18 para MOTA, e tipo
sudo motor-rg.py python no prompt. O motor irá percorrer seus passos, indo de zero a full-speed e volta
a zero numa direcção, e, em seguida, repetindo o processo no outro sentido. Como você pode dizer a partir do código, ele usa
GPIO pinos 17 e 18 como saídas; Obviamente, se você optar por usar o controlador do motor, você pode definir o que quer que
você pins
gostaria de ser as saídas do motor.
Utilização dos drivers open collector
Os motoristas coletor aberto nos Gertboard são, talvez, um dos mais esquecidos, ainda mais útil, partes do
borda. Isso porque eles podem ser usados para ligar um circuito externo ligado ou desligado usando o Pi, o que quer que o circuito
pode
o que quer que seja e de tensão ou amperagem ele precisa (dentro da razão, é claro). Desta forma, eles são semelhantes ao motor
controlador, mas muito mais adaptável-o controlador do motor pode ser usado apenas para motores, depois de tudo!
Existem seis condutores disponível, tornando-se possível conduzir seis circuitos externos. Um circuito de teste bom é
simplesmente um LED
e uma resistência em série.
■ Cuidado Você não sabe para sempre ligar um resistor em linha com os seus LEDs, certo? Resistências limitar o
fluxo de corrente, assim
evitando um excesso de corrente da queima para um LED.
Pegue uma pequena placa de ensaio, ligar uma fonte de energia como uma bateria de 9V para ele, e, em seguida, ligar o circuito
de LED para um
completamente diferente fileira de insumos. Em seguida, execute o programa de coletor aberto, digitando sudo python ocol-rg.py,
selecione um
motorista, e siga as instruções de instalação elétrica que imprime. Para testar o primeiro piloto, por exemplo, siga estes passos:
1.
Conecte o (+) de seu 9V para o pino RPWR no cabeçalho J6 (no canto superior direito da placa).
2.
Conecte o (-) de sua 9V para qualquer pino disponível na placa marcado GND. (Eles são todos
conectado, depois de tudo.)
3.
Conecte o condutor negativo do seu LED ao pino identificado RLY1 no cabeçalho J12 (novamente, pelo
no canto superior direito da placa).
4.
Ligue o condutor positivo (depois de um resistor em série) a qualquer pinos na placa marcado RPWR.
Pressione Enter, e você verá o LED piscam várias vezes.
Impressionante? Não, não realmente. Mas vale a pena repetir: a capacidade de controlar um circuito externo, completamente
independente da fonte de alimentação do Pi, é um passo importante. Ele permite que o Pi para actuar como um regente, ou
titereiro,
transformando subsistemas ligado ou desligado conforme necessário.
Usando os conversores digitais / analógicos
O Gertboard está equipada com um chip conversor digital-analógico de microchip. É tanto um de 8, 10 ou 12-bit
chips, dependendo do que partes estavam disponíveis quando a placa foi fabricado. Para determinar qual deles você tem,
inspecionar de perto o chip U10. (Veja a Figura 13-12.)
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Capítulo 13 ■ O Gertboard
Figura 13-12. Conversor D / A por Microchip
Há um número carimbado no chip-quer 4802, 4812, ou 4822. O terceiro dígito vai dizer se o seu chip é um
Versão 8-, 10-, ou 12-bits. Independentemente de qual chip que você tem, a pinagem é o mesmo, e os resultados são os mesmos:
o envio de
uma entrada digital do ALTO, ou (11111111, 1111111111, ou 111111111111, dependendo da sua versão do chip) resulta de tudo
1 em um
voltagem de 2.04V. De acordo com a folha de dados do chip, a saída do chip pode ser determinada pela seguinte equação:
V out = (D na ÷ 256) × 2.048V
O conversor analógico-para-digital da placa também é da Microchip, e é um MPC3002 10 bits. Ele retorna um
ALTA digital 1111111111 quando uma tensão analógica de 3.3V é aplicada. Se você aplicar uma tensão mais baixa, o valor de 10
bits
serão ajustados em conformidade. Então, se você está tentando ler sensor de pressão que eu mencionei, e é só ler 2.7V, o
valor retornado do MPC3002 será menor, e seu programa pode agir sobre esse valor menor como quiser.
Resumo
Essa é uma visão concisa e útil do Gertboard e seus diversos componentes. Você tem um passeio do conselho de administração,
aprendeu a usar jumpers para ligar vários componentes, e usou alguns programas em Python disponíveis para testar alguns
dos diferentes usos para o conselho.
A seção de um nós não cobrimos em detalhe ou experimentar é o chip Atmega, e há uma razão para isso:
Eu cubro que com muito mais detalhe no próximo cCapítulo, sobre o Raspberry Pi eo Arduino.
Capítulo 14
O Raspberry Pi e o Arduino
Manteiga de amendoim e geléia. Batman e Robin. Dr. Jekyll e Mr. Hyde. Algumas coisas são voltadas apenas para ir junto, e
nós sabemos que a partir do momento em que estabelecem os olhos sobre a combinação. Tal é o caso com o Raspberry Pi eo
Arduino. Muitos amadores e engenheiros (inclusive eu) tinha sido usando o Arduino para projetos, mas foram desejando
havia um dispositivo semelhante em tamanho, com apenas um pouco mais poder. Bem, os nossos desejos foram concedidas com
a introdução do
Pi. Ele tem mais poder do que o Arduino (o Arduino é de apenas um microcontrolador), e ele tem um processador ARM
completo.
É claro que outras opções estão no mercado placa do microprocessador consumidor. Uma escolha popular é o BeagleBoard,
uma placa baseada em ARM-processador que funciona também diferentes versões do Linux, incluindo Ubuntu e até mesmo
Angstrom. As suas
principal desvantagem é o seu preço de $ 100. Parallax põe para fora algumas placas prosumer qualidade, bem como, tais como a
oito processadores
Hélice com uma placa de ensaio built-in, mas, novamente, é mais parecido com o Pi que o Arduino, e como esta escrito
custa $ 129. Entrada mais recente da Intel no mercado de microprocessadores é o Galileo, um desenvolvimento compatível com
Arduino
placa, que também vale para aproximadamente US $ 100.
Nenhuma dessas placas, no entanto, ganharam em qualquer lugar perto o seguimento do Arduino. Uma cultura inteira tem
surgiram em torno desta pequena placa popular e as coisas incríveis que a pessoa média pode fazer com ele. tem
muitos livros, sites, fóruns e grupos dedicados a seus projetos, por isso não vou refazer essas fontes aqui. Contudo,
informações sobre a interface do Arduino com o Raspberry Pi é um pouco mais escassos. O Pi é um computador baseado no
Linux,
e como tal é perfeitamente capaz de executar o software Arduino. Neste cCapítulo, eu vou levá-lo através da instalação que
software e criar um ou dois projetos simples que funcionam exclusivamente na Pi eo Arduino-no computador de mesa é
requeridos.
Explorando o Arduino
Para aqueles de vocês não familiarizados com ele, o Arduino é uma aplicação popular de tecnologia de microcontroladores,
embalados
para tornar mais fácil para o leigo para programar e executar tarefas complexas, interessantes com alguns eletrônicos complexos.
Para as pessoas que querem apenas fazer coisas, é uma bênção; o Integrated Development Environment (IDE) utilizado para
programa
o Arduino é executado em praticamente qualquer computador, a linguagem de programação é muito parecida com C, e talvez o
melhor de-
todo-o conselho é barato, com a maioria das versões do Arduino que custam menos de US $ 30 US.
Existem várias versões do Arduino, que vão desde o pequeno Arduino Nano ao Arduino muito maior
Duemilanove (mostrado na Figura 14-1) e os mega. Todas as placas têm um chip ATmega168 ou 328 como seu centro
processador, e eles têm um chip serial-to-USB onboard para que possam se comunicar com o computador. Eles têm
uma selecção de pontes, similares aos pinos GPIO sobre o Pi, mas a maioria deles são tomadas fêmeas em vez de pinos machos.
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
Executando um Servo
É certo que, piscando um LED no comando não é a operação mais impressionante que você pode fazer com seu Arduino / Pi
combinação. Meu objetivo principal é ensinar-lhe como obter os dois dispositivos se comuniquem, e deixar os possíveis usos
e as implicações até você, mas vamos discutir se comunicando com um servo ligado ao seu Arduino.
Por uma questão de fato, tudo o que precisamos fazer é modificar o nosso código LED apenas um pouco, para fazer a interface
com um servo em vez de um
CONDUZIU. Limpar o texto de seu esboço pi_test, e substituí-lo com o seguinte:
#include <Servo.h>
Servo myservo;
void setup ()
{
myservo.attach (9);
Serial.begin (9600);
}
O Arduino e a Gertboard
Você pode estar se perguntando, já que eu já discutimos usando o Gertboard com o Pi, como fazer a interface com o Atmega
chip na Gertboard. O chip Atmega, afinal, é o chip utilizado no Arduino, então é lógico que você
poderia usar IDE do Arduino para interagir com ele.
A resposta é que, para usar o chip Atmega no Gertboard com o Arduino IDE, você precisará instalar um pouco
de software extra e fazer algumas alterações nos arquivos de configuração do Arduino Pi de e. Finalmente (talvez o mais
preocupante), que exige quatro de seus pinos GPIO para se comunicar com o chip Atmega. Ao mesmo tempo, usando um externo
Arduino é bastante simples e não requer nenhum dos seus preciosos pinos GPIO para ser sacrificado. Se você deseja instalar
o software Gertboard, um excelente tutorial passo a passo e está disponível na página da web em Gordon Henderson
http://bit.ly/1fgEFeo. Lembre-se que Gordon é o desenvolvedor da biblioteca WiringPi eu menciono no cCapítulo 13,
"O Gertboard." Essa biblioteca tenta torná-lo tão fácil de acessar pinos GPIO do Raspberry Pi, pois é para acessar o
Pins da Arduino. Gordon fez um trabalho incrível por escrito e disponibilizar o software necessário
programar chips Atmega do Gertboard, e eu recomendo que você levar algum tempo para ir através de seu site de ele-
faz um trabalho melhor do que eu jamais poderia explicar o processo.
224
Resumo
Embora este cCapítulo forneceu apenas uma curta introdução sobre como a interface do Arduino com o Raspberry Pi,
Espero que agora você percebe que a comunicação com outro quadro como o Arduino, especialmente através de uma conexão
serial,
é uma questão simples e não é diferente do que se comunicar com qualquer outro dispositivo. A diferença principal, é claro, que é
você pode programar o Arduino usando seu IDE, permitindo que basear as suas acções em informações fornecidas a ele desde o
Pi.
Da mesma forma, o Arduino pode ter sensores ligados a ele, agir como um hub de rede de sensores, e fornecer informações à
Pi. Isso pode permitir que você para descarregar um pouco do poder de processamento para o Arduino e liberar o seu Pi para mais
Processador
tarefas intensivas.
Em suma, o Arduino eo Raspberry Pi não competir com outro, eles complementam um ao outro. Cada fulfills
tarefas de uma forma diferente, e eles podem ser usados em conjunto para fazer operações arrumadas em seus projetos. Tire
algum tempo para
familiarizar-se com a interface-você será feliz que você fez.
Índice
Placa de ensaio
????
placa de ensaio analógico, 60
Anemômetro
conexões de energia e medidores, 59
montagem, 87
protótipo, 59
ligar a Pi, 87-88
slot de encoder em tubo de PVC, 86
encoder com pás de vento, 85
??
centro plataforma, 86
Brinquedo do gato
eixo quadrado, 85
conexão pedaços
velocidade do vento, 84
placa de ensaio, 140
Arduino, 2
brinquedo do gato concluída, 141
Arduino IDE
interconexões componente final, 140
Código Arduino, 218
Tubo de PVC, 142
Arduino Duemilanove, 215-216
Fios de solda, 141
esboço piscar, 221
código final, 142-143
função de flash (), 223
GPIO Biblioteca
instalar pyserial-Python biblioteca, 218
Pi, 130
LED, 223
pinagem, 131
função loop (), 219
tensão, 132
myservo, 217
mecanismo de laser
esboço pi-teste, 220-221
ponteiro laser concluída, 136
linguagem de programação, 215
Pinos GPIO do pi, 135
selecção, 220
mecanismo de parafuso, ponteiro laser, 135
porta serial, 222
laser para ligação do servo, 136-137
servo, 224
sensor de movimento (ver sensor de movimento, brinquedo do gato)
função setup (), 219
ponteiro laser ordinário, 128
esboço, 216-217
peças, 127-128
Cabo USB, 219
movimento aleatório, 128
função void loop (), 222
números aleatórios
Atmega de chip, 203-204
ponto flutuante, 129
Veículo submarino autônomo (AUV), 173
geração, 129-130
AUV. Ver Autónoma
Docs Python, 130
veículo submarino (AUV)
servos (ver Servos)
Interface de linha de comando (CLI), 16
Common Internet File System (CIFS), 104
??
Barómetro, 93-95
??
BDFL. Ver Benevolent Dictator For Life (BDFL)
Ditador benevolente para a vida (BDFL), 33
Conversores digitais / analógicos, 213-214
■ índice
????
??
Eletrônicos
Pontes H, 185
9V bateria electrocussão, 52
HDMI. Ver multimídia de alta definição
aterramento, 53
porta de interface (HDMI)
equações elétricas, 52-53
High Definition Multimedia Interface
extintores de incêndio, 63
Port (HDMI), 5-7
kit de primeiros socorros, 63
Home sistema de segurança
calor, 62
descrição, 111
ICs, 53
cães, 111
indutância, 52
Raspberry Pi, 112
equipamento de segurança do laboratório, 51
rede de sensores (ver rede Sensor,
Lei de Ohm, 52
sistema de segurança em casa)
peças organização de armazenamento, 64
HTML. Ver HyperText Markup Language (HTML)
poder, 52
HyperText Markup Language (HTML), 69
Python, 51
resistência, 53
????
robótica (ver Robotics)
objetos pontiagudos, 63
ICs. Ver Circuitos integrados (ICs)
técnicas de soldagem, 66
IDLE. Veja desenvolvimento integrado
veias, 52
Ambiente (IDLE)
ventilação, 64
Circuitos integrados, 53
circuito de água, 53
Desenvolvimento integrado
usar óculos de segurança, 63
Ambiente (IDLE)
definição, 34
ícone, 34
????
digitação, 36-37
FFMPEG, 165-166
Janela, 35
Inter-Integrated Circuit (I2C ou IIC), 82-83, 179
Eu seção / O, 205-206
??
/ Saída (GPIO) pinos de entrada de Uso Geral, 174-176
????
Gertboard
Atmega de chip, 203-204
Jumpers, Gertboard, 208
ligado a Pi, 202
conversores, 204-205
????
conversores digitais / analógicos, 213-214
Pinos GPIO, 202 - 203
Projeto paralelo teste de LED, 183-185
circuitos integrados (CIs), 201
Linux
Eu seção / O, 205-206
comandos, 18-21
jumpers, 208
Descrição, 15
LEDs, 210-212
kernel, 16
Microchip, 214
Ícone LXTerminal, Pi desktop, 21-22
controlador do motor, 206-207
gerenciadores de pacotes, 23-24
velocidades do motor e direções, 212
Pi
coletor aberto, 207-208, 213
CLI, 16
GPIO broches da PI / RPi.GPIO, 209
arquivos e sistema de arquivo, 17
saltador preliminar, 209-210
Terminal de Raspberry Pi, 16
placa de circuito impresso (PCB), 201
usuário root vs. sudo, 17
Raspberry Pi projeto, 201
conchas, 22 - 23
WiringPi, 209
editores de texto, 24 - 29
GPIO. Ver General Purpose Input / Output (GPIO) pins
campo de jogos dos usuários, 15
Os dados do GPS, 164
Permissões de arquivos Linux, 106
■ Index
PIME, 164 - 165
????
Python
Servidor de mídia
BDFL, 33
clientes, 101
tipos de dados
Linux / OS X
dicionários, 42 - 43
menu de conexão, 109
listas, 41 - 42
"Conectar ao Servidor" janela de diálogo, Mac, 109
números, 39
Unidade NTFS, 101-103
cordas, 40 - 41
Samba
tuplas e arquivos, 43 - 44
bug apóstrofo, 107
IDLE (ver desenvolvimento integrado
configuração, 104-105
Ambiente (IDLE))
Permissões de arquivos Linux, 106
OOP, 49
reinício, 107-108
"PEP 20 (Te Zen do Python)" Documento, 33
Sensor de movimento, Toy Cat
programação
queimada LED, 139
definição, 44
entrada flutuante, 138
funções, 48 - 49
Sensor IR e configuração de teste LED, 139
IF testes, 45 - 46
Sensor IR Parallax, 138
loops, 46 - 48
pullup / resistor suspenso, 138
scripting vs. linguagem de programação, 31 - 32
Script Python, 138
roteiros, 38 - 39
Controladores de motor, 206 - 207, 212
terminal, 37
Gps módulo Python, 148
Módulos Python
??
bela sopa 4 (BS4), 75
National Marine Electronics
br.open (), 75
Association (NMEA), 146
processo de download, 77 - 78
New Out Of Box Software (NOOBS), 10 - 12
para loop, 77
Nova tecnologia de sistema de arquivos (NTFS)
imagens diretório, 77
resultados blkid, 103
corda linkText, 78
descrição, 101
mechanize.Browser (), 74
tamanhos de arquivos, 102
módulo de mecanização, 72
fstab, 103
sistema operativo, 78
"My Book", 102 - 103
análise, bela sopa 4 (BS4), 73
NTFS-3G, 102
função de recuperar (), 77
NMEA. Ver National Marine Electronics
String.Contains (), 76
Association (NMEA)
str (link), 76
NOOBS. Ver New Out Of Box Software (NOOBS)
Conexões TCP, 72
NTFS. Ver Novo sistema de arquivos tecnologia (NTFS)
biblioteca urllib, 73
URLopener. recuperar (), 76
webbot.py, 75
??
teia de aranha, 72
Programação orientada a objetos (OOP), 49, 151
OOP. Veja a programação orientada a objetos (OOP)
Colector aberto, 207 - 208
??
Sistema operacional (OS), Pi
(RC) do avião controlado por rádio
formato, cartão, 10
peças adicionais, 145
NOOBS, 10
inicialização automática, 152 - 153
fluxo CGPS, 148
configurações, 146
????
Google Earth no Mac, 156 - 157
Análise, bot Web
gpsd, 146
bela sopa 4 (BS4), 71
Unidade de GPS, 155
soup.prettify print (), 71
Programa de conversão de KML, 159
Python, 71
Arquivo KML, 149 - 150
expressões regulares, 72
kml.py, 156
■ índice
Rádio-controlado (RC) do avião (cont.)
chaves de fenda, 54
baterias de polímero de lítio, 154
ferro de solda, 61-62
visão geral do setup, 155
supercola, 57
Pi na asa do avião, 156
cortadores de fio, 55-56
plane.kml, 156 - 157
ROV. Veja Veículo de Operação Remota (ROV)
programa de avião, 158
ID do processo (PID), 157
??
Módulo de registro do Python, 148 - 149
Raspberry Pi e GPS, 145
Rede de sensores, sistema de segurança em casa
rosqueamento e objetos, 151 - 152
conexão bit, 124
Carregador de carro USB, 154
callback, 124
Raspberry Pi
definição, 112
Arduino (veja Arduino IDE)
código final, 125 - 126
Código Arduino, 218
Pins GPIO, 116, 118
Pino GND do Arduino, 224
sensor magnético, 122
Processador ARM, 215
sensor de movimento, 118 - 119
Borda
A câmera de Pi, 123
tomadas de vídeo e de áudio RCA, 6
interruptor de pressão, 121
comparação, dispositivos, 7
pullup / resistor suspenso, 112
Portas Ethernet e USB, 6
interruptor de lâminas, 120 - 121
Pins GPIO, 6
Enviando uma mensagem de texto, Pi, 123 - 124
Porta HDMI, 5
lista de compras de peças, 113
modelo B, 4
rede sem fio, 113
porta de alimentação, 5
Edimax EW-7811UN, 113 - 114
Cartão SD, 5
ferramenta Raspi-config, 114
SoC, 6
Servidor SSH, 114, 116
fichas, 2
Rede sem fio, 114, 116
complementar, 225
Server Message Block (SMB), 104
configuração, 11 - 12
Servos
conexão, periféricos, 10
mudando ciclo de trabalho, 134
Gertboard, 224
construção
requisitos de hardware
X ligado e servos Y, 135
acrescentando, monitor, 7
pan e tilt mecanismo servo, 134
acrescentando, hub USB, 7 - 8
ciclos de trabalho, 133
conexão, poder, 7
comprimento, pulso, 132
dongle USB sem fio, 8 - 9
Pi e Python, 133
Computador baseado no Linux, 215
modulação por largura de pulso
OS (ver sistema operacional (OS), Pi)
(PWM), 132
placas prosumer-grade, 215
servo standard, 133
Python, 1
SoC. Ver Sistema em um Chip (SoC)
Servo, 223
Ferro de solda
desligamento, 13
ferramenta mãos, 61
utiliza, Foundation, 3
bomba de vácuo, 61
RC avião. Veja controlado por rádio (RC) do avião
Weller WES51, 61
Veículo de Operação Remota (ROV), 173
Técnicas de soldagem
Rotações por segundo (RPS), 88 - 89
junta de solda fria, 65 - 66
Robótica
calor, 65
placa de ensaio, 59-60
superfícies e estanho, 65
cortes mais finos, 56
Submersível
pistola de cola quente, 57
planos de construção
ampliação luz, 56-57
submersível concluída, 197
multímetro, 57-58
nunchuck conectar, 196
alicates e descascadores de fios, 54-55
quadro, 192
filtro de linha, 61
epóxi marinha, 196
fonte de alimentação, 58-59
Pi posicionamento da câmera, 197 - 198
■ Index
Gabinete do Pi, 192 - 193
peças, 161
fotografia subaquática, 199 - 200
Instalação PIME, 164 - 165
Carregador de carro USB, 196
Pi, preparação, 161, 166
controlar sub (ver Wii nunchuk)
configuração do regulador-balão pescoço, 167 - 168
Cron scheduler, 188
baraço, refrigerador, 169
Pi extra, 173
threading e objetos, 167
código final, 189 - 191
Estação meteorológica
programa de controle final, 189
anemômetro (ver anemômetro)
Pins GPIO, 174, 176
barómetro (ver Barometer)
peças, 174
bocados, 95 - 96
programa, faça o login remotamente, 187 - 188
fritas breadboarded, 96
Raspberry Pi instalação da placa câmera, 176 - 178
bússola digital, 90 - 91
Sistema em um Chip (SoC), 6
código final, 97 - 99
I2C Protocol (ver Inter-Integrated
Circuito (IIC ou I2C))
????
peças, 82
TCP. Veja Transmission Control Protocol (TCP)
RPS (ver revoluções por segundo (RPS))
Sensor de temperatura / humidade, 92 - 93
sensor de temperatura / humidade
Editores de texto
(Ver sensor de temperatura / humidade)
descrição, 24
Bot Web
emacs, 26 - 28
bot etiqueta, 68
leafpad, 29
ferramenta de descarga de linha de comando, 70
nano, 28
Dane-Elec, 74
vim, 25 - 26
flash drive, 74
vim vs. emacs vs. nano, 25
HTML, 69
Transmission Control Protocol (TCP), 69
Redes IEEE, 74
informações, 67
formatos de arquivos legítimos, 73
????
parsing páginas web, 71-72
Interface UART. Veja Universal Asynchronous
Módulos Python (ver módulos Python)
Receiver / Transmitter (UART) Interface
aranha, 68
Universal Asynchronous Receiver / Transmitter
Conexão TCP, 70
(UART) interface, 146, 159
mapa visual, internet, 67
webbot.py, 79
protocolos de comunicação web, 69
????
White Star, 68
Impermeabilização procedimentos, submersível
Wii nunchuk
para efeitos de montagem, 195
adaptador, 179 - 180
cera de parafina, 195
I2C ou IIC, 179 - 181
frasco de comprimido, 194
Projeto paralelo teste de LED, 183 - 185
vedação, 193
leitura, 182
Balões meteorológicos
sub motores e câmera
placa câmera, 168
Pontes H, 185
festival, 165
motores e controlador do motor, 186 - 187
Instalação FFMPEG, 165 - 166
valores do motor e configurações, 186
código final, 171 - 172
teste, 181
Os dados do GPS, 164
Descascadores de fios, a robótica
Receptor GPS, 162 - 163
alicate de bico, 54
imagens, 170 - 171
furos pré-feitos sob medida, 55
pára-quedas, 169
versão 1 e 2, 54 - 55
Saiba Raspberry Pi
Programação com Python
Wolfram Donat
Conteúdo
Sobre o autor
xv
Sobre o Revisor Técnico
xvii
Agradecimentos
xix
Introdução
xxi
■ ■ Capítulo 1: Apresentando o Raspberry Pi
1
A História do Raspberry Pi
2
Explorando o Conselho Pi
4
O cartão SD
5
A porta de alimentação
5
A porta HDMI
5
As portas Ethernet e USB
6
O áudio e vídeo RCA Jacks
6
Os pinos GPIO
6
O Sistema em um Chip
6
Comparando Raspberry Pi para dispositivos semelhantes
7
Requisitos de hardware do Pi
7
Ligar a alimentação
7
Adição de um monitor
7
Adicionando um Hub USB
7
Usando um dongle USB sem fio
8
O sistema operacional Pi
9
Formatar o Cartão
10
Usando NOOBS
10
vii
■ Conteúdo
Ligação dos periféricos
10
Configurando o Pi
11
Desligando o Pi
13
Resumo
13
■ ■ Capítulo 2: Linux pelo assento de suas calças
15
Introdução ao Linux no Pi
16
Arquivos Linux eo sistema de arquivos
17
Usuário Root vs. sudo
17
Comandos
18
Exercício: Navegando no Sistema de Arquivos Linux
21
Escudos em Linux
22
Gerenciadores de pacotes
23
Editores de texto
24
Vim vs Emacs vs. nano
25
Resumo
29
■ ■ Capítulo 3: Apresentando Python
31
Scripting vs. uma linguagem de programação
31
O Python Filosofia
33
Introdução ao Python
34
Correr Python Usando IDLE
34
Correr Python Usando o Terminal
37
Correr Python usando scripts
38
Explorando os tipos de dados do Python
39
Programação com Python
44
IF testes
45
Loops
46
Funções
48
Objetos e Programação Orientada a Objetos
49
Resumo
50
viii
■ Conteúdo
■ ■ CAPÍTULO 4: Eletrônica a 100 MPH
51
Conceitos básicos de eletricidade
52
Ferramentas necessárias para Robótica
54
Chaves de fenda
54
Alicates e fio strippers
54
Cortadores de fio
55
Arquivos
56
Lupa Luz
56
Pistola de cola quente
57
Colas Assorted
57
Multímetro
57
Suprimentos de energia
58
Placa de ensaio
59
Faixa de poder
61
Ferro de solda
61
Regras gerais de segurança
62
Trabalhando com calor
62
Trabalhando com objetos pontiagudos
63
Usar óculos de segurança
63
Extintores no pronto
63
Mantenha um kit de primeiros socorros Handy
63
Trabalhar em uma área ventilada
64
Organizando seu local de trabalho
64
Bônus: Técnicas de solda
65
Resumo
66
■ ■ Capítulo 5: O Web Bot
67
Bot Etiquette
68
As conexões da Web
69
Web Protocolos de Comunicação
69
Formatos de página Web
69
A pedido Exemplo
70
ix
■ Conteúdo
Nosso conceito Web Bot
70
Analisando Páginas da Web
71
Codificação com módulos Python
72
Usando o módulo Mecanizar
72
Analisando com Beautiful Soup
73
Baixando com a urllib Biblioteca
73
Decidir o que fazer download
73
Escolher um ponto de partida
74
Armazenar seus arquivos
74
Escrevendo o Python Bot
74
Lendo uma String e extrair todos os links
75
Procurando por e download de arquivos
75
Testando o Bot
76
Criando diretórios e instanciar uma lista
77
O código final
79
Resumo
80
■ ■ Capítulo 6: A estação meteorológica
81
A Lista de Compras de Peças
82
Usando o protocolo de I2C
82
Usando um anemômetro
84
Construindo o anemômetro
84
Ligar o anemômetro para o Pi
87
Correlacionando rotações por segundo com velocidade do vento
88
Ligar o Compass Digital
90
Ligar a temperatura / umidade Sensor
92
Ligar o Barômetro
93
Ligação dos Bits
95
O código final
97
Resumo
100
x
■ Conteúdo
■ ■ Capítulo 7: O Media Server
101
A Lista de Compras de Peças
101
Usando uma unidade NTFS
101
Instalando o Samba
104
Configurando Samba
104
Definindo permissões do Linux
106
Fixação do Bug Apostrophe
107
Reiniciar o Serviço de Samba
107
Conectando com Linux / OS X
108
Onde está Python?
110
Resumo
110
■ ■ Capítulo 8: O sistema de segurança Home
111
Cães como Segurança
111
Raspberry Pi como Segurança
112
Usando uma rede de sensores
112
Compreendendo uma Pulldown Resistor
112
A Lista de Compras de Peças
113
Conectando-se a rede sem fio
113
Acessando os pinos GPIO
116
Configurar o sensor de movimento
118
Configurando o Interruptor de Lâmina
120
Configuração do interruptor de pressão
121
Ligar o Sensor Magnético
122
Configurando Câmara de Pi
123
Enviando uma mensagem de texto a partir do Pi
123
Implementando o Callback
124
Conectando todos os bits
124
O código final
125
Resumo
126
xi
■ Conteúdo
■ ■ Capítulo 9: The Toy Cat
127
A Lista de Compras de Peças
127
O conceito por trás da Toy
128
Criando e usando números aleatórios
129
Utilizando a biblioteca GPIO
130
Controlando o Servo
132
Construindo o Mecanismo Servo
134
Construindo o Mecanismo Laser
135
Ligar o laser para o Servo
136
Ligar o sensor de movimento
137
Conectando todos os bits
140
O código final
142
Resumo
143
■ ■ Capítulo 10: O Avião Rádio-Controlado
145
A Lista de Compras de Peças
145
Ligar o receptor GPS para o Pi
146
Configurando um arquivo de log
148
A formatação de um arquivo KML
149
Usando threading e Objetos
151
Configurar inicialização automática
152
Ligação dos Bits
153
O código final
157
O Programa plano
158
Programa de Conversão KML
159
Resumo
159
■ ■ Capítulo 11: The Weather Balloon
161
A Lista de Compras de Peças
161
Configuração do Receptor GPS
162
Armazenar os dados de GPS
164
xii
■ Conteúdo
Instalando PIME
164
Instalando festival
165
Instalando FFMPEG
165
Preparando o Pi
166
Usando threading e Objetos
167
Ligação dos Bits
167
Revendo os resultados Photo
170
O código final
171
Resumo
172
■ ■ Capítulo 12: O submersível
173
A Lista de Compras de Peças
174
Acessando pinos GPIO do Raspberry Pi
174
Instalando o Raspberry Pi Camera Board
176
Controlar o Sub
178
Anexando o Adaptador Wiichuck
179
Ativando I2C do Pi
180
Testando o Nunchuk
181
Leitura desde o Nunchuk
182
Controlar os Motors Sub Câmara e com o Nunchuk
185
Iniciando o Programa remotamente
187
O Programa de Controle de final
189
O código final
189
Construindo o Sub
191
Construindo o quadro
192
Criação do gabinete do Pi
192
Impermeabilização de Caixas de motor
193
Conexão do Nunchuck
196
Montagem do produto final
196
Resumo
200
xiii
■ Conteúdo
■ ■ Capítulo 13: A Gertboard
201
Examinando o Conselho
201
Os pinos GPIO
202
Atmega Chip
203
A-para-D e D-para-um Conversores
204
I Secção / O
205
O Controlador de Motor
206
Open Collector driver
207
Saltadores
208
Alguns projetos de exemplo
209
Configurando o programa de configuração preliminar Jumper
209
Fazendo Alguns LEDs Blink
210
Experiências com Motor Controllers
212
Utilização dos drivers open collector
213
Usando os conversores digitais / analógicos
213
Resumo
214
■ ■ Capítulo 14: O Raspberry Pi eo Arduino
215
Explorando o Arduino
215
Instalando o Arduino IDE sobre o Pi
218
Executando um Servo
223
O Arduino ea Gertboard
224
Resumo
225
Índice
227
xiv
Sobre o autor
Wolfram Donat é tallish, com cabelo e quatro membros ligados em aproximadamente
os locais corretos. Ele é um engenheiro de computação, escritor e programador, com
interesses em robótica, animatronics, automação e sistemas embarcados. Ele escreveu
seu primeiro programa básico em um Commodore VIC-20, há mais anos do que se importa
Admitir.
Ele atualmente vive em Anchorage, Alaska, com sua esposa, filho, e zoológico
de animais.
xv
Sobre o Revisor Técnico
Chaim Krause vive actualmente em Leavenworth, Kansas, onde o Exército dos EUA
emprega-lo como um especialista Simulation. Em seu tempo livre, ele gosta de jogar PC
jogos e, ocasionalmente, desenvolve a sua própria. Ele assumiu recentemente o esporte de
golf para passar mais tempo com seu outro significativo, Ivana. Embora ele segura
bacharelado em Ciência Política pela Universidade de Chicago, Chaim é um autodidata
quando se trata de computadores, programação e eletrônica. Ele escreveu seu primeiro
jogo de computador em BASIC em um Tandy Modelo I Nível I e armazenado o programa em
uma fita cassete. Rádio amador apresentou-o a eletrônica, enquanto o Arduino
e o Raspberry Pi fornecido um meio de combinar computação, programação,
e eletrônica em um hobby.
xvii
Agradecimentos
Escrever um livro pode ser um processo solitário, mas certamente não pode ser feito sem ajuda. Um monte de trabalho por um
monte de gente
entrou nesta empresa, e todos eles têm o meu mais profundo agradecimento. Meus agradecimentos a Kevin para manter as coisas
em movimento
sem problemas, para Anne Marie para descobrir o que eu estava tentando dizer, e Roger LeBlanc para fazer com que pareça que
eu sei
o que estou fazendo. Tanques para Chaim, o revisor tecnologia, para ter certeza que as coisas que eu escrevi realmente executa e
faz o que é
suposto. E, graças à Michelle, para tomar conhecimento de mim em primeiro lugar.
Por último, mas não menos importante, graças à Becky e Reed. Tis seu para você.
xix