Geräusche Lokalisieren?

Hey!

Ich möchte mit einem Arduino oder Rasperry Pi geräusche lokalisieren, doch ich bin mir unsicher ob meine vorstellungen funktionieren würden.

Also, ich möchte in einem abstand von beispielweise 15cm 2 Mikrofone aufstellen.

Das eine heißt A und das andere B, und die Strecke von 15 cm zwischen A und B ist c.

Wenn jetzt ein Geräusch von den Mirkofonen gehört wird was beispielweise über 60db ist (Lautstärke einer Stimme) und man von beiden Mikrofonen den winkel kennt aus dem das geräusch gekommen ist, kann man ein Kreieck konstruieren.

Gegeben ist hier bei:

  • Winkel alpha
  • Winkel beta
  • c, Abstand zwischen punkten A und B

Darauß entstanden ist folgendes:

(Nehme als beispiel daten mal alpha=40, beta=60, c=15cm)

Punkt C ist hierbei die Herkunft des geräusches.

Um jetzt das geräusch zu lokalisieren, braucht man die richtung aus dem es gekommen ist (von der mitte der Strecke A zu B) und die entfernung des Geräusches (von der mitte der Strecke A zu B).

Ich habe das hier mal gemacht. (Ignoriert einfach den Kopf auf der rechten Seite)

Auf der zeichnung gibt es nun die folgenden neuen Variablen:

  • b2, Strecke von c2 zu C
  • c2, Die hälfte der Strecke von A zu B (Habe in der zeichnung ein Slash benutzt da man es in der Programmierung zum teilen benutzt).
  • Und in ganz klein, der winkel alpha2, Direkt über dem buchstaben c.

Nun kann man den winkel alpha2 und strecke b2 mit Formeln berechnen.

Doch das alles funktioniert unter der bedingung das man die Richtung des geräusches mit den Mikrofonen finden kann, also das alpha und beta gegeben ist.

Gibt es solche Mikrofone, und wenn ja, wie kann ich sie benutzen?

PS: Sorry wenn vieles schwer zu verstehen ist, Ich bin relativ neu in dem Thema und es fällt mir noch schwer bestimmte sachen richtig aus zu drücken.

Falls ihr etwas nicht versteht, Könnt ihr gerne eine

Bild zum Beitrag
Mathematik, Mikrofon, Akustik, Arduino, Physik, Raspberry Pi
Anspruchsvolle Microcontroller arduino projekte?

Hey, ich bin gerade in der 11. Klasse und wir müssen Jahresarbeiten mit einem praktischen Teil schreiben.

Ich interessiere mich sehr für Technik in jede Richtung und auch programmieren (auch wenn ich nicht so erfahren bin)

Ich hab auch einige Leute die mir bei der umsetzung von Projekten helfen könnten.

Ich habe mir überlegt über Microcontroller an sich zu schreiben und ein passendes Projekt dazu zu machen.

Das kann ruhig anspruchsvoll sein,da ich ja ein ganzes Jahr lang Zeit für die Umsetzung habe.

Mein Cousin hatte vor einigen Jahren ein ähnliches Thema gewählt und hat z.b. einen Staubsaugerroboter gebaut der auch Treppen hinauf gehen kann und so auf mehreren Stockwerken einsetzbar ist.

Ich würde auch gerne etwas ähnliches machen. Der mögliche einsatzbereich ist völlig egal.

Ich suche Ideen oder Anregungen jeder Art für coole witzige oder nützliche Projekte.

Schreibt gerne alles was euch einfällt auch wenn die Umsetzung vieleicht unrealistisch ist, das regt immerzu guten Ideen an und man könnte auch Abwandlungen versuchen.

Ihr könnt auch gern Ideen schreiebn für technische Projekte die vieleicht nicht unbedingt mit Mikrocontrollern gesteuert werden.

Für die Umsetzung hätte ich wegen dem Studium meiner Schwester auch alle möglichen geräte wie Lasercutter, 3D druck, Guss, Holz/kunstoffwerkstäten etc. Zur verfügung.

Vielen Dank schonmal für mögliche Ideen, lg

Technik, Elektronik, programmieren, Elektrotechnik, Mikrocontroller, Arduino, Informatik, Python, 3D-Drucker
Schrittmotoren welche Treiber?

Hallo,

Ich bin aktuell dabei, mir einen kleinen Roboterarm zu bauen. Dafür habe ich folgende Schrittmotoren gekauft:

STEPPERONLINE Schrittmotor 5 Pack Nema 17 Bipolar 42Ncm 1.5A 42x42x39mm 4 Drähte mit 1m Kabel & Verbinder für 3D-Drucker/CNC Fräsmaschine, Black https://amzn.eu/d/cyVuzSr

Leider bin ich mir jetzt nicht sicher welches Netzteil und vorallem Treiber ich dafür kaifen sollte...

Zuhause habe ich noch ein paar A4988 Treiber für 3d drucker, allerdings habe ich die Sorge das diese Überhitzen (Der arm soll auch ein wenig Gewicht bewegen können)

Und welches Netzteil empfiehlt ihr? Ich hätte gerne 24V für mehr Drehmoment.

W=V×A sollte ja ergeben, das bei 5×1,5A Motoren bei 24 Volt 240 Watt gebraucht werden. Reicht das oder sollte ich das Netzteil lieber großzügig Dimensionieren?

Vielen dank!

Watt, Ampere, Arduino
Arduino Wert aus Tabelle?

Guten Tag,

ich habe ein kleines Problem mit meinem Arduino Code... Ich weiß leider nicht weiter.

ich habe hier schon mal angefangen ein Programm zu schreiben das mir mein Arduino Mega alle 2 sec. eine Temperatur anhand eines Ohm wertes aus gibt.

das Problem liegt jetzt aber dabei das ich den Ohm wert nicht in die Temperatur umwanden kann.

Ich habe mir eine Tabelle erstellt die angibt bei welchem Ohm wert welche Temperatur angezeigt werden soll.

Nun die Frage: Wie gleicht mir der Arduino die Gemessenen werte mit den vorhandenen ab und zeigt mir dann auf meinem OLED Display meine Temperatur an?

ich bedanke mich schon mal recht Herzlich für die antworten.

MfG Dennis

PS: falls es fragen gibt bitte melden!!

Das wäre der Bisher funktionierende Code

#include <GyverOLED.h>

GyverOLED<SSH1106_128x64> oled;

const uint8_t bitmap_32x32[] PROGMEM = {

 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0x70, 0x70, 0x30, 0x30, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, 0x30, 0x30, 0x20, 0x00, 0x00,

 0x00, 0x30, 0x78, 0xFC, 0x7F, 0x3F, 0x0F, 0x0F, 0x1F, 0x3C, 0x78, 0xF0, 0xE0, 0xC0, 0x80, 0x80, 0x80, 0x40, 0xE0, 0xF0, 0xF8, 0xFC, 0xFF, 0x7F, 0x33, 0x13, 0x1E, 0x1C, 0x1C, 0x0E, 0x07, 0x00,

 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF9, 0xF7, 0xEF, 0x5F, 0x3F, 0x7F, 0xFE, 0xFD, 0xFB, 0xF1, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1E, 0x33, 0x33, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x1F, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00,

};

int analogPin = 0;

int raw = 0;

int Vin = 5;

float Vout = 0;

float R1 = 330000;

float R2 = 0;

float buffer = 0;

void setup() {

 Serial.begin(9600);

 oled.init();

  

 oled.clear();

 oled.setScale(1);

 oled.update();

}

void loop() {

 raw = analogRead(analogPin);

 if(raw){

  buffer = raw * Vin;

  Vout = (buffer)/1024.0;

  buffer = (Vin/Vout) - 1;

  R2= R1 * buffer;

  delay(2000);

oled.home();

 oled.print("Temp1:");

 oled.update();

 oled.setCursor(5, 2);

 oled.update();

 oled.print(R2);

 oled.update();

 }

}

Bild zum Beitrag
Arduino, arduino mega
ESP8266-12F mit MPU6050?

Hallo, ich versuche gerade mit einem ESP-12F einen MPU6050 auszulesen. Der Sensor ist über IO04 und IO05 angeschlossen. Mit einem i2c Scanner wurde dieser auch erkannt mit der Adresse 0x68. Wenn ich den Sensor nun auslesen möchte, bekomme ich nur 0en oder -1en ausgegeben für Lage und Beschleunigung. Anderen Sensor und esp habe ich bereits ausprobiert.

Auf dem Bild der Aufbau. Ich benutze einen Programmiersockel für die ESPs.

Hier der Code:

#include <Wire.h>

const int MPU_addr = 0x68;

int16_t Acc_rawX, Acc_rawY, Acc_rawZ, Tmp, Gyr_rawX, Gyr_rawY, Gyr_rawZ;

void setup() {
  delay(1000);
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B);
  Wire.write(0);
  Wire.endTransmission(true);
  Serial.begin(115200);
}

void loop() {
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr, 14, true);

  Acc_rawX = Wire.read() << 8 | Wire.read();
  Acc_rawY = Wire.read() << 8 | Wire.read();
  Acc_rawZ = Wire.read() << 8 | Wire.read();
  Tmp = Wire.read() << 8 | Wire.read();
  Gyr_rawX = Wire.read() << 8 | Wire.read();
  Gyr_rawY = Wire.read() << 8 | Wire.read();
  Gyr_rawZ = Wire.read() << 8 | Wire.read();

  Serial.print (Acc_rawX);
  Serial.print (" ");
  Serial.print (Acc_rawY);
  Serial.print (" ");
  Serial.print (Acc_rawZ);
  Serial.print (" ");
  Serial.print (Gyr_rawX);
  Serial.print (" ");
  Serial.print (Gyr_rawY);
  Serial.print (" ");
  Serial.println (Gyr_rawZ);
}
Bild zum Beitrag
Arduino, I2C, ESP8266
Spannungsteiler mit Signalen?

Hallo,

Ich habe eine Frage zu einer Schaltung die ich erstellen will. Ich bin mir noch nicht sicher ob diese so funktioniert wie ich mir das denke. Hier habe ich mal eine Zeichnung gemacht ich hoffe man kann alles erkennen.

Also ich habe ein Zähler Gerät das ans Stromnetz angeschlossen ist. Dieser Zähler (rechts) hat einen Pin an dem er Signale empfängt und immer wenn ein Signal kommt hoch zählt. Ich denke das ist Flanken basiert. Zusätzlich hat der Zähler 2 Pins + und - an dem man den Signalgeber anschließt und diesen mit Stromversorgt. Dieser ist bei mir der Sensor links. Er ist wie schon gesagt am Zähler angeschlossen. Der Zähler empfängt Spannungen ab 15V als Positiv, der sensor gibt ungefähr 20V Signale. Der Zähler ist bis her direkt mit dem Sensor verbunden und funktioniert perfekt. Jetzt will ich das Signal des Sensors zusätzlich noch mit einem Arduino nutzen. Da habe ich mir gedacht ich schalte parallel zur Signal Leitung ein Spannungsteiler damit ich 5V Signale bekomme anstatt 20V da der Arduino ja keine 20V Signale erträgt. Jetzt meine Frage kann ich diese Scjaltung so nutzen oder funktioniert das nicht ?

Wenn nicht wie kann ich das sonst umsetzten (wichtig ich will den Zähler weiterhin nutzen er benötigt min. 15V Signale und ZUSÄTZLICH den Arduino anschließen).

Ich hoffe man konnte alles verstehen.

Vielen Dank im voraus

Bild zum Beitrag
Technik, Elektronik, Elektrik, Elektrotechnik, Arduino, Elektrizität, Physik, Techniker, Technologie
Arduino Library hinzufügen verursacht Fehler?

Ich grüße euch!

Kurz und knapp: Wenn ich

#include "SD.h"
#include <SPI.h>
#include "DHT.h" 

oder gar nur

#include "SD.h"

in mein Projekt inkludieren will, findet es mein Display nicht mehr!

Ich möchte zwei Programme zusammenfassen: Temperatur + Data Logger und Display. Einzeln funktioniert es, doch wenn ich beim Display "Programm" die Library von der SD-Karte hinzufügen möchte, findet er kein Display mehr (SSD1306 allocation failed).

Ich bin am Ende meines Wissensschatzes und hoffe, ihr könnt helfen.

Programm vom Temperatur Datalogger
https://microcontrollerslab.com/dht22-data-logger-arduino-micro-sd-card/?fbclid=IwAR3eXzNh_y7-6tNhh7Qoh_wpzHY-_6lM7BwR1HcT2MaBO7rzwuswTJzs34A

Programm vom Display

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define SCREEN_ADDRESS 0x3C

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

#define NUMFLAKES   10 // Number of snowflakes in the animation example
#define LOGO_HEIGHT  16
#define LOGO_WIDTH  16

static const unsigned char PROGMEM logo_bmp[] =
{
  0b00000000, 0b11000000,
  0b00000001, 0b11000000,
  0b00000001, 0b11000000,
  0b00000011, 0b11100000,
  0b11110011, 0b11100000,
  0b11111110, 0b11111000,
  0b01111110, 0b11111111,
  0b00110011, 0b10011111,
  0b00011111, 0b11111100,
  0b00001101, 0b01110000,
  0b00011011, 0b10100000,
  0b00111111, 0b11100000,
  0b00111111, 0b11110000,
  0b01111100, 0b11110000,
  0b01110000, 0b01110000,
  0b00000000, 0b00110000
};

void setup()
{
  Serial.begin(9600);
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  
  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));

    for(;;); // Don't proceed, loop forever
  }

  // Show initial display buffer contents on the screen --
  // the library initializes this with an Adafruit splash screen.
  display.display();
  delay(2000); // Pause for 2 seconds
  // Clear the buffer
  display.clearDisplay();
  // Draw a single pixel in white
  display.drawPixel(10, 10, SSD1306_WHITE);
  delay(20000);
  display.clearDisplay();
  // Show the display buffer on the screen. You MUST call display() after
  // drawing commands to make them visible on screen!
  display.display();
  delay(2000);
}

void loop()
{
}
Computer, programmieren, Arduino, Arduino Uno

Meistgelesene Beiträge zum Thema Arduino