Inhaltsverzeichnis:

Azimutale Projektion 3D-Kartendekoration X Volksmusik-Puzzlespiel - Arduino - Gunook
Azimutale Projektion 3D-Kartendekoration X Volksmusik-Puzzlespiel - Arduino - Gunook

Video: Azimutale Projektion 3D-Kartendekoration X Volksmusik-Puzzlespiel - Arduino - Gunook

Video: Azimutale Projektion 3D-Kartendekoration X Volksmusik-Puzzlespiel - Arduino - Gunook
Video: Introduction to 3 Dimensional vectors #3Dvectors #3D #vectors 2024, Juli
Anonim
Image
Image
Gestalten Sie das Board
Gestalten Sie das Board

EINLEITUNG

Auf der folgenden Seite erfahren Sie, wie Sie ein Arduino-Projekt erstellen, das zwei Hauptfunktionen hat - schlichte Dekoration mit Beleuchtung und Volksmusik-Puzzlespiel, das die Bereiche Geographie, Geometrie, Karten, Vereinten Nationen und Musik in einem vereint. Aufbauend auf der Struktur von Sechsecken bildet das Gerät die Weltkarte in der azimutalen äquidistanten Projektion ab, der Form der Kartenprojektion, die von den Vereinten Nationen (und ihrem Symbol) verwendet wird.

Beim Aktivieren des Dekorationsmodus leuchten die Kontinente der Karte in verschiedenen Farben, die durch zufällige Kombinationen von RGB-Werten durch die Verwendung von RGB-LEDs bestimmt werden.

Der Spielmodus hingegen erfordert, dass der Benutzer den Ursprung von Volksmusikliedern erkennt (ausgewählt durch zufällige Generierung von Zahlen von 1 bis 20) und das Kontinentalbrett seiner Antwort an die entsprechende Position auf dem Hauptholzbrett innerhalb eines Sets legt Zeit (voreingestellt für 1 Minute).

_

LIEFERUNGEN

Tatsächliche Materialien

  • 5mm RGB-LEDs *20
  • Drähte
  • Widerstände *9
  • Arduino-Board * 1 (jeder Typ)
  • Steckbretter *3
  • Tasten *7
  • LCD-Anzeigetafel I2C *1
  • Karton (13*9*5,7 Zoll; 33*23*14,5 cm)
  • Holzbrett (37,5*29*0,8 cm)
  • Acrylplatten (transparent * 2, halbtransparent *1)
  • Tragbares Ladegerät * 1

Werkzeuge:

  • Klinge * 1
  • UV-härtende Klebstoffe *1
  • Doppelseitiges Klebeband * 1 Rolle
  • Heißklebepistole * 1

Maschinen:

Laser-Schneide-Maschine

Software:

  • Adobe Illustrator
  • Adobe Photoshop
  • Nashorn 3D

Schritt 1: Entwerfen Sie das Board

Sie können die angehängte Datei direkt herunterladen oder die folgenden Schritte ausführen.

Umreißen der Karte

  1. Laden Sie eine Kartenskizze von Google herunter

    1. Google "Logo der Vereinten Nationen"
    2. Wählen Sie "Werkzeuge - Größe - Groß"
    3. Laden Sie Ihr Lieblingsbild herunter (das von diesem Projekt verwendete: Link) *Versuchen Sie nicht, diejenigen mit komplizierten Linien auszuwählen, die sich mit den kontinentalen Ländern überschneiden*
  2. Übertragen Sie die heruntergeladene Karte in die Druckversion

    1. Färben Sie die unerwünschten Bereiche in Weiß mit der Pinselfunktion in Adobe Photoshop
    2. Exportieren Sie die Datei (JPEG)
    3. Importieren Sie die Datei in Adobe Illustrator und verwenden Sie die Funktion "Bildverfolgung", um die Karte zu verfolgen
    4. Exportieren Sie die Datei (dxf)

Hinzufügen des Hexagon-Hintergrunds

  1. Importieren Sie die dxf-Datei in Rhino
  2. Wählen Sie die Funktion "Polygon" und geben Sie "6" für die Option "NumSides" ein
  3. Geben Sie "3.5" für den Radiuswert ein
  4. Zeichne 28 gleich große Sechsecke
  5. Exportieren Sie die Datei in 3dm

Schritt 2: Laserschneiden

Image
Image
Laser schneiden
Laser schneiden
Laser schneiden
Laser schneiden
Laser schneiden
Laser schneiden
  1. Importieren Sie die zuvor fertiggestellte Datei in xxx.
  2. Drucken Sie mit der Laserschneidmaschine den Hauptkörper auf der Holzplatte und die Kontinente auf den Acrylplatten (2 transparent und 1 halbtransparent) aus (Videos sind oben bereitgestellt)

Schritt 3: Bauen Sie das Gerät auf

Baue das Gerät
Baue das Gerät
Baue das Gerät
Baue das Gerät
Baue das Gerät
Baue das Gerät

Platten nach dem Laserschneiden

  • Acryl Kontinente

    1. Verwenden Sie die UV-härtbaren Klebstoffe, um die drei Bretter jedes Kontinents zusammenzukleben (mit der halbtransparenten als Mittelschicht)
    2. Verwenden Sie das UV-Licht, um auf die geklebten Bereiche zu leuchten, damit die Klebstoffe aushärten können
  • Fundament aus Holzbrettern

    1. Entfernen Sie manuell die kleinen Landregionen, die auf dem Hauptholzbrett stecken
    2. *Wenn ein Teil der Holzplatte gebrochen ist, verwenden Sie die UV-härtbaren Klebstoffe, um sie zurückzukleben*

Aufbau der Basis (unteres Fundament des gesamten Geräts)

  1. Finden Sie einen Karton in ausreichender Größe mit Abmessungen von bis zu 13 * 9 * 5,7 Zoll (33 * 23 * 14,5 cm)
  2. Verwenden Sie das Holzbrett als Referenzmodell, um die kontinentalen Teile auf die Oberseite der Box zu verfolgen
  3. Ziehen Sie den unteren Teil der Schaltflächen auf die Oberseite der Box, wobei jede Schaltfläche innerhalb der nachgezeichneten kontinentalen Teile zentriert ist
  4. Verwenden Sie eine Klinge, um die Knopfteile abzuschneiden, indem Sie den Spuren folgen
  5. Verwenden Sie innerhalb der nachgezeichneten kontinentalen Teile eine Klinge, um kurze Segmente um den Knopf abzuschneiden
  6. Ziehen Sie zwei weitere untere Teile der Schaltfläche auf die rechte Seite der Box (versuchen Sie, die Spuren auf die gleiche Höhe auszurichten)
  7. Verfolgen Sie die LCD-Anzeigetafel auf der rechten Seite der Box (über den beiden Tasten im vorherigen Schritt).
  8. Verwenden Sie eine Klinge, um die beiden Tastenteile und den LCD-Teil abzuschneiden, indem Sie den Spuren in Schritt 6 und 7 folgen

Schritt 4: Erstellen Sie die Schaltungen

Baue die Schaltungen
Baue die Schaltungen

Bauen Sie die Schaltung unter Bezugnahme auf die obigen Schemata auf.

Notiz:

  • Die Widerstände für die RGB-LEDs und die der Tasten sind unterschiedlich, SIEHE KLAR!
  • Da die obige LCD-Anzeigetafel nicht über das I2C-Modell verfügt, ist sie nicht perfekt verbunden. (LCD-Anzeigetafeln mit I2C-Modellen müssen nur vier Pins einstecken)

    • Verbinden Sie GNDs auf dem Display und dem Arduino-Board
    • Verbinden Sie den VCC am Displayer mit den positiven Pins auf dem Steckbrett
    • Verbinden Sie die SDAs auf dem Displayer und dem Arduino-Board
    • Verbinden Sie die SCLs auf dem Displayer und dem Arduino-Board

Schritt 5: Laden Sie den Code hoch

Den Code für dieses Projekt finden Sie hier oder unten.

Jede Codierungszeile hat eine Randnotiz, die ihren Zweck und ihre Funktion erklärt.

Notiz:

  • Alle spezifischen D-Pins können basierend auf dem Layout Ihrer Schaltung geändert und angepasst werden
  • Alle verzögerten Sekunden können in verschiedene Werte geändert werden, aber NICHT LÖSCHEN! (Durch diese verzögerten Sekunden kann der Code logischer fließen. Ohne sie funktionieren einige Teile des Codes möglicherweise nicht!)
  • In Zeile 24 (der Einführung der "for-Schleife") können Sie die Anzahl der Wiederholungen festlegen, die die Schleife durchlaufen soll (der ursprüngliche Wert ist 5).
  • Die Farbkombination der RGB-LEDs in den Schleifen "wenn gedrückt" und "wenn nicht gedrückt" jeder Taste kann angepasst und angepasst werden. (Ursprünglich leuchten die RGB-LEDs grün, wenn sie gedrückt werden, während sie rot leuchten, wenn sie nicht gedrückt werden. Sie können die Werte ändern, um kreative Farben für die Antwort RECHTS und FALSCH zu haben.)

#enthalten

#include LiquidCrystal_I2C lcd_I2C_27(0x27, 16, 2); // setze die LCD-Adresse für eine 16-stellige und 2-zeilige Anzeige int _R; // Variable R einführen, die für den Rotwert der RGB-LEDs steht int _G; // Variable G einführen, die für den Grünwert der RGB-LEDs steht int _B; // Variable B einführen, die für den Blauwert der RGB-LEDs steht int _SongNumber; // Variable SongNumber einführen Void setup () { PinMode (10, INPUT); // setzt D10 als Eingang für die Kartendekorationstaste pinMode (9, INPUT); // setzt D9 als Eingang für die Puzzle-Spiel-Schaltfläche pinMode (8, INPUT); // setzt D8 als Eingang für die Eurasia-Taste pinMode (4, INPUT); // setzt D4 als Eingang für die Nordamerika-Taste pinMode (3, INPUT); // setzt D3 als Eingang für die Südamerika-Schaltfläche pinMode (2, INPUT); // setzt D2 als Eingang für die Afrika-Schaltfläche pinMode (1, INPUT); // setzt D1 als Eingang für den Ozeanien-Button lcd_I2C_27.init (); // Initialisieren Sie die LCD-Anzeigetafel lcd_I2C_27.backlight (); // schalte die Hintergrundbeleuchtung der LCD-Anzeigetafel ein} void loop () { if (digitalRead (10)) { // wenn die Kartendekorationstaste gedrückt wird (int i = 0; i <5; ++i) { // die folgende Schleife 5 Mal ausführen _R = random (0, 1023); // der Variablen R einen zufälligen Wert von 0 bis 1023 geben _G = random (0, 1023); // der Variablen G einen zufälligen Wert von 0 bis 1023 geben _B = random (0, 1023); // Variable B einen zufälligen Wert von 0 bis 1023 geben analogWrite (13, (_R / 4)); // der R-Wert der RGB-LEDs für die erste Gruppe ersetzt und schreibt den Variablenwert von 0 bis 255 analogWrite (12, (_G / 4)); // der G-Wert der RGB-LEDs für die erste Gruppe ersetzt und schreibt den Variablenwert von 0 bis 255 analogWrite (11, (_B / 4)); // der B-Wert der RGB-LEDs für die erste Gruppe ersetzt und schreibt den Variablenwert von 0 bis 255 analogWrite (7, (_R / 4)); // der R-Wert der RGB-LEDs für die zweite Gruppe ersetzt und schreibt den Variablenwert von 0 bis 255 analogWrite (6, (_G / 4)); // der G-Wert der RGB-LEDs für die zweite Gruppe ersetzt und schreibt den Variablenwert von 0 bis 255 analogWrite (5, (_B / 4)); // der B-Wert der RGB-LEDs für die zweite Gruppe ersetzt und schreibt den Variablenwert von 0 bis 255 Verzögerung (3000); // 3000 Millisekunden (3 Sekunden) warten} // da die Werte der Variablen R, G, B in der Schleife bestimmt werden, gäbe es pro Schleife fünf verschiedene Farbkombinationen} if (digitalRead(9)) {//if der Puzzle-Spiel-Button wird gedrückt _SongNumber = random(1, 20); // der Variablen SongNumber einen zufälligen Wert von 1 bis 20 geben lcd_I2C_27.setCursor (0, 0); // setze den Cursor, das Zählen beginnt mit 0 lcd_I2C_27.print(_SongNumber); // den Wert von SongNumber auf die LCD-Anzeigetafel drucken analogWrite (13, 0); // zurücksetzen und den Wert von D13 als 0 schreiben analogWrite (12, 0); // zurücksetzen und den Wert von D12 als 0 schreiben analogWrite (11, 0); // zurücksetzen und den Wert von D11 als 0 schreiben analogWrite (7, 0); // zurücksetzen und den Wert von D7 als 0 schreiben analogWrite (6, 0); // zurücksetzen und den Wert von D6 als 0 schreiben analogWrite (5, 0); // zurücksetzen und den Wert von D5 als 0 schreiben if (_SongNumber>= 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) { //wenn der Wert von D5 Variable SongNumber ist von 18 bis 20 Verzögerung(60000); // 60000 Millisekunden warten, bis die Spieler die Volksmusik hören (60 Sekunden; 1 Minute) if (digitalRead (1)) {// wenn die Oceania-Taste gedrückt wird analogWrite (13, 0); //analogWrite den Wert von D13 als 0 analogWrite (12, 255); //analogWrite den Wert von D12 als 255 analogWrite (11, 0); //analogWrite den Wert von D11 als 0 analogWrite (7, 0); //analogWrite den Wert von D7 als 0 analogWrite (6, 255); //analogWrite den Wert von D6 255 analogWrite (5, 0); // analogWrite den Wert von D5 als 0} // alle RGB-LEDs würden in grüner Farbe leuchten sonst { // wenn die Oceania-Taste nicht gedrückt wird analogWrite (13, 255); //analogWrite den Wert von D13 als 255 analogWrite (12, 0); //analogWrite den Wert von D12 als 0 analogWrite (11, 0); //analogWrite den Wert von D11 als 0 analogWrite (7, 255); //analogWrite den Wert von D7 als 255 analogWrite(6, 0); //analogWrite den Wert von D6 als 0 analogWrite (5, 0); //analogSchreibe den Wert von D5 als 0} //alle RGB-LEDs würden in roter Farbe leuchten} //da die richtigen Antworten für SongNumber 18 bis 20 alle Ozeanien sind, greift diese "if-Schleife" darauf zu, ob die Antwort des Spielers richtig ist oder nicht lcd_I2C_27.clear(); // lösche die Verzögerung der LCD-Anzeigetafel (1000); // warte 1000 Millisekunden (1 Sekunde) } }

Schritt 6: Fertigstellen des Geräts

  1. Öffnen Sie den Karton und legen Sie die zuvor erstellten Schaltkreise ein (einschließlich aller Elemente, z. B.: drei Steckbretter, das Arduino-Board, das tragbare Ladegerät)
  2. Beziehen Sie sich auf den Code und die nachgezeichneten kontinentalen Teile oben auf der Schachtel und stecken Sie die Knöpfe in jede ihrer entsprechenden Positionen

    *Sie können die Randnotizen hinter den Codes beachten, um sicherzustellen, welcher Pin-Button für welchen Kontinent gilt*

  3. Stecken Sie die beiden "Funktionsknöpfe" (Karten-Deko von D10 und Puzzle-Spiel von D9) in jedes der ausgeschnittenen Teile auf der rechten Seite der Schachtel
  4. Installieren Sie die LCD-Anzeigetafel in ihrem ausgeschnittenen Teil auf der rechten Seite der Box
  5. Öffnen Sie die Box und stellen Sie sicher, dass alle Drähte richtig an die Platinen angeschlossen sind
  6. Kleben Sie das Holzbrettfundament mit doppelseitigem Klebeband auf den oberen Teil der Schachtel (achten Sie darauf, dass die Knöpfe richtig in den ausgeschnittenen Teil der Holzbretter passen)
  7. Verwenden Sie eine Heißklebepistole, um die Teile der kleinen Region (nicht die Hauptkontinente) auszufüllen.

Schritt 7: FERTIG!!!!

Für das Puzzle-Spiel gehen Sie zum Link zur Test-Playlist!