Calliope : Senden
von Text über Serielle Schnittstelle
In diesem Beispiel
werden von dem Calliope Lerncomputer
Daten über eine serielle Schnittstelle an einen angeschlossenen PC gesendet.
Der PC empfängt
die Daten und zeigt die Daten in einem Consolen Programm an.
Dem Code serial.writeLine(“ein Text zum Senden”)
wird über die integrierte Schnittstelle ein Text zur COM Schnittstelle des
Computers gesendet.
serial.writeLine(Messwert + "") //\r
\n
|
Calliope Beispiel
Code
Senden von Text über die serielle Schnittstelle
Der Code ist in
javascript
Der Code in der
Caliope zum Senden von Daten zur Seriellen Schnittstelle wird hier beschrieben
basic.forever(()
=> {
//-----<
MainLoop >------
//Temperatur
lesen
let
Messwert = input.compassHeading()
serial.writeLine(Messwert + "") //\r
\n
//wait
1 Sekunde
basic.pause(1000)
//-----</
MainLoop >------
})
|
Calliope wird hier programmiert und in die Hardware geladen
https://makecode.calliope.cc/
Empfangen über die COM Schnittstelle des PCs
Console Programm
Die Serielle Schnittstelle wird zunächst festgelegt
//< globale Variablen >
static SerialPort
serial_Caliope;
//--< seriell erstellen >--
//Serielle Schnittstelle definieren
serial_Caliope = new
SerialPort
{
PortName = "COM7",
BaudRate = 115200,
Parity = Parity.None,
DataBits = 8,
Handshake = Handshake.None,
RtsEnable = true,
StopBits = StopBits.One
};
|
Dann wird die COM Schnittstelle verbunden oder zum Abfragen
geöffnet
//Serielle Schnittstelle starten
serial_Caliope.Open();
//--</ seriell erstellen >--
|
Werte werden dann gelesen über den Befehl
string comErgebnis = serial_Caliope.ReadLine();
|
Und anschliessend in der Console Angezeigt
Console.WriteLine(comErgebnis);
|
Über ein kleines Consolen Programm werden die Daten zyklisch
an der seriellen Schnittstelle gelesen
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace _02_Console_Net
{
class Program
{
//< globale Variablen >
static SerialPort
serial_Caliope;
static void Main(string[]
args)
{
//--------------< Main >---------------
//--< seriell erstellen >--
//Serielle Schnittstelle definieren
serial_Caliope = new
SerialPort
{
PortName = "COM7",
BaudRate = 115200,
Parity = Parity.None,
DataBits = 8,
Handshake = Handshake.None,
RtsEnable = true,
StopBits = StopBits.One
};
//Serielle Schnittstelle starten
serial_Caliope.Open();
//--</ seriell erstellen >--
//-< Timer >-
Timer timerA = new
Timer(1000);
timerA.Elapsed += Timer_Elapsed;
timerA.Start();
//-</ Timer >-
//Ausgeben
Console.ReadKey();
//
//--------------</ Main >---------------
}
#region Events
//----< Events >-------
private static void
Timer_Elapsed(object sender, ElapsedEventArgs e)
{
string comErgebnis =
serial_Caliope.ReadLine();
Console.WriteLine(comErgebnis);
}
//----</ Events >-------
#endregion /Events
}
}
|