Liste der Anhänge anzeigen (Anzahl: 1)
abstand zweier fahrräder "konstant" halten
hallo allerseits,
folgendes szenario:
zwei radfahrer fahren hintereinander, nicht immer mit gleichem abstand, entfernung auf sichtweite ist erwünscht, aber für den vorausfahrenden nicht immer gut kontrollierbar.
Rückspiegel ist nur für ganz kurze entfernungen geeignet, handy mit dauerkontakt und in-ohr-hörer ist zu empfindlich für den fahrtwind, walkie-talkie schwierig in der bedienung. Selbst die VOX funktion ist unzuverlässig. Für einen schwerhörigen allemal...
Liesse sich das problem mit hilfe zweier arduinos mit "irgendwelcher" verbindung lösen, indem beide fahrer (man wechselt sich vorne öfters ab) eine "grün - gelb - rote" LED-anzeige haben, die signalisiert wie die entfernung ist? Spätestens bei rot auf der anzeige des vorausfahrendes heisst es anhalten...
p.s. ich hatte probleme mit dem chromium webbrowser unter ubuntu das thema zu erstellen, das sah in der vorschau immer so aus:
Anhang 32073
formatierung war weg, die icons des editors ebenfalls. Auch das bearbeiten von beiträgen geht nicht. Kennt das jemand?
Liste der Anhänge anzeigen (Anzahl: 3)
bin ein schritt weitergekommen, der aufbau ist nun folgender:
sender und empfänger sind diese. Sie funktionieren prinzipiell. An den sender habe ich einen NE555 mit folgender schaltung angekoppelt:
Anhang 32174 Anhang 32175
der datapin ist an punkt A, Vcc und GND sind gemeinsam aus einer 9V blockbatterie. Die rote LED blinkt am punkt A paralell zum ausgang zum sender als kontrolle.
Der empfänger hängt nur an einer 9V blockbatterie und am arduino mega zum auswerten des ankommenden signals:
Anhang 32176
Die auswertung habe ich mit diesem sketch versucht zu realisieren:
In dem sketch habe ich beide möglichkeiten - analoge, wie digitale auswertung - unabhängig voneinander (also nicht gleichzeitig) durchgeführt.
Code:
uint8_t abstand_analog;
uint8_t abstand_digital;
#define rfReceivePinAnalog A0
#define rfReceivePinDigital 2
#define ledPin 13
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(rfReceivePinDigital, INPUT);
Serial.begin(9600);
}
void loop()
{
abstand_digital = 0;
abstand_analog = 0;
digitalWrite(ledPin, LOW);
abstand_analog = analogRead(rfReceivePinAnalog);
abstand_digital = digitalRead(rfReceivePinDigital);
Serial.print(abstand_analog);
Serial.print(" ");
Serial.println(abstand_digital);
delay(300);
if (abstand_analog >= 100)
{
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
delay(300);
}
if (abstand_digital == 1)
{
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
delay(300);
}
}
- die werte bei digitalen auswertung wechseln zwischen 0 und 1
- die analogen werte schwanken zwischen 0 und 255
wie nicht anders zu erwarten war :-), allerdings gibt es ein problem:
es kommt mir bei dieser geschichte nicht auf die art oder die größe der empfangenen werte an, sondern nur darum, den abriss der verbindung festzuhalten. Ob jetzt durch dauerleuchten der pin13 LED, oder ein daueraus ist auch nicht wichtig.
Das problem dabei ist, dass selbst beim abgeschaltetem sender noch daten von A0 ausgelesen werden, beim analogen beispiel alle möglichen, also von 1 bis 255. Auch bei abgeschaltetem empfänger(!) werden noch sehr unterschiedlich daten am A0 ausgelesen. Erst beim abklemmen der leitung von A0 zum datapin des empfängers sind die ausgelesenen daten in einem "schmalen" bereich um die 30-40. Wie erreiche ich, dass die daten am empfänger nur noch "nullen" sind nach dem abriss der verbindung? Die werte sinken zwar zwar, aber es dauert wahnsinig lange und selbst nach minuten kommen noch einzelne werte um 250.
Was passiert da? Was für ein hintergrundrauschen wird da von A0 ausgelesen?
Ich bin ratlos...
Liste der Anhänge anzeigen (Anzahl: 4)
hallo allerseits,
vielen dank für euere antworten und tipps...
ich habe mich nun für die vorher schon geplante variante mit dem sender und empfänger auf 433mHz basis entschieden:
Anhang 32192Anhang 32193Anhang 32194Anhang 32195
- einfaches handling - einschalten, fertig - keine PTT knopf suche während der fahrt an einem walkie-talkie notwendig (ist was anderes als der klingelkopf!)
- reichweite mit 20m für den zweck voll ausreichend
- geringe kosten (5 - 7 Eur)
- die VOX funktion funktioniert an (meinem) walkie talkie schlecht
- der vorschlag mit dem schlüsselfinder war bestechend gut, nur heisst es dort einmal klatschen/pfeiffen/signal senden - und dann piepst der empfänger wohl von alleine weiter, egal ob der sender (der hintere fahrer) noch existiert
- die Ibeacons, die ich fand, waren zu teuer
- einfache sender und empfänger software, die ohne anpassung funktioniert:
Code:
//transmitter
// http://www.instructables.com/id/RF-3...-Wire-Library/
//simple Tx on pin D12
//Written By : Mohannad Rawashdeh
// 3:00pm , 13/6/2013
//http://www.genotronex.com/
//..................................
#include <VirtualWire.h>
char *controller;
void setup()
{
pinMode(13,OUTPUT);
vw_set_ptt_inverted(true); //
vw_set_tx_pin(12);
vw_setup(4000);// speed of data transfer Kbps
}
void loop()
{
controller="1" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,1);
delay(500);
controller="0" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,0);
delay(500);
}
Code:
//receiver
// http://www.instructables.com/id/RF-3...-Wire-Library/
//simple Tx on pin D12
//Written By : Mohannad Rawashdeh
// 3:00pm , 13/6/2013
//http://www.genotronex.com/
//..................................
#include <VirtualWire.h>
void setup()
{
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
pinMode(13, OUTPUT);
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
if(buf[0]=='1')
{
digitalWrite(13,1);
}
if(buf[0]=='0')
{
digitalWrite(13,0);
}
}
}
edit: die kosten verdoppeln sich natürlich wenn man sender und empfänger haben möchte :-)
Liste der Anhänge anzeigen (Anzahl: 4)
Zitat:
Zitat von
Peter(TOO)
Tic Tac Behälter sind auch ganz praktisch :-)
Anhang 32196Anhang 32197Anhang 32198Anhang 32199