Readdy Write

Calliope : Senden von Text über Serielle Schnittstelle an einen Computer

07.11.2019 (👁6191)

 

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

    }

}


0,00 €