This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projects:farmrobot:hinderniserkennung_mit_sonar [2021/02/21 12:14] tobias |
projects:farmrobot:hinderniserkennung_mit_sonar [2021/02/24 20:44] (current) tobias [Aufbau] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Sonar ====== | ====== Sonar ====== | ||
- | Um zu verhindern das der Farm Robot mit voller Kraft in Objekte oder sogar Personen fährt, wurden | + | Um zu verhindern das der Farm Robot mit voller Kraft in Objekte oder sogar Personen fährt, wurden |
==== Aufbau ==== | ==== Aufbau ==== | ||
Line 7: | Line 7: | ||
Es sind acht [[https:// | Es sind acht [[https:// | ||
- | **BILD ANSCHLUSS AN ARUDIONO (MÖGLICHST AKTUELL, ALSO MIT LANGEN KABELN)** | + | {{: |
- | Die Sensoten | + | Die Sensoren |
- | **BILD SENSOREN AM FARM ROBOT** | + | {{: |
- | ==== Code ==== | + | Der Arduino ist Seriell mit dem Telem1 Port des Pixhawks verbunden und wird auch vom Pixhawk mit Strom versorgt. |
- | Der Code wertet die Daten der Sensoren aus und sendet ein `LOW` Signal, sobald etwas zu nah kommt. | + | {{: |
+ | |||
+ | Zusätzlich müssen in der Full Parameter List zwei Eigenschaften des Telem1 Ports eingestellt werden. | ||
+ | |||
+ | ^ Command | ||
+ | | SERIAL1_Baud | ||
+ | | SERIAL1_PROTOCOL | ||
+ | |||
+ | |||
+ | ==== Code ==== | ||
- | > Später hoffentlich: | + | Der Code wertet die Daten der Sensoren aus und sendet mithilfe von [MAVLink](https:// |
- | > Der Code wertet die Daten der Sensoren aus und sendet mithilfe von [MAVLink](https:// | + | Der Code verwendet eine [[https:// |
Line 26: | Line 35: | ||
Ultrasonic sensor Pins: | Ultrasonic sensor Pins: | ||
VCC: +5VDC | VCC: +5VDC | ||
- | Trig : Trigger (INPUT) | + | Trig : Trigger (INPUT) |
- | Echo: Echo (OUTPUT) | + | Echo: Echo (OUTPUT) |
GND: GND | GND: GND | ||
*/ | */ | ||
+ | #include < | ||
int echoPin0 = 22; // Echo | int echoPin0 = 22; // Echo | ||
Line 50: | Line 60: | ||
int outPin = 1; | int outPin = 1; | ||
- | long distance = 20; // in cm | + | long distance = 95; // in cm |
long duration0, cm0; | long duration0, cm0; | ||
Line 60: | Line 70: | ||
long duration6, cm6; | long duration6, cm6; | ||
long duration7, cm7; | long duration7, cm7; | ||
+ | |||
+ | // MAVLink | ||
+ | mavlink_message_t msg; | ||
+ | uint8_t buf[MAVLINK_MAX_PACKET_LEN]; | ||
+ | uint16_t len; | ||
void setup() { | void setup() { | ||
//Serial Port begin | //Serial Port begin | ||
- | Serial.begin (9600); | + | Serial.begin (57600); |
+ | Serial1.begin (57600); | ||
//Define inputs and outputs | //Define inputs and outputs | ||
pinMode(echoPin0, | pinMode(echoPin0, | ||
Line 184: | Line 201: | ||
// Check if something gets to close | // Check if something gets to close | ||
if(cm0 <= distance || cm1 <= distance || cm2 <= distance || cm3 <= distance || cm4 <= distance || cm5 <= distance || cm6 <= distance || cm7 <= distance){ | if(cm0 <= distance || cm1 <= distance || cm2 <= distance || cm3 <= distance || cm4 <= distance || cm5 <= distance || cm6 <= distance || cm7 <= distance){ | ||
- | | + | |
- | Serial.println(" | + | // mavlink_msg_command_long_pack(0xFF, |
+ | len = mavlink_msg_to_send_buffer(buf, | ||
+ | |||
+ | // Send the message (.write sends as bytes) | ||
+ | Serial.write(buf, | ||
+ | Serial.println(" | ||
+ | Serial1.write(buf, | ||
}else{ | }else{ | ||
- | | + | Serial.println(" |
- | | + | |
} | } | ||
} | } | ||
</ | </ |