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(" |
| - | | + | |
| } | } | ||
| } | } | ||
| </ | </ | ||