Sommario:

TfCD - Plus: 7 passaggi
TfCD - Plus: 7 passaggi

Video: TfCD - Plus: 7 passaggi

Video: TfCD - Plus: 7 passaggi
Video: TFCD Arduino face tracking device 2024, Dicembre
Anonim
Image
Image
ingredienti
ingredienti

Plus è una luce intelligente minimale, che non solo informa le persone sulle condizioni meteorologiche, ma crea anche un'esperienza piacevole per gli utenti grazie alle modifiche apportate al colore della luce ruotando il plus. La sua forma offre all'utente l'opportunità di combinare diversi moduli plus o creare un'enorme lampada con molti pezzi plus posizionati dagli amici. Questo progetto di illuminazione fa parte del corso Advanced Concept Design (ACD) presso l'università TU Delft e la tecnologia implementata utilizzando TfCD pratica come fonte di ispirazione.

Passaggio 1: ingredienti

ingredienti
ingredienti
ingredienti
ingredienti

1 lampone pi zero w

Accelerometro a 1 scanalatura Adxl345

LED da 4 Ws2812b

1 Scheda di prototipazione

Involucri stampati in 3D e tagliati al laser

Passaggio 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

LED

I LED Neopixel hanno 4 pin denominati: +5V, GND, Data In e Data out.

  1. Il pin 4 del Raspberry Pi è collegato ai +5V di tutti i LED
  2. Il pin 6 del Raspberry Pi è collegato al GND di tutti i LED
  3. Il pin Data In del primo LED è collegato al pin 12 del Raspberry Pi.
  4. Il pin Data out del primo LED è collegato al Data in del secondo e così via.

Si prega di dare un'occhiata allo schema elettrico per una migliore comprensione.

Accelerometro

L'accelerometro ha 4 pin denominati: VCC, GND, SDA e SCL.

  1. Il pin 1 di Raspberry Pi è collegato a VCC.
  2. Il pin 3 del Raspberry Pi è collegato a SCL.
  3. Il pin 5 del Raspberry Pi è collegato a SDA.
  4. Il pin 9 del Raspberry Pi è collegato a GND.

Costruire

  1. Per comodità, i LED possono essere saldati su una scheda di prototipazione. Abbiamo deciso di tagliare la tavola a forma di un plus in modo che si adatti bene alla custodia progettata in 3D.
  2. Una volta saldati i LED sulla scheda, saldiamo i cavi dei ponticelli per effettuare le connessioni tra un connettore da 0,1" e i LED. Il connettore dell'intestazione viene utilizzato per consentire la disconnessione e il riutilizzo del raspberry pi per un progetto futuro.

Passaggio 3: software

Software
Software

Immagine del sistema operativo Raspberry Pi

Per prima cosa dobbiamo far funzionare il Raspberry Pi. Per farlo seguiamo questi passaggi:

  1. Scarica l'ultima versione di Raspbian da qui. Puoi scaricarlo direttamente o tramite torrent. Avrai bisogno di uno scrittore di immagini per scrivere il sistema operativo scaricato nella scheda SD (scheda micro SD in caso di modello Raspberry Pi B+ e Raspberry Pi Zero).
  2. Quindi scarica "win32 disk imager" da qui. Inserisci la scheda SD nel laptop/pc ed esegui il writer di immagini. Una volta aperto, sfoglia e seleziona il file immagine Raspbian scaricato. Selezionare il dispositivo corretto, ovvero l'unità che rappresenta la scheda SD. Se l'unità (o dispositivo) selezionata è diversa dalla scheda SD, l'altra unità selezionata verrà danneggiata. Perciò stai attento.
  3. Successivamente, fai clic sul pulsante "Scrivi" in basso. Ad esempio, vedere l'immagine qui sotto, dove l'unità della scheda SD (o micro SD) è rappresentata dalla lettera "G:\" Il sistema operativo è ora pronto per il normale utilizzo. Tuttavia in questo tutorial utilizzeremo il Raspberry Pi in modalità headless. Ciò significa senza un monitor fisico e una tastiera collegati!
  4. Dopo aver masterizzato la scheda SD, non espellerla dal computer! Usa un editor di testo per aprire il file config.txt che si trova nella scheda SD. Vai in fondo e aggiungi dtoverlay=dwc2 come ultima riga:
  5. Salva il file config.txt come testo normale e quindi apri cmdline.txt Dopo rootwait (l'ultima parola sulla prima riga) aggiungi uno spazio e poi module-load=dwc2, g_ether.
  6. Ora rimuovi la scheda SD dal tuo PC e inseriscila nel Raspberry Pi e collegala al tuo PC utilizzando un cavo USB. Una volta avviato il sistema operativo, dovresti vedere un nuovo dispositivo Ethernet Gadget scoperto.
  7. Puoi usare ssh [email protected] per connetterti alla scheda e controllarla da remoto. Per istruzioni più dettagliate sul funzionamento senza testa vai qui. Neopixel Driver

La libreria rpi_ws281x è la chiave che rende possibile l'utilizzo di NeoPixel con Raspberry Pi.

Per prima cosa dobbiamo installare gli strumenti necessari per compilare la libreria. Nella tua esecuzione Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Ora esegui questi comandi per scaricare e compilare la libreria:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Infine, dopo che la libreria è stata compilata con successo, possiamo installarla per python usando:

cd python && sudo python setup.py install Ora arriva il codice python che guida i LED. Il codice è abbastanza semplice con alcuni commenti per aiutarti. from neopixel import * # Configurazioni NeoPixel LED_PIN = 18 # Pin GPIO di Raspberry Pi collegato ai pixel LED_BRIGHTNESS = 255 # Imposta a 0 per il più scuro e 255 per il più luminoso LED_COUNT = 4 # Numero di strisce di pixel LED = Adafruit_NeoPixel(LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inizializza la libreria strip.begin() strip.setPixelColor(0, Color(255, 255, 255)) strip.show()

Driver ADXL345

Il sensore accelerometro che abbiamo selezionato ha un'interfaccia I2C per comunicare con il mondo esterno. Fortunatamente per noi, il Raspberry Pi ha anche un'interfaccia I2C. Abbiamo solo bisogno di abilitarlo per usarlo nel nostro codice.

Chiama lo strumento di configurazione Raspbian usando sudo raspi-config. Una volta eseguito, vai su Opzioni di interfaccia, Opzioni avanzate e quindi abilita I2C. Installa i moduli Python pertinenti in modo da poter utilizzare l'interfaccia I2C in Python:

sudo apt-get install python-smbus i2c-tools Il seguente codice python ci permette di comunicare con il sensore dell'accelerometro e di leggere i suoi valori di registro per i nostri scopi. import smbus import struct # Configurazioni accelerometro bus = smbus. SMBus(1) address = 0x53 gain = 3.9e-3 bus.write_byte_data(address, 45, 0x00) # Vai in modalità standby bus.write_byte_data(address, 44, 0x06) # Larghezza di banda 6.5Hz bus.write_byte_data(address, 45, 0x08) # Vai alla modalità di misurazione # Leggi i dati dal sensore buf = bus.read_i2c_block_data(address, 50, 6) # Decomprimi i dati da int16_t a python integer data = struct.unpack_from (">hhh", buffer(bytearray(buf)), 0)

x = float(data[0]) * guadagno

y = float(data[1]) * guadagno

z = float(data[2]) * guadagno

Rilevatore di movimento

Una delle caratteristiche della luce che stiamo realizzando è che può rilevare il movimento (o la sua mancanza) per entrare in modalità interattiva (dove la luce cambia in base alla rotazione) e modalità di previsione del tempo (dove la luce cambia a seconda delle previsioni del tempo per oggi). Il codice seguente utilizza la funzione precedente per leggere i valori di accelerazione per i 3 assi e avvisarci quando c'è movimento.

accel = getAcceleration()

dx = abs(prevAccel[0] - accel[0])

dy = abs(prevAccel[1] - accel[1])

dz = abs(prevAccel[2] - accel[2])

se dx > moveThreshold o dy To > moveThreshold o dz > moveThreshold:

stampa 'spostato'

spostato = vero

altro:

spostato = falso

API meteo

Per ricevere le previsioni del tempo possiamo utilizzare Yahoo Weather. Ciò implica parlare con l'API Yahoo Weather Rest che può essere piuttosto complessa. Fortunatamente per noi, la parte difficile è già stata risolta sotto forma del modulo weather-api per python.

  1. Per prima cosa dobbiamo installare questo modulo usando: sudo apt install python-pip && sudo pip install weather-api
  2. Si prega di visitare il sito web dell'autore per ulteriori informazioni su questo modulo.

Una volta installato, il seguente codice ottiene le condizioni meteorologiche per questo momento

da import meteo Weatherweather = Weather()

location = weather.lookup_by_location('dublin')

condizione = posizione.condizione()

print(condizione.testo())

Mettere tutto insieme

L'intero codice per il progetto che collega tutti i pezzi di cui sopra può essere trovato qui.

Avvio automatico dello script Python all'avvio

Per poter mettere il raspberry pi in una scatola e fargli eseguire il nostro codice ogni volta che lo colleghiamo all'alimentazione, dobbiamo assicurarci che il codice venga avviato automaticamente durante l'avvio. Per farlo utilizziamo uno strumento chiamato cron.

  1. Prima chiama lo strumento cron usando: sudo crontab -e
  2. I passaggi precedenti apriranno un file di configurazione, in cui aggiungiamo la seguente riga:

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

Passaggio 4: modellazione e stampa 3D

Modellazione e stampa 3D
Modellazione e stampa 3D
Modellazione e stampa 3D
Modellazione e stampa 3D

Il modello 3D di Plus è stato realizzato in Solidworks e salvato in formato. Stl. Quindi per la stampa 3D del modello, i file. Stl sono stati importati nel software Cura. Ogni lato del plus ha impiegato 2:30 ore per essere prodotto; quindi ogni Plus completo ha impiegato circa 5 ore per la stampa. E per i lati trasparenti, il plexiglass è stato tagliato al laser.

Passaggio 5: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Con la parte stampata in 3D, l'elettronica e il software a portata di mano, possiamo finalmente assemblare il prodotto finale.

  1. Abbiamo scoperto che le piastre superiore e inferiore stampate in 3D sono più trasparenti del previsto. Uno strato di foglio di alluminio ha risolto il problema della perdita di luce.
  2. Tuttavia, questi fogli sono conduttivi e possono causare cortocircuiti all'interno del nostro circuito non protetto. Quindi un altro strato di cartoncino bianco è incollato sopra.
  3. I segmenti diffusi in plexiglas sono incollati su una delle piastre laterali.
  4. Viene praticato un foro in uno dei pannelli laterali stampati in 3D. Questo è così che possiamo passare attraverso il cavo di alimentazione.
  5. Una volta inserito il cavo di alimentazione attraverso il foro, lo saldiamo sulla nostra scheda di prototipazione.
  6. Attacciamo il sensore al Raspberry Pi e poi lo colleghiamo al connettore.
  7. Attacchiamo i 2 pezzi insieme per ottenere il nostro prodotto finale.
  8. Opzionalmente puoi incollare i 2 pezzi per creare una connessione più permanente. Tuttavia, tieni presente che potrebbe essere difficile entrare nella scatola dopo che è stata incollata se desideri modificare il codice in un secondo momento.

Consigliato: