Inhoudsopgave:
- Stap 1: Ingrediënten
- Stap 2: Hardware
- Stap 3: Software
- Stap 4: Modelleren en 3D-printen
- Stap 5: Montage
- Stap 6: Laatste test
Video: TfCD - Plus: 7 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Plus is een minimale slimme lamp, die niet alleen mensen informeert over de weersomstandigheden, maar ook een plezierige ervaring voor gebruikers creëert door de veranderingen in de kleur van het licht door de plus te draaien. De vorm geeft de gebruiker de mogelijkheid om meerdere plus-modules te combineren of een enorme lamp te maken met veel plus-stukken die door vrienden zijn geplaatst. Dit verlichtingsproject maakt deel uit van de cursus Advanced Concept Design (ACD) aan de TU Delft en de technologie die is geïmplementeerd met behulp van TfCD-practicum als inspiratiebron.
Stap 1: Ingrediënten
1 Raspberry pi nul w
1 groef Adxl345 versnellingsmeter
4 Ws2812b LED
1 prototypebord
3D-geprinte en lasergesneden behuizingen
Stap 2: Hardware
LED's
De Neopixel LED's hebben 4 pinnen genaamd: +5V, GND, Data In en Data uit.
- Pin 4 van de Raspberry Pi is verbonden met de +5V van alle LED's
- Pin 6 van de Raspberry Pi is verbonden met de GND van alle LEDS
- Data In pin van de eerste LED is verbonden met pin 12 op de Raspberry Pi.
- De Data-out-pin van de eerste LED is verbonden met de Data-in van de tweede, enzovoort.
Bekijk het bedradingsschema voor een beter begrip.
Versnellingsmeter
De accelerometer heeft 4 pinnen genaamd: VCC, GND, SDA en SCL.
- Pin 1 van de Raspberry Pi is verbonden met VCC.
- Pin 3 van de Raspberry Pi is verbonden met SCL.
- Pin 5 van de Raspberry Pi is verbonden met SDA.
- Pin 9 van de Raspberry Pi is verbonden met GND.
Bouwen
- Voor het gemak kunnen de LED's op een prototypebord worden gesoldeerd. We hebben besloten om het bord in de vorm van een plus te knippen zodat het goed past in de 3D ontworpen behuizing.
- Nadat we de LED's op het bord hebben gesoldeerd, solderen we jumperdraden om de verbindingen tussen een 0,1"-headerverbinding en de LED's te maken. De header-connector wordt gebruikt om de Raspberry Pi los te koppelen en opnieuw te gebruiken voor een toekomstig project.
Stap 3: Software
Afbeelding Raspberry Pi-besturingssysteem
We moeten eerst de Raspberry Pi aan de praat krijgen. Hiervoor volgen we deze stappen:
- Download hier de nieuwste versie van Raspbian. Je kunt het rechtstreeks of via de torrents downloaden. Je hebt een beeldschrijver nodig om het gedownloade besturingssysteem naar de SD-kaart te schrijven (micro SD-kaart in het geval van Raspberry Pi B+-model en Raspberry Pi Zero).
- Dus download hier de "win32 disk imager". Steek de SD-kaart in de laptop/pc en voer de imagewriter uit. Eenmaal geopend, blader en selecteer je het gedownloade Raspbian-afbeeldingsbestand. Selecteer het juiste apparaat, dat wil zeggen het station dat de SD-kaart vertegenwoordigt. Als het geselecteerde station (of apparaat) verschilt van de SD-kaart, raakt het andere geselecteerde station beschadigd. Dus wees voorzichtig.
- Klik daarna op de knop "Schrijven" onderaan. Zie als voorbeeld de onderstaande afbeelding, waar de SD-kaart (of micro SD)-drive wordt weergegeven met de letter "G:\". Het besturingssysteem is nu klaar voor normaal gebruik. In deze tutorial gaan we de Raspberry Pi echter in de headless-modus gebruiken. Dit betekent dus zonder dat er een fysieke monitor en toetsenbord aan vast zit!
- Nadat u de SD-kaart hebt gebrand, mag u deze niet uit uw computer verwijderen! Gebruik een teksteditor om het config.txt-bestand op de SD-kaart te openen. Ga naar de onderkant en voeg dtoverlay=dwc2 toe als laatste regel:
- Sla het config.txt-bestand op als platte tekst en open vervolgens cmdline.txt. Na rootwait (het laatste woord op de eerste regel) voeg je een spatie toe en vervolgens modules-load=dwc2, g_ether.
- Verwijder nu de SD-kaart uit uw pc en plaats deze in de Raspberry Pi en sluit deze met een USB-kabel aan op uw pc. Zodra het besturingssysteem is opgestart, zou er een nieuw Ethernet Gadget-apparaat moeten worden ontdekt.
- U kunt ssh [email protected] gebruiken om verbinding te maken met het bord en het op afstand te bedienen. Ga hier voor meer gedetailleerde instructies over headless-bediening. Neopixel-stuurprogramma
De rpi_ws281x-bibliotheek is de sleutel die het gebruik van NeoPixels met de Raspberry Pi mogelijk maakt.
Eerst moeten we de tools installeren die nodig zijn om de bibliotheek te compileren. Voer in je Raspberry Pi uit: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Voer nu deze opdrachten uit om de bibliotheek te downloaden en te compileren:
git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Eindelijk, nadat de bibliotheek met succes is gecompileerd, kunnen we deze voor python installeren met:
cd python && sudo python setup.py install Nu komt de python-code die de LED's aanstuurt. De code is vrij eenvoudig met enkele opmerkingen om u te helpen. van neopixel import * # NeoPixel-configuraties LED_PIN = 18 # Raspberry Pi's GPIO-pin aangesloten op de pixels LED_BRIGHTNESS = 255 # Stel in op 0 voor de donkerste en 255 voor de helderste LED_COUNT = 4 # Aantal LED-pixelstrips = Adafruit_NeoPixel(LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Initialiseer de bibliotheek strip.begin() strip.setPixelColor(0, Color(255, 255, 255)) strip.show()
ADXL345-stuurprogramma
De accelerometersensor die we hebben geselecteerd heeft een I2C-interfae voor communicatie met de buitenwereld. Gelukkig voor ons heeft de Raspberry Pi ook een I2C-interface. We moeten het alleen inschakelen om het in onze eigen code te gebruiken.
Roep de Raspbian-configuratietool aan met sudo raspi-config. Eenmaal actief, ga naar Interfacing-opties, Geavanceerde opties en schakel vervolgens I2C in. Installeer de relevante python-modules zodat we de I2C-interface in python kunnen gebruiken:
sudo apt-get install python-smbus i2c-tools De volgende python-code stelt ons in staat om te communiceren met de accelerometersensor en de registerwaarden te lezen voor onze eigen doeleinden. import smbus import struct # Accelerometer configuraties bus = smbus. SMBus(1) adres = 0x53 gain = 3.9e-3 bus.write_byte_data(address, 45, 0x00) # Ga naar standby-modus bus.write_byte_data(address, 44, 0x06) # Bandbreedte 6.5Hz bus.write_byte_data(address, 45, 0x08) # Ga naar meetmodus # Read data from the sensor buf = bus.read_i2c_block_data(address, 50, 6) # Pak de data uit van int16_t naar python integer data = struct.unpack_from (">hhh", buffer(bytearray(buf)), 0)
x = float(data[0]) * gain
y = float(data[1]) * gain
z = float(data[2]) * gain
Bewegingsdetector
Een van de kenmerken van het licht dat we maken, is dat het beweging (of het ontbreken daarvan) kan detecteren om de interactieve modus (waar het licht verandert op basis van rotatie) en de weersvoorspellingsmodus (waar het licht verandert afhankelijk van de weersvoorspelling) in te gaan voor vandaag). De volgende code gebruikt de vorige functie om de versnellingswaarden voor de 3-assen te lezen en ons te waarschuwen wanneer er beweging is.
accel = getAcceleration()
dx = abs(prevAccel[0] - accel[0])
dy = abs(prevAccel[1] - accel[1])
dz = abs(prevAccel[2] - accel[2])
if dx > moveThreshold of dy To > moveThreshold of dz > moveThreshold:
print 'verhuisd'
verplaatst = True
anders:
verplaatst = niet waar
Weer-API
Om weersvoorspellingen te ontvangen, kunnen we Yahoo Weather gebruiken. Dit houdt in dat u moet praten met de Yahoo Weather Rest API, wat nogal complex kan zijn. Gelukkig voor ons is het harde deel al geregeld in de vorm van de weer-api-module voor python.
- Eerst moeten we deze module installeren met: sudo apt install python-pip && sudo pip install weather-api
- Bezoek de website van de auteur voor meer informatie over deze module.
Na installatie krijgt de volgende code de weersomstandigheden voor dit moment
van weerimport Weerweer = Weer()
location = weather.lookup_by_location('dublin')
conditie = locatie.conditie()
print(conditie.tekst())
Alles op een rijtje
De volledige code voor het project dat alle bovenstaande stukken verbindt, is hier te vinden.
Automatisch starten van het python-script tijdens het opstarten
Om de raspberry pi in een doos te kunnen stoppen en onze code elke keer dat we hem op de stroom aansluiten, te laten uitvoeren, moeten we ervoor zorgen dat de code automatisch wordt gestart tijdens het opstarten. Hiervoor gebruiken we een tool genaamd cron.
- Roep eerst de cron-tool aan met: sudo crontab -e
-
De vorige stappen openen een configuratiebestand, waarin we de volgende regel toevoegen:
@reboot python /home/pi/light.py &
Stap 4: Modelleren en 3D-printen
Het 3D-model van Plus is gemaakt in Solidworks en opgeslagen als. Stl-formaat. Vervolgens werd voor het 3D-printen van het model het. Stl-bestand geïmporteerd in de Cura-software. Elke kant van de plus kostte 2:30 uur om te produceren; dus elke volledige Plus kostte ongeveer 5 uur om af te drukken. En voor de transparante zijkanten werd plexiglas gelaserd.
Stap 5: Montage
Met het 3D-geprinte onderdeel, de elektronica en software bij de hand, kunnen we eindelijk het eindproduct in elkaar zetten.
- De 3D-geprinte boven- en onderplaten bleken transparanter dan verwacht. Een laag aluminiumfolie loste het lichtlekprobleem op.
- Deze platen zijn echter geleidend en kunnen kortsluiting veroorzaken in ons onbeschermde circuit. Dus nog een laag wit karton erop gelijmd.
- De diffuse plexiglas segmenten worden op een van de zijplaten gelijmd.
- Er wordt een gat geboord in een van de 3D-geprinte zijpanelen. Dit is zodat we door het netsnoer kunnen.
- Zodra het netsnoer door het gat is gestoken, solderen we het op ons prototypebord.
- We bevestigen de sensor op de raspberry pi en steken deze vervolgens in de connector.
- We hechten het 2 stuk aan elkaar om ons eindproduct te krijgen.
- Optioneel kunt u het 2 stuk lijmen om een meer permanente verbinding te maken. Houd er echter rekening mee dat het misschien moeilijk is om in de doos te komen nadat deze is dichtgelijmd als u de code later wilt wijzigen.
Aanbevolen:
HAIKU, wanneer mode en technologie samensmelten. TfCD-project. TU Delft.: 4 Stappen
HAIKU, wanneer mode en technologie samensmelten. TfCD-project. TU Delft.: Haiku is een concept ontwikkeld door Mucahit Aydin voor een TU Delft MSc cursus. Het belangrijkste principe van deze kimono is om het gevoel van omhelzing door iemand te vergroten. Om dit te doen, zal de kimono na aanraking een patroon onthullen. Hoe? Door uitvoering
Vooraf ingestelde waarden opslaan en herstellen met NFC (TfCD): 4 stappen
Vooraf ingestelde waarden opslaan en herstellen met NFC (TfCD): We willen testen hoe het werkt om een bepaalde waarde of instelling aan te passen en deze instelling later terug te roepen. Voor dit experiment hebben we een NFC-tag gebruikt om de waarde erop te lezen en vervolgens op te slaan. Later kan de tag opnieuw worden gescand en de waarde terugsturen om een cer
Draagbaar Custom Light Panel (Technology Exploration Course - TfCD - Tu Delft): 12 stappen (met afbeeldingen)
Draagbaar Custom Light Panel (Technology Exploration Course - TfCD - Tu Delft): In deze Instructable leer je hoe je je eigen verlichte afbeelding kunt maken die je kunt dragen! Dit wordt gedaan door EL-technologie te gebruiken die is bedekt met een vinylembleem en er banden aan vast te maken zodat je hem om je arm kunt dragen. U kunt ook delen van deze p
DIY Rotary Garden (TfCD): 12 stappen (met afbeeldingen)
DIY Rotary Garden (TfCD): Hallo! We hebben een kleine tutorial samengesteld over hoe je je eigen kleine versie van een roterende tuin kunt maken, die naar onze mening het tuinieren van de toekomst zou kunnen vertegenwoordigen. Met een verminderde hoeveelheid elektriciteit en ruimte, is deze technologie geschikt voor snelle
DeskMagic - Een app maken voor uw Aryzon AR-headset (TfCD): 22 stappen
DeskMagic - Een app maken voor uw Aryzon AR-headset (TfCD): In deze Instructable gaan we stap voor stap door het proces van het maken van een eenvoudige augmented reality (AR)-toepassing voor de Aryzon AR-headset. Er is geen codeer- of andere ervaring vereist. Hoewel de app vrij eenvoudig is, is het een leuke en gemakkelijke manier om