LAT Hologramm-Software 2.0
Loading...
Searching...
No Matches
connect_arduinostage.m
Go to the documentation of this file.
2
3%% Informationen zur Funktion
4% Von Nikolas Arthkamp (11.2021)
5% fuer: grbl-Version 1.1.
6% Die Funktion benoetigt MATLAB R2019b oder neuer
7% und versucht eine Verbindung zum grbl-Controller aufzubauen.
8% Sie gibt den Status der Verbindung sowie der Bewegungsart als Rueckgabe
9% vom Typ string an 1. und 2. Stelle aus. An 3. Stelle wird das erzeugte
10% serialport-Objekt ausgegeben. Es ist zwingend erforderlich dieses
11% auszulesen.
12
13%% Funktion
14
15function [ans_connection,ans_bewegungsart,serialport_object] = connect_arduinostage(port)
16
17 %Kommunikation aufbauen und testen
18
19 %Serielle Kommunikation aufbauen
20 %Baudrate von grbl-Version 1.1 = 115200
21 serialport_object = serialport(port, 115200);
22 %muss min 0.3 sein --> 0.5 fuer Stabilitaet
23 pause(0.5);
24
25 %Terminator aendern
26 %Terminator in grbl-Version 1.1: 'CR/LF'
27 configureTerminator(serialport_object, 'CR/LF');
28 %weitere Einstellungen (Hier gesetzte Einstellungen sind default und werden
29 %nur gesetzt, um Fehler durch Aenderungen in den Matlab
30 %default-Einstellungen zu vermeiden.)
31 set(serialport_object,'DataBits',8);
32 set(serialport_object,'Parity','none');
33 set(serialport_object,'StopBits',1);
34 set(serialport_object,'FlowControl','none');
35
36 %Antwort bei Verbindungsaufbau auslesen und pruefen
37 %wenn korrekt aufgebaut in grbl-Version 1.1
38 ans1_soll = "Grbl 1.1h ['$' for help]";
39 %grbl Anfangsnachricht hat 26 Zeichen
40 ans1 = check_grbl_read(serialport_object,26);
41
42 if ans1 == ans1_soll
43 ans_connection = "grbl-Verbindung aufgebaut!";
44
45 %inkrementelle Bewegung festlegen
46 ans2_soll = "okok";
47 %gcode: G91 --> inkrementelle Bewegung
48 writeline(serialport_object,"G91");
49 %Bestaetigung hat 8 Zeichen
50 ans2 = check_grbl_read(serialport_object,8);
51
52 if ans2 == ans2_soll
53 ans_bewegungsart = "inkrementelle Bewegungsart festgelegt!";
54 else
55 ans_bewegungsart = "Festlegen der Bewegungsart fehlgeschlagen!";
56 %Auslesen abgeschnittener Zeichen um zwischenspeicher des Controllers zu leeren
57 check_grbl_read(serialport_object,20);
58 end
59
60 else
61 ans_connection = "grbl-Verbindung fehlgeschlagen!";
62 ans_bewegungsart = "nicht moeglich!";
63
64 end
65
66end
function check_grbl_read(in serialport_objekt, in anzahl_zeichen)
Die Funktion liest die serielle Schnittstelle aus, bis eine Antwort erhalten wird.
function connect_arduinostage(in port)
versucht eine Verbindung zum grbl-Controller aufzubauen
#define min(a, b)
Definition: nuts_bolts.h:57