Inhaltsverzeichnis:

TfCD - Plus - Gunook
TfCD - Plus - Gunook

Video: TfCD - Plus - Gunook

Video: TfCD - Plus - Gunook
Video: TFCD Photographic Session 2024, Juli
Anonim
Image
Image
Zutaten
Zutaten

Plus ist ein minimalistisches intelligentes Licht, das nicht nur über die Wetterbedingungen informiert, sondern durch die Änderung der Lichtfarbe durch Drehen des Plus auch ein angenehmes Erlebnis für den Benutzer schafft. Seine Form gibt dem Benutzer die Möglichkeit, mehrere Plus-Module zu kombinieren oder eine riesige Lampe mit vielen Plus-Teilen zu erstellen, die von Freunden platziert wurden. Dieses Beleuchtungsprojekt ist Teil des Advanced Concept Design (ACD)-Kurses an der TU Delft und der Technologie, die unter Verwendung von TfCD praktisch als Inspirationsquelle implementiert wurde.

Schritt 1: Zutaten

Zutaten
Zutaten
Zutaten
Zutaten

1 Raspberry Pi Null w

1 Groove Adxl345 Beschleunigungsmesser

4 Ws2812b-LED

1 Prototyping-Platine

3D-gedruckte und lasergeschnittene Gehäuse

Schritt 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

LEDs

Die Neopixel-LEDs haben 4 Pins mit den Namen: +5V, GND, Data In und Data Out.

  1. Pin 4 des Himbeer-Pi ist mit den +5V aller LEDs verbunden
  2. Pin 6 des Himbeer-Pi ist mit dem GND aller LEDs verbunden
  3. Der Data In-Pin der ersten LED ist mit Pin 12 auf dem Himbeer-Pi verbunden.
  4. Der Data-Out-Pin der ersten LED ist mit dem Data-In der zweiten verbunden und so weiter.

Bitte werfen Sie zum besseren Verständnis einen Blick auf den Schaltplan.

Beschleunigungsmesser

Der Beschleunigungsmesser hat 4 Pins mit den Namen: VCC, GND, SDA und SCL.

  1. Pin 1 des Himbeer-Pi ist mit VCC verbunden.
  2. Pin 3 des Himbeer-Pi ist mit SCL verbunden.
  3. Pin 5 des Himbeer-Pi ist mit SDA verbunden.
  4. Pin 9 des Himbeer-Pi ist mit GND verbunden.

Bauen

  1. Der Einfachheit halber können die LEDs auf eine Prototyping-Platine gelötet werden. Wir haben uns entschieden, das Board in die Form eines Plus zu schneiden, damit es gut in das 3D-designte Gehäuse passt.
  2. Sobald wir die LEDs auf der Platine gelötet haben, löten wir Überbrückungsdrähte, um die Verbindungen zwischen einem 0,1-Zoll-Header und den LEDs herzustellen. Der Header-Anschluss wird verwendet, damit der Himbeer-Pi getrennt und für ein zukünftiges Projekt wiederverwendet werden kann.

Schritt 3: Software

Software
Software

Image des Raspberry Pi-Betriebssystems

Zuerst müssen wir den Raspberry Pi zum Laufen bringen. Dazu befolgen wir diese Schritte:

  1. Laden Sie hier die neueste Raspbian-Version herunter. Sie können es direkt oder über die Torrents herunterladen. Sie benötigen einen Image Writer, um das heruntergeladene Betriebssystem auf die SD-Karte zu schreiben (Micro-SD-Karte im Falle des Raspberry Pi B+-Modells und Raspberry Pi Zero).
  2. Laden Sie also den "win32 Disk Imager" von hier herunter. Legen Sie die SD-Karte in den Laptop/PC ein und führen Sie den Bildschreiber aus. Nach dem Öffnen durchsuchen und wählen Sie die heruntergeladene Raspbian-Bilddatei aus. Wählen Sie das richtige Gerät aus, d. h. das Laufwerk, das die SD-Karte repräsentiert. Wenn sich das ausgewählte Laufwerk (oder Gerät) von der SD-Karte unterscheidet, wird das andere ausgewählte Laufwerk beschädigt. Also sei vorsichtig.
  3. Klicken Sie anschließend unten auf die Schaltfläche "Schreiben". Als Beispiel sehen Sie sich die Abbildung unten an, in der das SD-Karten- (oder Micro-SD-) Laufwerk durch den Buchstaben "G:\" dargestellt wird. Das Betriebssystem ist jetzt für den normalen Gebrauch bereit. In diesem Tutorial werden wir den Raspberry Pi jedoch im Headless-Modus verwenden. Das heißt, ohne einen physischen Monitor und eine daran angeschlossene Tastatur!
  4. Werfen Sie die SD-Karte nach dem Brennen nicht aus Ihrem Computer! Verwenden Sie einen Texteditor, um die Datei config.txt zu öffnen, die sich auf der SD-Karte befindet. Gehen Sie nach unten und fügen Sie dtoverlay=dwc2als letzte Zeile hinzu:
  5. Speichern Sie die Datei config.txt als Klartext und öffnen Sie dann cmdline.txt Nach rootwait (das letzte Wort in der ersten Zeile) fügen Sie ein Leerzeichen und dann modules-load=dwc2, g_ether hinzu.
  6. Entfernen Sie nun die SD-Karte aus Ihrem PC und stecken Sie diese in den Raspberry Pi ein und verbinden Sie ihn über ein USB-Kabel mit Ihrem PC. Sobald das Betriebssystem hochgefahren ist, sollten Sie sehen, dass ein neues Ethernet-Gadget-Gerät erkannt wird.
  7. Sie können ssh [email protected] verwenden, um eine Verbindung zum Board herzustellen und es aus der Ferne zu steuern. Detailliertere Anweisungen zum Headless-Betrieb finden Sie hier. Neopixel-Treiber

Die Bibliothek rpi_ws281x ist der Schlüssel, der die Verwendung von NeoPixels mit dem Raspberry Pi ermöglicht.

Zuerst müssen wir die Tools installieren, die zum Kompilieren der Bibliothek erforderlich sind. Führen Sie auf Ihrem Raspberry Pi aus: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Führen Sie nun diese Befehle aus, um die Bibliothek herunterzuladen und zu kompilieren:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Schließlich, nachdem die Bibliothek erfolgreich kompiliert wurde, können wir sie für Python installieren mit:

cd python && sudo python setup.py install Jetzt kommt der Python-Code, der die LEDs antreibt. Der Code ist ziemlich einfach mit einigen Kommentaren, die Ihnen helfen. aus Neopixel-Import * # NeoPixel-Konfigurationen LED_PIN = 18 # GPIO-Pin des Raspberry Pi mit den Pixeln verbunden LED_BRIGHTNESS = 255 # Auf 0 für dunkelste und 255 für hellste setzen LED_COUNT = 4 # Anzahl der LED-Pixelstreifen = Adafruit_NeoPixel(LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Initialisieren der Bibliothek strip.begin() strip.setPixelColor(0, Color(255, 255, 255)) strip.show()

ADXL345-Treiber

Der von uns ausgewählte Beschleunigungssensor verfügt über eine I2C-Schnittstelle zur Kommunikation mit der Außenwelt. Zum Glück für uns hat der Raspberry Pi auch eine I2C-Schnittstelle. Wir müssen es nur aktivieren, um es in unserem eigenen Code zu verwenden.

Rufen Sie das Raspbian-Konfigurationstool mit sudo raspi-config auf. Gehen Sie nach dem Ausführen zu Schnittstellenoptionen, Erweiterte Optionen und aktivieren Sie dann I2C. Installieren Sie die relevanten Python-Module, damit wir die I2C-Schnittstelle in Python verwenden können:

sudo apt-get install python-smbus i2c-tools Der folgende Python-Code ermöglicht es uns, mit dem Beschleunigungssensor zu kommunizieren und seine Registerwerte für unsere eigenen Zwecke auszulesen. import smbus import struct # Beschleunigungsmesser-Konfigurationen bus = smbus. SMBus(1) address = 0x53 gain = 3.9e-3 bus.write_byte_data(address, 45, 0x00) # Gehe in den Standby-Modus bus.write_byte_data(address, 44, 0x06) # Bandbreite 6.5Hz bus.write_byte_data(address, 45, 0x08) # Gehe in den Messmodus # Lese Daten vom Sensor buf = bus.read_i2c_block_data(address, 50, 6) # Entpacke die Daten von int16_t nach Python Integer data = struct.unpack_from (">hhh", Puffer(bytearray(buf)), 0)

x = float(data[0]) * Verstärkung

y = float(data[1]) * Gain

z = float(data[2]) * Gain

Bewegungsmelder

Eines der Merkmale des Lichts, das wir herstellen, ist, dass es Bewegungen (oder deren Fehlen) erkennen kann, um in den interaktiven Modus (in dem sich das Licht aufgrund der Drehung ändert) und in den Wettervorhersagemodus (in dem sich das Licht je nach Wettervorhersage ändert) zu wechseln für heute). Der folgende Code verwendet die vorherige Funktion, um die Beschleunigungswerte für die 3-Achsen zu lesen und uns bei Bewegung zu warnen.

accel = getAcceleration()

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

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

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

if dx > moveThreshold oder dy To > moveThreshold oder dz > moveThreshold:

'umgezogen' drucken

verschoben = wahr

anders:

verschoben = Falsch

Wetter-API

Um Wettervorhersagen zu erhalten, können wir Yahoo Weather verwenden. Dies beinhaltet die Kommunikation mit der Yahoo Weather Rest API, die ziemlich komplex sein kann. Zum Glück für uns ist der schwierige Teil bereits in Form des Wetter-API-Moduls für Python erledigt.

  1. Zuerst müssen wir dieses Modul installieren mit: sudo apt install python-pip && sudo pip install weather-api
  2. Weitere Informationen zu diesem Modul finden Sie auf der Website des Autors.

Nach der Installation erhält der folgende Code die Wetterbedingungen für diesen Moment

aus Wetterimport Weatherweather = Weather()

location = weather.lookup_by_location('dublin')

Bedingung = Standort. Bedingung()

print(condition.text())

Alles zusammenfügen

Den gesamten Code für das Projekt, das alle oben genannten Teile verbindet, finden Sie hier.

Automatisches Starten des Python-Skripts beim Booten

Um den Himbeer-Pi in eine Box stecken zu können und ihn jedes Mal, wenn wir ihn an die Stromversorgung anschließen, unseren Code ausführen zu lassen, müssen wir sicherstellen, dass der Code beim Booten automatisch gestartet wird. Dazu verwenden wir ein Tool namens cron.

  1. Rufen Sie zuerst das Cron-Tool auf mit: sudo crontab -e
  2. Die vorherigen Schritte öffnen eine Konfigurationsdatei, in der wir die folgende Zeile hinzufügen:

    @python neu starten /home/pi/light.py &

Schritt 4: Modellierung und 3D-Druck

Modellierung und 3D-Druck
Modellierung und 3D-Druck
Modellierung und 3D-Druck
Modellierung und 3D-Druck

Das 3D-Modell von Plus wurde in Solidworks erstellt und im. STl-Format gespeichert. Dann wurden für den 3D-Druck das Modell, die.stl-Datei in die Cura-Software importiert. Die Produktion jeder Seite des Plus dauerte 2:30 Stunden; so dauerte es etwa 5 Stunden, um jedes volle Plus zu drucken. Und für die transparenten Seiten wurde Plexiglas lasergeschnitten.

Schritt 5: Montage

Montage
Montage
Montage
Montage
Montage
Montage
Montage
Montage

Mit dem 3D-gedruckten Teil, der vorhandenen Elektronik und Software können wir schließlich das Endprodukt zusammenbauen.

  1. Die 3D-gedruckten oberen und unteren Platten fanden wir transparenter als erwartet. Eine Schicht Aluminiumfolie löste das Problem des Lichtverlusts.
  2. Diese Platten sind jedoch leitfähig und können Kurzschlüsse in unserem ungeschützten Stromkreis verursachen. Dazu wird eine weitere Lage weißer Karton aufgeklebt.
  3. Die diffusen Plexiglas-Segmente werden auf eine der Seitenplatten geklebt.
  4. In eine der seitlichen 3D-gedruckten Platten wird ein Loch gebohrt. Dies ist so, dass wir das Netzkabel passieren können.
  5. Sobald das Netzkabel durch das Loch gesteckt ist, löten wir es auf unser Prototyping-Board.
  6. Wir befestigen den Sensor am Himbeer-Pi und stecken ihn dann in den Anschluss.
  7. Wir befestigen das 2 Stück zusammen, um unser Endprodukt zu erhalten.
  8. Optional können Sie die 2 Stück kleben, um eine dauerhaftere Verbindung herzustellen. Beachten Sie jedoch, dass es nach dem Zukleben schwierig sein kann, in die Box zu gelangen, wenn Sie den Code später ändern möchten.

Empfohlen: