Zum Inhalt springen

#22 Digitales Linealprojekt mit PicoBricks

03 Nov 2023
#22 Digital Ruler Project With PicoBricks

Zur Längenmessung werden viele Werkzeuge verwendet. Eines der ersten Dinge, die mir in den Sinn kommen, sind Lineale. Unser Messgerät unterscheidet sich je nach Ort und Größe der Messung. Maßbänder werden im Baugewerbe und in der Architektur verwendet, und Messschieber werden für kleine Objekte verwendet, bei denen eine millimetergenaue Präzision erforderlich ist. Wenn außerdem ein Bereich vermessen werden soll, der sowohl große als auch präzise Messungen erfordert, kommen Entfernungsmesser zum Einsatz, die mit Laser- und Infrarotsystemen arbeiten. Auch im Gesundheitsbereich eingesetzte Ultraschallgeräte arbeiten nach der gleichen Logik, wandeln ihre Messwerte jedoch in visuelle Darstellungen um.

In unserem Projekt werden wir PicoBricks und einen Ultraschallsensor verwenden, um ein digitales Lineal vorzubereiten, das den Entfernungswert auf dem Gerät anzeigt OLED-Bildschirm wenn die Taste gedrückt wird. Ultraschallsensoren erfassen Entfernungen anhand der Rückkehrzeiten der von ihnen ausgesendeten Schallwellen.

Details und Algorithmus

Wenn das Programm startet, werden Anweisungen auf dem OLED-Bildschirm angezeigt. Nachdem der Benutzer die Taste gedrückt hat Taste, wird eine Messung durchgeführt. Die rote LED bleibt während der Messung eingeschaltet und erlischt dann. Der gemessene Wert wird zum Abstand von der Spitze des Sensors bis zur Rückseite der Box addiert. Der endgültig berechnete Wert wird auf dem OLED-Display angezeigt.

Komponenten

1X PicoBricks
1X HC-SR04 Ultraschallsensor
Überbrückungskabel
Einfache Verbindungskabel

Schaltplan

Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.

Bauphasen des Projekts

Zur Vorbereitung des Projekts benötigen Sie doppelseitiges Schaumstoffband, ein Universalmesser und einen Abfallkarton von ca. 15 x 10 x 5 cm.

1) Schneiden Sie die Löcher für den Ultraschallsensor, den OLED-Bildschirm, das Tasten-LED-Modul usw. Summer, Batteriekasten, um die Kabel mit einem Universalmesser durchzuführen.

2) Hängen Sie alle Kabel in die Box und befestigen Sie die Rückseite der Module mit doppelseitigem Schaumstoffklebeband an der Box. Verbinden Sie die trig Pin des Ultraschallsensors an den GPIO14 Pin und die Echo Pin an die GPIO15 Stift. Sie sollten den VCC-Pin mit dem verbinden VBUS Pin auf dem Picoboard.

 

3) Nachdem Sie die Kabelverbindungen aller Module abgeschlossen haben, können Sie die 2-Batterie-Box in die Strombuchse des Picoboards stecken und den Schalter einschalten. Das war's mit dem digitalen Lineal-Projekt!

Registerkarte „Mikroblöcke ausführen“.

MicroPython-Codes der PicoBricks

 


Vom Maschinenimport Pin, PWM, I2C
aus utime import schlaf
Von Picobricks importieren Sie SSD1306_I2C
Zeit importieren

# Definieren Sie die Bibliotheken
redLed = Pin(7, Pin.OUT)
button = Pin(10, Pin.IN, Pin.PULL_DOWN)
Summer = PWM(Pin(20, Pin.OUT))
Buzzer.freq(392)
Trigger = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)

# Definieren Sie Eingangs- und Ausgangspins
BREITE = 128
HÖHE = 64

# OLED-Bildschirmeinstellungen
sda = machine.Pin(4)
scl = machine.Pin(5)
i2c = machine.I2C(0, sda=sda, scl=scl, freq=1000000)

# Initialisieren Sie die digitalen Pins 4 und 5 als AUSGANG für die OLED-Kommunikation
oled = SSD1306_I2C(128, 64, i2c)

Maß = 0
finalDistance = 0

def getDistance():
    trigger.low()
    utime.sleep_us(2)
    trigger.high()
    utime.sleep_us(5)
    trigger.low()
    while echo.value() == 0:
        signaloff = utime.ticks_us()
    while echo.value() == 1:
        signalon = utime.ticks_us()
    timepassed = signalon – signaloff
    Distanz = (verstrichene Zeit * 0,0343) / 2
    Rückweg

# Berechnen Sie die Entfernung
def getMeasure(pin):
    globales Maß
    globale finalDistance
    redLed.value(1)
    für i im Bereich(20):
        messen += getDistance()
        Schlaf(0,05)
    redLed.value(0)
    finalDistance = (Maß/20) + 1
    oled.fill(0)
    oled.show()
    oled.text(">Digital Ruler<", 2, 5)
    oled.text("Distance " + str(round(finalDistance)) + " cm", 0, 32)
    oled.show()

    # Drucken Sie den angegebenen Abstand zu den angegebenen X- und Y-Koordinaten auf dem OLED-Bildschirm
    print(finalDistance)
    Buzzer.duty_u16(4000)
    Schlaf(0,05)
    Buzzer.duty_u16(0)
    Maß = 0
    finalDistance = 0

# Den Summer ertönen lassen
button.irq(trigger=machine.Pin.IRQ_RISING, handler=getMeasure)

Arduino C-Codes der PicoBricks

 


#include 
#include „ACROBOTIC_SSD1306.h“
#include 
// Definiere die Bibliotheken
#define TRIGGER_PIN 15
#define ECHO_PIN 14
#define MAX_DISTANCE 400
NewPing-Sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
#define T_B 493
int Abstand = 0;
int total = 0;

void setup() {
  pinMode(7, OUTPUT);
  pinMode(20, OUTPUT);
  pinMode(10, INPUT);
  // Definiere Eingangs- und Ausgangspins
  Wire.begin();
  oled.init();
  oled.clearDisplay();
}

void loop() {
  Verzögerung(50);
  if(digitalRead(10) == 1) {
    int Maß = 0;
    digitalWrite(7, HIGH);
    Ton(20, T_B);
    Verzögerung (500);
    noTone(20);
    for (int i = 0; i < 20; i++) {
      Measure = sonar.ping_cm();
      Gesamt = Gesamt + Maß;
      Verzögerung(50);
    }
    Distanz = gesamt / 20 + 6; // Berechne die Entfernung
    digitalWrite(7, LOW);
    Verzögerung (1000);
    oled.clearDisplay();
    oled.setTextXY(2, 1);
    oled.putString(">Digital Ruler<");
    oled.setTextXY(5, 1);
    oled.putString("Entfernung: ");
    oled.setTextXY(5, 10);
    String string_distance = String(distance);
    oled.putString(string_distance);
    oled.setTextXY(5, 12);
    oled.putString("cm"); // Drucken Sie die berechnete Distanz auf dem OLED-Bildschirm aus
    Maß = 0;
    Abstand = 0;
    gesamt = 0;
  }
}

GitHub-Projektseite
Vorheriger Beitrag
Nächster Beitrag

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look
Wählen Sie Optionen

Bearbeitungsoption

Benachrichtigung wieder auf Lager

Vergleichen

Produkt ArtikelnummerBewertungBeschreibung Sammlung Verfügbarkeit Produktart Andere Details
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment