TfCD - Pluss: 7 trinn
TfCD - Pluss: 7 trinn
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.