Home > Uncategorized > Kóðinn

Kóðinn

Til þess að koma letri á töfluna þurfti að leggjast í mikla kóðavinnu. Fyrst var búið til fall í matlab sem tók inn tvo punkta p1 og p2 og síðan upphafsstaðsetningu pennans. Kallað var í fallið á þennan hátt hér, [faerslan,vx,vy]=faersla(p1,p2,vx,vy). Breytan ‘faerslan’ voru þær upplýsingar sem sendar voru til arduino borðsins og voru á forminu -3000+1000n þar sem formerkin tákna snúningsátt mótoranna og tölurnar fjölda skrefa sem átti að taka á hvorum mótor. Hver hringur á mótorunum var 2000 skref. Í inntaksstikunum p1 og p2 voru einnig upplýsingar um hvort penninn ætti að vera uppi eða niðri í hreyingunni á milli punktanna og gefur síðasti bókstafurinn í ‘faerslan’ það til kynna n fyrir niðri og u fyrir uppi. Þá var færslu fallið komið.

Nú þurfti að fá letur sem hægt væri að breyta í einfaldar punktafærslur. Fundum við library á netinu sem er með mörg þúsund tákn sem búið er að breyta á svona punktaform. Settið er hægt að finna hér: http://paulbourke.net/dataformats/hershey/. Hver stafur er táknaður með streng og tökum við dæmi um stafinn H til þess að útskýra hvernig þetta gengur fyrir sig. Strengurinn fyrir H lítur þá svona út.

8 9MWOMOV RUMUV ROQUQ

Þar sem fyrsti tölustafurinn táknar númer stafs í skjalinu. Næsti tölustafur fjölda hnútpunkta í skjalinu. Síðan koma pör af bókstöfum ‘MW’ táknar því einn punkt og eru hnitin reiknuð út frá miðju stafrófsins eða ‘R’. ‘MW’ er þá upphafspunktur stafsins og er byrjað að teikna þaðan, síðan koma næstu punktar koll af kolli. Þegar runa byrjar á bókstafnum ‘R’ segir það okkur að lyfta þarf pennanum áður en hann er færður í næsta hnit. ‘MW’ er þá t.d. hnitið ‘M’-‘R’=-5 og ‘W’-‘R’=5 og út fæst [-5,5]. Búið var til forrit sem tók inn þessa stafi og breytti hverjum og einum þeirra í runu af punktum sem síðan voru settir inn í teikniðfallið ‘faerslan’. Var þá öllum stöfunum breytt yfir á form sem stepperarnir gátu skilið.

Síðan var að lokum búið til fall sem gat lesið inn streng t.d. MAGNUS og breytt hverjum staf í punktaform sem síðan kallaði í færslufallið og breytti yfir í færslu fyrri mótoranna. Dæmi um kóðann sem skrifar MAGNUS fylgir hér.

function [hlidrun]=texti(textinn,vx,vy)
hlidrun=[];
for i=1:length(textinn)

	if textinn(i)==' '
		[stafur]=stafir(27)
	else
		a=double(textinn(i))
		%Köllum í fallið sem býr til punktanna fyrir stafina
		stafur=stafir(a-96)
		%Skoðum hvernig hver stafur lítur út
		plot(stafur(:,1),stafur(:,2))
		%Til þess að sjá stafina í plottinu er beðið í tvær sekúndur
		pause(2)
		[n,m]=size(stafur)
		for k=1:n-1
			%Færsla fyrir hvernig punkt reiknuð út fyrir hvern staf
			[faerslan,vx,vy]=faersla(stafur(k,:),stafur(k+1,:),vx,vy)
			%Sett inn í fylki
			hlidrun=[hlidrun;faerslan];
		end
	end
end

Var þá textinn magnús skrifaður á eftirfarandi hátt með því að kalla í eftirfarandi:

[hlidrun]=texti('magnus',vx,vy)

Þar sem vx og vy eru þau hnit sem við byrjum í.

Útkoman úr þessu er þá:

hlidrun =

+0615-0950n
-0615+0950u
+0960-1086n
-0245+0778u
+0245-0778n
-0245+0778u
+0593-0928n
-0621+0568u
+0442-0195u
+0265-0784n
-0265+0784u
+0956-1090n
-0727+0547u
+0349-0157n
-0243+0183u
+0440-0208u
-0244+0188n
-0177+0083n
-0108-0024n
+0050-0170n
+0209-0313n
+0226-0246n
+0241-0179n
+0171-0077n
+0103+0022n
-0205+0308n
-0261+0123u
+0261-0123n
-0348+0163u
+0436-0205u
+0623-0923n
-0623+0923u
+1138-1178n
-0608+0907u
+0608-0907n
-0535+0538u
+0437-0227u
+0409-0604n
+0225-0247n
+0242-0192n
+0086-0047n
+0105+0004n
-0048+0149n
-0398+0590n
-0020-0296u
+0439-0246u
-0243+0199n
-0176+0098n
-0107-0004n
+0069-0100n
+0156-0147n
+0485-0391n
+0155-0148n
+0138-0199n
-0103-0004n
-0171+0093n
-0241+0192n
+0048+0163u
+0436-0246u

Það eina sem er þá eftir er þá að skrifa þessu gögn inn á serial portið og er það gert með fprintf(S,hlidrun). Og fáum við þá fylgjandi mynd.

Myndband af því hvernig þetta er gert fylgir síðan hér að neðan.

Advertisements
Categories: Uncategorized
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: