Innehållsförteckning:

TfCD - Plus: 7 steg
TfCD - Plus: 7 steg

Video: TfCD - Plus: 7 steg

Video: TfCD - Plus: 7 steg
Video: TFCD Arduino face tracking device 2024, November
Anonim
Image
Image
Ingredienser
Ingredienser

Plus är ett minimalt smart ljus, som inte bara meddelar människor om väderförhållandet, utan också skapar en trevlig upplevelse för användarna genom de förändringar som görs i ljusets färg genom att rotera pluset. Dess form ger användaren möjlighet att kombinera flera plusmoduler eller skapa en enorm lampa med massor av plusbitar placerade av vänner. Detta belysningsprojekt är en del av Advanced Concept Design (ACD) -kursen vid TU Delft universitet och tekniken implementerad genom att använda TfCD praktisk som inspirationskälla.

Steg 1: Ingredienser

Ingredienser
Ingredienser
Ingredienser
Ingredienser

1 hallon pi zero w

1 spår Adxl345 accelerometer

4 Ws2812b LED

1 prototyper

3D-tryckta och laserskurna kapslingar

Steg 2: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

Lysdioder

Neopixels lysdioder har 4 stift som heter: +5V, GND, Data In och Data out.

  1. Pin 4 på hallon pi är ansluten till +5V på alla lysdioder
  2. Pin 6 på hallon pi är ansluten till GND för alla lysdioder
  3. Data I stift på den första lysdioden är ansluten till stift 12 på hallon pi.
  4. Data ut -stiftet på den första lysdioden är ansluten till data in i den andra och så vidare.

Ta en titt på kopplingsschemat för en bättre förståelse.

Accelerometer

Acceleratorn har 4 stift som heter: VCC, GND, SDA och SCL.

  1. Pin 1 på hallon pi är ansluten till VCC.
  2. Pin 3 på hallon pi är ansluten till SCL.
  3. Pin 5 på hallon pi är ansluten till SDA.
  4. Pin 9 på hallon pi är ansluten till GND.

Bygga

  1. För enkelhets skull kan lysdioderna lödas på en prototypplatta. Vi har beslutat att klippa brädet i form av ett plus så att det passar bra in i det 3D -designade fodralet.
  2. När vi väl har lödt lysdioderna på brädet, lödar vi bygelkablar för att göra anslutningarna mellan en 0,1 "huvudanslutning och lysdioderna. Huvudkontakten används för att låta hallon-pi kopplas bort och återanvändas för ett framtida projekt.

Steg 3: Programvara

programvara
programvara

Raspberry Pi -operativsystembild

Vi måste först få Raspberry Pi igång. För att göra detta följer vi dessa steg:

  1. Ladda ner den senaste versionen av Raspbian härifrån. Du kan ladda ner det direkt eller via torrenterna. Du kommer att behöva en bildskrivare för att skriva ner det nedladdade operativsystemet till SD -kortet (micro SD -kort för Raspberry Pi B+ -modell och Raspberry Pi Zero).
  2. Så ladda ner "win32 disk imager" härifrån. Sätt in SD -kortet i den bärbara datorn/datorn och kör bildskrivaren. När den är öppen bläddrar du och väljer den nedladdade Raspbian -bildfilen. Välj rätt enhet, det vill säga enheten som representerar SD -kortet. Om den valda enheten (eller enheten) skiljer sig från SD -kortet blir den andra valda enheten skadad. Så var försiktig.
  3. Klicka sedan på "Skriv" -knappen längst ner. Som ett exempel, se bilden nedan, där SD -kort (eller micro SD) -enhet representeras av bokstaven "G: \" OS är nu redo för normal användning. Men i denna handledning kommer vi att använda Raspberry Pi i huvudlöst läge. Detta innebär att utan en fysisk bildskärm och tangentbord är ansluten till den!
  4. När du har bränt SD -kortet ska du inte mata ut det från datorn! Använd en textredigerare för att öppna filen config.txt som finns på SD -kortet. Gå till botten och lägg till dtoverlay = dwc2 som sista raden:
  5. Spara config.txt-filen som vanlig text och öppna sedan cmdline.txt Efter rootwait (det sista ordet på första raden) lägg till ett mellanslag och sedan modules-load = dwc2, g_ether.
  6. Ta nu bort SD -kortet från din dator och sätt in det i Raspberry Pi och anslut det till din dator med en USB -kabel. När operativsystemet har startat bör du se en ny Ethernet -gadget -enhet upptäckas.
  7. Du kan använda ssh [email protected] för att ansluta till kortet och fjärrstyra det. För mer detaljerade instruktioner om huvudlös användning gå här. Neopixel Driver

Rpi_ws281x -biblioteket är nyckeln som gör det möjligt att använda NeoPixels med Raspberry Pi.

Först måste vi installera de verktyg som behövs för att sammanställa biblioteket. I din Raspberry Pi-körning: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Kör nu dessa kommandon för att ladda ner och kompilera biblioteket:

git -klon https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Slutligen, efter att biblioteket har sammanställts, kan vi installera det för python med:

cd python && sudo python setup.py install Nu kommer pythonkoden som driver lysdioderna. Koden är ganska enkel med några kommentarer för att hjälpa dig. från neopixelimport * # NeoPixel -konfigurationer LED_PIN = 18 # Raspberry Pi: s GPIO -pin ansluten till pixlarna LED_BRIGHTNESS = 255 # Ställ in på 0 för mörkaste och 255 för ljusaste LED_COUNT = 4 # Antal LED -pixlar strip = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, Falskt, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Initiera biblioteksremsan. Börjar () strip.setPixelColor (0, färg (255, 255, 255)) strip.show ()

ADXL345 drivrutinen

Accelerometersensorn som vi har valt har en I2C -interfa för kommunikation med omvärlden. Lyckligtvis för oss har Raspberry Pi också I2C -gränssnitt. Vi behöver bara aktivera den för att använda den i vår egen kod.

Ring Raspbian-konfigurationsverktyget med sudo raspi-config. När du har kört går du till gränssnittsalternativ, avancerade alternativ och aktiverar sedan I2C. Installera relevanta python -moduler så att vi kan använda I2C -gränssnittet i python:

sudo apt-get install python-smbus i2c-tools Följande pythonkod låter oss kommunicera med accelerometersensorn och läsa dess registervärden för våra egna ändamål. import smbus import struct # Accelerometerkonfigurationer buss = smbus. SMBus (1) adress = 0x53 gain = 3.9e-3 buss.write_byte_data (adress, 45, 0x00) # Gå till standbyläge bus.write_byte_data (adress, 44, 0x06) # Bandbredd 6,5 Hz bus.write_byte_data (adress, 45, 0x08) # Gå till mätläge # Läs data från sensorn buf = bus.read_i2c_block_data (adress, 50, 6) # Packa upp data från int16_t till python -heltal = struct.unpack_from ("> hhh", buffert (bytearray (buf)), 0)

x = float (data [0]) * förstärkning

y = float (data [1]) * förstärkning

z = float (data [2]) * förstärkning

Rörelsedetektor

En av funktionerna i ljuset vi gör är att det kan upptäcka rörelse (eller saknas där) för att gå in i interaktivt läge (där ljuset ändras baserat på rotation) och väderprognosläge (där ljuset ändras beroende på väderprognosen för idag). Följande kod använder den tidigare funktionen för att läsa accelerationsvärdena för 3-axlarna och varna oss när det finns rörelse.

accel = getAcceleration ()

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

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

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

om dx> moveThreshold eller dy To> moveThreshold eller dz> moveThreshold:

tryck 'flyttad'

flyttad = Sant

annan:

flyttad = falskt

Väder -API

För att få väderprognoser kan vi använda Yahoo Weather. Detta innebär att man pratar med Yahoo Weather Rest API som kan vara ganska komplext. Lyckligtvis för oss är den hårda delen redan omhändertagen i form av väder-api-modulen för python.

  1. Först måste vi installera den här modulen med: sudo apt install python-pip && sudo pip install weather-api
  2. Besök författarens webbplats för mer information om denna modul.

Efter installationen får följande kod väderförhållandet för detta ögonblick

från väderimport Weatherweather = Weather ()

location = weather.lookup_by_location ('dublin')

skick = location.condition ()

print (condition.text ())

Få alltid att falla på plats

Hela koden för projektet som förbinder alla ovanstående delar hittar du här.

Startar automatiskt python -skriptet vid start

För att kunna sätta hallon pi i en låda och få den att köra vår kod varje gång vi ansluter den till strömmen måste vi se till att koden startas automatiskt under start. För att göra detta använder vi ett verktyg som kallas cron.

  1. Ring först cron -verktyget med: sudo crontab -e
  2. De föregående stegen öppnar en konfigurationsfil där vi lägger till följande rad:

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

Steg 4: Modellering och 3D -utskrift

Modellering och 3D -utskrift
Modellering och 3D -utskrift
Modellering och 3D -utskrift
Modellering och 3D -utskrift

3D -modellen av Plus har gjorts i Solidworks och sparats som. Stl -format. Sedan för 3D -utskrift importerades modellen.. Stl -fil i Cura -programvaran. Varje sida av pluset tog 2:30 timmar att producera; så varje full Plus tog cirka 5 timmar att skriva ut. Och för de transparenta sidorna laserskars plexiglas.

Steg 5: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Med den 3D -tryckta delen, elektroniken och mjukvaran till hands, kan vi äntligen montera slutprodukten.

  1. De 3D -tryckta topp- och bottenplattorna, vi fann att de var mer transparenta än förväntat. Ett lager aluminiumfolie löste problemet med lätt läckage.
  2. Dessa ark är dock ledande och kan orsaka shorts i vår oskyddade krets. Så ett annat lager vitt kartong är limmat ovanpå.
  3. De diffusa plexiglasegmenten limmas på en av sidoplåtarna.
  4. Ett hål borras i en av de 3D -tryckta panelerna. Detta för att vi ska kunna passera genom nätsladden.
  5. När strömkabeln är monterad genom hålet, lödder vi den på vår prototypplatta.
  6. Vi fäster sensorn på hallon pi och ansluter den sedan till kontakten.
  7. Vi fäster de två delarna tillsammans för att få vår slutprodukt.
  8. Alternativt kan du limma de två bitarna för att skapa en mer permanent anslutning. Var dock medveten om att det kanske är svårt att komma in i rutan efter att den har limmats om du vill ändra koden senare.

Rekommenderad: