Innholdsfortegnelse:

TfCD - Pluss: 7 trinn
TfCD - Pluss: 7 trinn

Video: TfCD - Pluss: 7 trinn

Video: TfCD - Pluss: 7 trinn
Video: TFCD Arduino face tracking device 2024, Juli
Anonim
Image
Image
Ingredienser
Ingredienser

Plus er et minimalt smart lys, som ikke bare varsler folk om værforholdene, men også skaper en hyggelig opplevelse for brukerne av endringene i lysfargen ved å rotere pluss. Formen gir brukeren muligheten til å kombinere flere plussmoduler eller lage en stor lampe med mange plussstykker plassert av venner. Dette belysningsprosjektet er en del av Advanced Concept Design (ACD) -kurset ved TU Delft universitet, og teknologien implementert ved å bruke TfCD praktisk som inspirasjonskilde.

Trinn 1: Ingredienser

Ingredienser
Ingredienser
Ingredienser
Ingredienser

1 Bringebær pi zero w

1 Groove Adxl345 akselerometer

4 Ws2812b LED

1 prototypebrett

3D-trykte og laserskårne skap

Trinn 2: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Lysdioder

Neopixel -lysdiodene har 4 pinner som heter: +5V, GND, Data In og Data out.

  1. Pin 4 av bringebær pi er koblet til +5V på alle lysdioder
  2. Pin 6 av bringebær pi er koblet til GND for alle lysdioder
  3. Data I pinnen til den første lysdioden er koblet til pinne 12 på bringebær -pi.
  4. Data out -pinnen til den første LED -en er koblet til Data in i den andre og så videre.

Ta en titt på koblingsskjemaet for en bedre forståelse.

Akselerometer

Akselerometeret har 4 pinner kalt: VCC, GND, SDA og SCL.

  1. Pin 1 av bringebær pi er koblet til VCC.
  2. Pin 3 av bringebær pi er koblet til SCL.
  3. Pin 5 av bringebær pi er koblet til SDA.
  4. Pin 9 av bringebær pi er koblet til GND.

Bygge

  1. For enkelhets skyld kan lysdiodene loddes på et prototypebrett. Vi har besluttet å kutte brettet i form av et pluss slik at det passer godt inn i 3D -designet etui.
  2. Når vi har loddet lysdiodene på brettet, lodder vi jumperkabler for å lage forbindelsene mellom en 0,1 "topptekst og LED-ene. Overskriftskontakten brukes til å la bringebær-pi kobles fra og brukes på nytt for et fremtidig prosjekt.

Trinn 3: Programvare

Programvare
Programvare

Raspberry Pi -operativsystembilde

Vi må først få Raspberry Pi i gang. For å gjøre dette følger vi disse trinnene:

  1. Last ned den siste versjonen av Raspbian herfra. Du kan laste den ned direkte eller via torrents. Du trenger en bildeskriver for å skrive det nedlastede operativsystemet til SD -kortet (micro SD -kort i tilfelle Raspberry Pi B+ -modell og Raspberry Pi Zero).
  2. Så last ned "win32 diskavbilderen" herfra. Sett inn SD -kortet i den bærbare datamaskinen og kjør bildeskriveren. Når den er åpen, bla gjennom og velg den nedlastede Raspbian -bildefilen. Velg riktig enhet, det vil si stasjonen som representerer SD -kortet. Hvis stasjonen (eller enheten) som er valgt er forskjellig fra SD -kortet, blir den andre valgte stasjonen ødelagt. Så vær forsiktig.
  3. Deretter klikker du på "Skriv" -knappen nederst. Som et eksempel, se bildet nedenfor, der SD -kort (eller micro SD) -stasjonen er representert med bokstaven "G: \" Operativsystemet er nå klart for normal bruk. I denne opplæringen skal vi imidlertid bruke Raspberry Pi i hodeløs modus. Dette betyr at uten en fysisk skjerm og tastatur festet til den!
  4. Etter å ha brent SD -kortet, må du ikke kaste det ut fra datamaskinen! Bruk et tekstredigeringsprogram til å åpne filen config.txt som er på SD -kortet. Gå til bunnen og legg til dtoverlay = dwc2 som siste linje:
  5. Lagre config.txt-filen som ren tekst, og åpne deretter cmdline.txt Etter rootwait (det siste ordet på første linje) legg til et mellomrom og deretter modules-load = dwc2, g_ether.
  6. Fjern nå SD -kortet fra PC -en og sett det inn i Raspberry Pi og koble det til PC -en med en USB -kabel. Når operativsystemet har startet opp, bør du se en ny Ethernet Gadget -enhet bli oppdaget.
  7. Du kan bruke ssh [email protected] til å koble til kortet og styre det eksternt. For mer detaljerte instruksjoner angående bruk av hodeløs bruk her. Neopixel Driver

Rpi_ws281x -biblioteket er nøkkelen som gjør det mulig å bruke NeoPixels med Raspberry Pi.

Først må vi installere verktøyene som trengs for å kompilere biblioteket. I din Raspberry Pi-kjøring: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Kjør nå disse kommandoene for å laste ned og kompilere biblioteket:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Til slutt, etter at biblioteket ble kompilert, kan vi installere det for python ved å bruke:

cd python && sudo python setup.py install Nå kommer pythonkoden som driver lysdiodene. Koden er ganske enkel med noen kommentarer for å hjelpe deg. fra neopikselimport * # NeoPixel -konfigurasjoner LED_PIN = 18 # Raspberry Pi's GPIO -pin koblet til pikslene LED_BRIGHTNESS = 255 # Sett til 0 for mørkeste og 255 for lyseste LED_COUNT = 4 # Antall LED -piksler stripe = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Initialize the library strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

ADXL345 driver

Akselerometersensoren som vi har valgt har en I2C -interfae for kommunikasjon med omverdenen. Heldigvis for oss har Raspberry Pi også I2C -grensesnitt. Vi trenger bare å la den bruke den i vår egen kode.

Ring til Raspbian-konfigurasjonsverktøyet ved hjelp av sudo raspi-config. Når du har kjørt, går du til Grensesnittalternativer, Avanserte alternativer og aktiverer deretter I2C. Installere de relevante python -modulene slik at vi kan bruke I2C -grensesnittet i python:

sudo apt-get install python-smbus i2c-tools Følgende python-kode lar oss kommunisere med akselerometersensoren og lese dens registerverdier for våre egne formål. import smbus import struct # Akselerometer konfigurasjoner buss = smbus. SMBus (1) adresse = 0x53 gain = 3.9e-3 buss.write_byte_data (adresse, 45, 0x00) # Gå til standby-modus buss.write_byte_data (adresse, 44, 0x06) # Båndbredde 6,5 Hz bus.write_byte_data (adresse, 45, 0x08) # Gå til målemodus # Les data fra sensoren buf = bus.read_i2c_block_data (adresse, 50, 6) # Pakk ut dataene fra int16_t til python -heltalldata = struct.unpack_from ("> hhh", buffer (bytearray (buf)), 0)

x = float (data [0]) * gevinst

y = float (data [1]) * gevinst

z = float (data [2]) * gevinst

Bevegelsesdetektor

En av funksjonene til lyset vi lager, er at det kan oppdage bevegelse (eller mangel på) for å gå inn i interaktiv modus (hvor lyset endres basert på rotasjon) og værmeldingsmodus (hvor lyset endres avhengig av værmeldingen for i dag). Følgende kode bruker den forrige funksjonen til å lese akselerasjonsverdiene for 3-aksene og varsle oss når det er bevegelse.

accel = getAcceleration ()

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

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

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

hvis dx> moveThreshold eller dy Til> moveThreshold eller dz> moveThreshold:

trykk 'flyttet'

flyttet = Sant

ellers:

flyttet = Feil

Vær -API

For å motta værmeldinger kan vi bruke Yahoo Weather. Dette innebærer å snakke med Yahoo Weather Rest API som kan være ganske komplisert. Heldigvis for oss er den harde delen allerede ivaretatt i form av weather-api-modulen for python.

  1. Først må vi installere denne modulen ved å bruke: sudo apt install python-pip && sudo pip install weather-api
  2. Besøk forfatterens nettsted for mer informasjon om denne modulen.

Når du har installert, får følgende kode værforholdene for dette øyeblikket

fra værimport Weatherweather = Vær ()

location = weather.lookup_by_location ('dublin')

condition = location.condition ()

print (condition.text ())

Sette alt sammen

Hele koden for prosjektet som forbinder alle de ovennevnte delene finner du her.

Start automatisk python -skriptet ved oppstart

For å kunne sette bringebær -pi i en boks og la den kjøre koden vår hver gang vi kobler den til strømmen, må vi sørge for at koden starter automatisk under oppstart. For å gjøre dette bruker vi et verktøy som kalles cron.

  1. Ring først cron -verktøyet ved å bruke: sudo crontab -e
  2. De foregående trinnene åpner en konfigurasjonsfil, der vi legger til følgende linje:

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

Trinn 4: Modellering og 3D -utskrift

Modellering og 3D -utskrift
Modellering og 3D -utskrift
Modellering og 3D -utskrift
Modellering og 3D -utskrift

3D -modellen til Plus er laget i Solidworks, og lagret som. Stl -format. For 3D -utskrift ble modellen. Stl -fil importert i Cura -programvaren. Hver side av plusset tok 2:30 timer å produsere; så hver full pluss tok omtrent 5 timer å skrive ut. Og for de gjennomsiktige sidene ble plexiglass laserskåret.

Trinn 5: Montering

montering
montering
montering
montering
montering
montering
montering
montering

Med den 3D -trykte delen, elektronikken og programvaren for hånden, kan vi endelig sette sammen det endelige produktet.

  1. De 3D -trykte topp- og bunnplatene, vi fant å være mer gjennomsiktige enn forventet. Et lag aluminiumsfolie løste problemet med lett lekkasje.
  2. Disse arkene er imidlertid ledende og kan forårsake shorts i vår ubeskyttede krets. Så et annet lag hvitt kartong er limt på toppen.
  3. De diffuse plexiglas -segmentene limes til en av sideplatene.
  4. Det bores et hull i et av sidene i 3D -trykte paneler. Dette er slik at vi kan passere gjennom strømledningen.
  5. Når strømledningen er satt gjennom hullet, lodder vi den på prototypebrettet.
  6. Vi fester sensoren til bringebær -pi og kobler den deretter til kontakten.
  7. Vi fester det to stykket sammen for å få vårt sluttprodukt.
  8. Eventuelt kan du lime det to stykket for å få en mer permanent tilkobling. Vær imidlertid oppmerksom på at det kanskje er vanskelig å komme inn i esken etter at den er limt fast hvis du vil endre koden senere.

Anbefalt: