Verzendcode

Uit OstreaWiki

Ga naar: navigatie, zoeken

Inhoud

De basis

Bij ons verzendsysteem is het natuurlijk van belang dat alles zo snel mogelijk gaat en dat het natuurlijk niet veel te ingewikkeld gaat worden bij het programmeren. Daarom hebben we gekozen om een verzendcode te maken waarbij elke letter en elk teken bestaat uit evenveel piepjes. Omdat ze uit evenveel piepjes bestaan kan de code makkelijker oppikken wanneer een letter eindigt. hierdoor hoeven we geen apart stopsignaal zoals een verlengde pauze in te lassen.

Hoeveel piepjes en hoelang?

Dan volgt ons volgende probleem: Hoeveel piepjes worden het per letter/teken, en hoelang worden die piepjes? om dit op te lossen moesten we eerst weten hoeveel verschillende tekens we gaan verzenden. Doordat de invoer gaat via een draaiwiel leek het ons logisch dat we elke 10 graden een ander teken krijgen. Dit levert ons dan 360/10= 36 verschillende tekens op. Dus gingen we kijken wat het snelste is: veel piepjes die kort zijn of weinig piepjes die lang zijn. We besloten dat na elk piepje een rust werd ingevoerd van 1 periode zodat de software de tijd tussen de piepjes kon oppikken. Wij weten nog niet hoe snel de software is, dus gaan we uit van periodes in plaats van een tijdseenheid. We begonnen met kijken naar welke mogelijkheden de kortste tekens in periodes zou opleveren. Ook rekenden we uit wat de kortst mogelijke tijd zou opleveren als we 36 verschillende tekens achter elkaar zouden verzenden. De rust van 1 seconde per piepje is meegerekend. Zie de tabel hieronder.

Hoeveel verschillende piepjes Hoeveel piepjes per letter De tijdsduur (Laagste - Hoogste) Aantal combinaties Totale tijdsduur verzenden 36 tekens Effectieve verzending
2 6 piepjes 12 - 18 periodes 64 510 periodes 57,6%
3 4 piepjes 8 - 16 periodes 81 380 periodes 62,2%
4 3 piepjes 6 - 15 periodes 64 332 periodes 67,5%
5 3 piepjes 6 - 18 periodes 125 329 periodes 67,2%
6 2 piepjes 4 - 14 periodes 36 324 periodes 77,8%
36 1 piepje 2 - 37 periodes 36 702 periodes 94,9%
8 2 piepjes 4 - 18 periodes 64 312 periodes 76,9%

Door deze berekeningen is het beste dat we elke letter laten bestaan uit twee piepjes met variabele lengtes. We hebben gekozen voor de reeks met de 8 verschillende piepjes. Deze reeks is korter dan die van zes omdat daar maar 36 mogelijkheden waren en we dus automatisch ook het langste signaal van 14 periodes nodig hadden. Door langere piepjes in te voegen zijn er meer combinaties van 10 periodes en 11 periodes, waardoor de langere signalen dus wegvallen en de tijd dus korter wordt. De effectieve verzending wordt lager omdat de tijd korter wordt maar het aantal rustperiodes hetzelfde blijft.

De indeling van de tekens

We hebben dus gekozen voor 36 tekens omdat dit het handigste is bij het invoeren. nu moeten we nog een zo snel mogelijke indeling hebben, dus met andere woorden een indeling waarbij de meest gebruikte letters en tekens korte signalen krijgen en de minst gebruikte letters de langste signalen. Hierbij kun je het best gebruik maken van frequentie analyse, waarbij je kijkt hoe vaak elke letter in een brontekst voorkomt. Deze methode wordt meestal gebruikt bij het decoderen van enkelvoudig versleutelde berichten, maar wij kunnen het nu gebruiken om te kijken naar de volgorde van hoe vaak letters normaal voorkomen.

De volgorde van meest gebruikte letters in het Nederlands is: E, T, A, O, I, N, S, H, R, D, L, U, C, M, W, F, Y, G, P, B, V, K, X, J, Q en Z. Verder moeten hier natuurlijk ook nog de leestekens die we geselecteerd hebben bij. Deze zijn: de punt, de komma, het uitroep teken, het vraagteken, de shift, het apenstaartje, de haakjes, het & teken en de dubbele punt. Hierbij worden de punt, de shift en de komma het meeste gebruikt dus komen die ook hoger in de reeks. De andere tekens zullen minder gebruikt worden en komen dus ook meer achter aan.

De nieuwe reeks word dan ook: E, T, A, O, I, N, ,, ., S, H, R, shift, D, L, U, C, M, ?, W, F, Y, G, B, !, :, @, P, &, (, ), V, K, X, J, Q en Z.Dit is dan ook de volgorde van de letters die we gaan gebruiken. De eerste letters krijgen het korste signaal en de laatste het langste signaal. De letter lengtes zonder rust zijn als volgt: 1 van 2 periodes, 2 van 3 periodes, 3 van 4 periodes, 4 van 5 periodes, 5 van 6 periodes, 6 van 7 periodes, 7 van 8 periodes en 8 van 9 periodes. Verder bleek in de loop van het programmeren dat de spatie niet als rust kon worden genomen dus hebben we die er nog tussen gezet als een teken van 10 periodes. Bij het invoeren verandert er alleen wat, verder niets. Als we dit toepassen op de vorige reeks krijgen we dit:

Lengte tekens Welke tekens
2 periodes E
3 periodes T A
4 periodes O I N
5 periodes , . S H
6 periodes R shift D L U
7 periodes C M ? W F G
8 periodes B Y ! : @ P &
9 periodes ( ) V K X J Q Z
10 periodes spatie

Het resultaat

Met deze resultaten konden we dus een indeling maken. bij deze indeling krijgt elke letter zijn eigen signaal toegewezen dat bestaat uit 2 piepjes van variabele lengte. Hieronder staan alle letters in een tabel.

Letter Lengte eerste signaal Lengte tweede signaal
E 1 periode 1 periode
T 1 periode 2 periodes
A 2 periodes 1 periode
O 1 periode 3 periodes
I 3 periodes 1 periode
N 2 periodes 2 periodes
, 1 periode 4 periodes
. 2 periodes 3 periodes
S 3 periodes 2 periodes
H 4 periodes 1 periode
R 1 periode 5 periodes
Shift 2 periodes 4 periodes
Letter Lengte eerste signaal Lengte tweede signaal
D 3 periodes 3 periodes
L 4 periodes 2 periodes
U 5 periodes 1 periode
C 1 periode 6 periodes
M 2 periodes 5 periodes
 ? 3 periodes 4 periodes
W 4 periodes 3 periodes
F 5 periodes 2 periodes
G 6 periodes 1 periode
B 1 periode 7 periodes
Y 2 periodes 6 periodes
 ! 3 periodes 5 periodes
Letter Lengte eerste signaal Lengte tweede signaal
 : 4 periodes 4 periodes
@ 5 periodes 3 periodes
P 6 periodes 2 periodes
& 7 periodes 1 periode
( 1 periode 8 periodes
) 2 periodes 7 periodes
V 3 periodes 6 periodes
K 4 periodes 5 periodes
X 5 periodes 4 periodes
J 6 periodes 3 periodes
Q 7 periodes 2 periodes
Z 8 periodes 1 periode

De spatie wordt dan 1 periode gevolgd door 9 periodes.

Zoals je ziet hebben de tekens allemaal een verschillende lengtes. Dit is gedaan omdat het dan programma technisch handiger te organiseren is. We hebben de tijd uitgedrukt in periodes omdat we niet weten hoe snel de mindstorms zijn in het verwerken. In het begin gaan we uit van een periode lengte van 1 seconde. We hopen dat dit natuurlijk nog minder wordt zodat de overdracht sneller wordt.

De uiteindelijke periodelengte is ... seconde geworden.

In deze tabellen zijn de rustpozes na 1 piepje niet meegenomen. Deze rustpozes worden 1 periode lang. Doordat de letters allemaal 2 signalen zijn hoeft er geen extra rust worden toegepast voor letterovergang. De spatie wilden we eerst als een dubbele pauze versturen, maar dat lukte softwarematig niet, omdat je dan bijv. geen spatie aan het begin kon typen, en daarnaast verschenen er overal spaties tussen de letters. Nu versturen we de spatie dus als gewoon teken. Ook zit het & teken er in en ziet deze er langer uit dan de combinatie EN. Maar als je de rustpauzes meeneemt zijn ze allebei even lang. Daardoor is hij alsnog handig omdat hij ons invoeren bespaart, daar je maar 1 teken invoert in plaats van 2.


klik hier om terug te gaan naar Maarten van Kalsbeek en Jeroen van Oorschot: lego mindstorms modem

Ontvangen van "Verzendcode"
Persoonlijke instellingen
Naamruimten
Varianten
Handelingen
Navigatie
Hulpmiddelen