Meddelande från en WinForms till en TinyDuino (5 / 14 steg)
Steg 5: Serial Protocol
Serial Protocol
Innan vi går in kodning något måste vi bestämma på vilken typ av serial protocol vi vill använda. Det går bra för att använda en vanlig text protokoll där vi överför oformaterad text fram och tillbaka mellan våra TinyDuino och dator men datorer inföding förstår inte engelska och koden kan bli komplexa för att hantera mer avancerade oformaterad text överföringar.
För att skapa enkla kod och ultra snabb seriell överföring bör vi använda något arduino och datorn tala mycket flytande, att vara raw byte. En byte består av 8 bitar, och sedan seriell kommunikation är en dataström av bitar, byte mycket effektivt kan skickas över anslutningen.
För jämförelse om vi använt oformaterade textmeddelanden av "Motor kontrollmeddelande, Motor1: 255, Motor2: 255" vi har inge 47 byte data, 44 de byte som inte innehåller någon användbar information och helt enkelt ta upp seriella tid. Detta är inte en stor fråga om du använder en hög överföringshastighet som 9600.
Men om du använder en långsam överföringshastighet, säga 50 (för vissa hög effektivitet anordning), skillnaden mellan 47 byte och 3 är extreme, nästan en 93% skillnad. I båda fallen för att skapa enkelhet och effektivitet vi bör hålla sig till överföra raw-data snarare än vanlig text.
Ett enkelt protokoll som vi kan använda är 3 byte lång, som innehåller 3 bitar av information. Eftersom vi sänder våra byte som en endimensionell matris kan vi använda en 3 byte ska visualisera vårt budskap:
- Meddelandetypen (byte 0)
- Motor 1 hastighet (1 byte)
- Motor 2 hastighet (2 byte)
De sistnämnda två byte är självförklarande, men du kanske undrar varför vi med ett "meddelande" byten. Detta är två anledningar, det ger oss möjlighet att expandera vårt protokoll senare att omfatta fler kommandon för ytterligare funktioner samt kontrollera vårt budskap är giltig och inte ett fragment av ett tidigare meddelande.