Índice:

TfCD - Mais: 7 etapas
TfCD - Mais: 7 etapas

Vídeo: TfCD - Mais: 7 etapas

Vídeo: TfCD - Mais: 7 etapas
Vídeo: Red Bull Signature Series - Red Bull Rampage 2015 FULL TV EPISODE 2024, Novembro
Anonim
Image
Image
Ingredientes
Ingredientes

Plus é uma luz inteligente mínima, que não apenas notifica as pessoas sobre as condições climáticas, mas também cria uma experiência agradável para os usuários pelas mudanças feitas na cor da luz ao girar o sinal de adição. Sua forma dá ao usuário a oportunidade de combinar vários módulos plus ou criar uma enorme lâmpada com muitas peças plus colocadas por amigos. Este projeto de iluminação faz parte do curso de Advanced Concept Design (ACD) na universidade TU Delft e da tecnologia implementada usando a prática do TfCD como fonte de inspiração.

Etapa 1: Ingredientes

Ingredientes
Ingredientes
Ingredientes
Ingredientes

1 framboesa pi zero w

1 acelerômetro Groove Adxl345

4 LED Ws2812b

1 placa de prototipagem

Invólucros impressos em 3D e cortados a laser

Etapa 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

LEDs

Os LEDs Neopixel possuem 4 pinos nomeados: + 5V, GND, Data In e Data out.

  1. O pino 4 do raspberry pi está conectado ao + 5V de todos os LEDs
  2. O pino 6 do raspberry pi está conectado ao GND de todos os LEDS
  3. Os dados no pino do primeiro LED são conectados ao pino 12 do raspberry pi.
  4. O pino de saída de dados do primeiro LED é conectado à entrada de dados do segundo e assim por diante.

Por favor, dê uma olhada no diagrama de fiação para um melhor entendimento.

Acelerômetro

O acelerômetro possui 4 pinos nomeados: VCC, GND, SDA e SCL.

  1. O pino 1 do raspberry pi está conectado ao VCC.
  2. O pino 3 do raspberry pi está conectado ao SCL.
  3. O pino 5 do raspberry pi está conectado ao SDA.
  4. O pino 9 do raspberry pi está conectado ao GND.

Construir

  1. Por conveniência, os LEDs podem ser soldados em uma placa de prototipagem. Decidimos cortar a placa no formato de um plus para que ela se encaixe bem na caixa projetada em 3D.
  2. Depois de soldar os LEDs na placa, soldamos os fios de jumper para fazer as conexões entre um conector de 0,1 "e os LEDs. O conector do conector é usado para permitir que o raspberry pi seja desconectado e reutilizado em um projeto futuro.

Etapa 3: Software

Programas
Programas

Imagem do sistema operacional Raspberry Pi

Primeiro, precisamos colocar o Raspberry Pi em funcionamento. Para fazer isso, seguimos estas etapas:

  1. Baixe a última versão do Raspbian aqui. Você pode baixá-lo diretamente ou através dos torrents. Você precisará de um gravador de imagens para gravar o sistema operacional baixado no cartão SD (cartão micro SD no caso do modelo Raspberry Pi B + e Raspberry Pi Zero).
  2. Portanto, baixe o "win32 disk imager" aqui. Insira o cartão SD no laptop / pc e execute o gravador de imagens. Depois de aberto, navegue e selecione o arquivo de imagem Raspbian baixado. Selecione o dispositivo correto, ou seja, a unidade que representa o cartão SD. Se a unidade (ou dispositivo) selecionada for diferente do cartão SD, a outra unidade selecionada será corrompida. Por isso tem cuidado.
  3. Depois disso, clique no botão "Escrever" na parte inferior. Como exemplo, veja a imagem abaixo, onde a unidade do cartão SD (ou micro SD) é representada pela letra "G: \" O sistema operacional agora está pronto para uso normal. No entanto, neste tutorial, usaremos o Raspberry Pi no modo sem cabeça. Isso significa sem um monitor físico e teclado conectado a ele!
  4. Depois de gravar o cartão SD, não o ejete do computador! Use um editor de texto para abrir o arquivo config.txt que está no cartão SD. Vá para a parte inferior e adicione dtoverlay = dwc2 como a última linha:
  5. Salve o arquivo config.txt como texto simples e abra cmdline.txt Depois de rootwait (a última palavra na primeira linha), adicione um espaço e, em seguida, modules-load = dwc2, g_ether.
  6. Agora remova o cartão SD do seu PC e insira-o no Raspberry Pi e conecte-o ao seu PC usando um cabo USB. Assim que o sistema operacional for inicializado, você deverá ver um novo dispositivo Ethernet Gadget sendo descoberto.
  7. Você pode usar ssh [email protected] para se conectar à placa e controlá-la remotamente. Para obter instruções mais detalhadas sobre a operação sem comando, acesse aqui. Driver Neopixel

A biblioteca rpi_ws281x é a chave que torna possível o uso de NeoPixels com o Raspberry Pi.

Primeiro, precisamos instalar as ferramentas necessárias para compilar a biblioteca. Em seu Raspberry Pi execute: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Agora execute estes comandos para baixar e compilar a biblioteca:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Finalmente, depois que a biblioteca foi compilada com sucesso, podemos instalá-la para python usando:

cd python && sudo python setup.py install Agora vem o código python que comanda os LEDs. O código é bastante simples com alguns comentários para ajudá-lo. da importação de neopixel * # configurações NeoPixel LED_PIN = 18 # Pino GPIO do Raspberry Pi conectado aos pixels LED_BRIGHTNESS = 255 # Definido como 0 para mais escuro e 255 para mais claro LED_COUNT = 4 # Número de faixas de pixels de LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicialize a biblioteca strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Driver ADXL345

O sensor acelerômetro que selecionamos possui uma interface I2C para comunicação com o mundo exterior. Felizmente para nós, o Raspberry Pi também possui interface I2C. Só precisamos habilitá-lo para usá-lo em nosso próprio código.

Chame a ferramenta de configuração Raspbian usando sudo raspi-config. Depois de executar, vá para Opções de interface, Opções avançadas e ative I2C. Instale os módulos Python relevantes para que possamos usar a interface I2C em python:

sudo apt-get install python-smbus i2c-tools O código python a seguir nos permite comunicar-nos com o sensor do acelerômetro e ler seus valores de registro para nossos próprios propósitos. import smbus import struct # Configurações do acelerômetro bus = smbus. SMBus (1) endereço = 0x53 ganho = 3.9e-3 bus.write_byte_data (endereço, 45, 0x00) # Vá para o modo de espera bus.write_byte_data (endereço, 44, 0x06) # Largura de banda 6,5 Hz bus.write_byte_data (endereço, 45, 0x08) # Vá para o modo de medição # Leia os dados do sensor buf = bus.read_i2c_block_data (endereço, 50, 6) # Descompacte os dados de int16_t para python integer data = struct.unpack_from ("> hhh", buffer (bytearray (buf)), 0)

x = float (dados [0]) * ganho

y = float (dados [1]) * ganho

z = float (dados [2]) * ganho

Detector de Movimento

Uma das características da luz que estamos fazendo é que ela pode detectar movimento (ou falta dele) para entrar no modo interativo (onde a luz muda com base na rotação) e no modo de previsão do tempo (onde a luz muda dependendo da previsão do tempo para hoje). O código a seguir usa a função anterior para ler os valores de aceleração para os 3 eixos e nos alertar quando houver movimento.

accel = getAcceleration ()

dx = abs (prevAccel [0] - aceleração [0])

dy = abs (prevAccel [1] - aceleração [1])

dz = abs (prevAccel [2] - aceleração [2])

if dx> moveThreshold ou dy To> moveThreshold ou dz> moveThreshold:

imprimir 'movido'

movido = verdadeiro

outro:

movido = falso

API de clima

Para receber a previsão do tempo, podemos usar o Yahoo Weather. Isso envolve conversar com a API do Yahoo Weather Rest, que pode ser bastante complexa. Felizmente para nós, a parte difícil já foi resolvida na forma do módulo weather-api para python.

  1. Primeiro, precisamos instalar este módulo usando: sudo apt install python-pip && sudo pip install weather-api
  2. Visite o site do autor para obter mais informações sobre este módulo.

Depois de instalar, o código a seguir obtém as condições climáticas para o momento

de importação de clima Weatherweather = clima ()

location = weather.lookup_by_location ('dublin')

condição = localização.condição ()

imprimir (condition.text ())

Juntando tudo

O código completo para o projeto que conecta todas as peças acima pode ser encontrado aqui.

Iniciar automaticamente o script Python na hora da inicialização

Para poder colocar o raspberry pi em uma caixa e fazer com que ele execute nosso código toda vez que o conectarmos à energia, devemos nos certificar de que o código seja iniciado automaticamente durante a inicialização. Para fazer isso, usamos uma ferramenta chamada cron.

  1. Primeiro chame a ferramenta cron usando: sudo crontab -e
  2. As etapas anteriores abrirão um arquivo de configuração, no qual adicionamos a seguinte linha:

    @reboot python /home/pi/light.py &

Etapa 4: modelagem e impressão 3D

Modelagem e Impressão 3D
Modelagem e Impressão 3D
Modelagem e Impressão 3D
Modelagem e Impressão 3D

O modelo 3D do Plus foi feito em Solidworks e salvo no formato. Stl. Em seguida, para a impressão 3D do modelo, o arquivo. Stl foi importado no software Cura. Cada lado do plus levou 2:30 horas para ser produzido; portanto, cada Plus completo demorava cerca de 5 horas para imprimir. E para os lados transparentes, o plexiglass foi cortado a laser.

Etapa 5: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

Com a parte impressa em 3D, a eletrônica e o software em mãos, podemos finalmente montar o produto final.

  1. As placas superior e inferior impressas em 3D são mais transparentes do que o previsto. Uma camada de papel alumínio resolveu o problema de vazamento de luz.
  2. No entanto, essas folhas são condutoras e podem causar curtos em nosso circuito desprotegido. Portanto, outra camada de papelão branco é colada na parte superior.
  3. Os segmentos difusos de Plexiglass são colados em uma das placas laterais.
  4. Um orifício é feito em um dos painéis laterais impressos em 3D. Isso é para que possamos passar pelo cabo de alimentação.
  5. Depois que o cabo de alimentação passa pelo orifício, nós o soldamos em nossa placa de prototipagem.
  6. Colocamos o sensor no raspberry pi e, em seguida, o plugamos no conector.
  7. Juntamos as 2 peças para obter o nosso produto final.
  8. Opcionalmente, você pode colar as 2 peças para fazer uma conexão mais permanente. No entanto, esteja ciente de que pode ser difícil entrar na caixa após ela estar colada se você quiser alterar o código mais tarde.

Recomendado: