{"id":116,"date":"2013-09-06T11:54:42","date_gmt":"2013-09-06T10:54:42","guid":{"rendered":"http:\/\/casali145.no-ip.org\/?page_id=116"},"modified":"2023-02-10T04:30:56","modified_gmt":"2023-02-10T03:30:56","slug":"parte-software","status":"publish","type":"page","link":"https:\/\/lizzit.it\/it\/the-light-cryptalk\/parte-software\/","title":{"rendered":"Software side"},"content":{"rendered":"<p>Il mio apparecchio intende simulare la enigma &#8220;german railway&#8221; a 3 rotori; altri limiti che ho imposto sono la limitazione a 16 caratteri del messaggio ( l&#8217;LCD \u00e8 16 X 2 ).<\/p>\n<p>La trasmissione inizia quando sulla tastiera viene battuto il tasto invio.<br \/>\nTrasmettitore<\/p>\n<p>Per leggere i dati dalla tastiera ho usato la libreria , mentre per l&#8217; LCD HD64480 la Non disponendo di commutatori a 26 posizioni (per simulare le posizioni dei rotori della macchina Enigma), per evitare di consumare una grande quantit\u00e0 di ingressi ho usato 3 potenziometri, uno per ogni rotore: ho trasformato il valore analogico letto dall&#8217;ingresso( 0 -&gt; 1023 10 bit) in 26 &#8220;posizioni&#8221; virtuali; con un interruttore commuto sull&#8217;LCD la visualizzazione del testo trasmesso con quella dello stato dei rotori.<br \/>\nI &#8220;Rotori di scambio &#8221; sono memorizzati in liste di 26 elementi.<br \/>\nPer facilitarmi la gestione queste liste non sono composte da caratteri ma da numeri che ho messo in sostituzione delle lettere ( con la corrispondenza di A = 1 , B = 2; &#8230;)<br \/>\nIl cambio di posizione dei rotori non viene simulato facendo scorrere gli elementi al suo interno ma &#8220;spostando&#8221; il collegamento tra un rotore e il successivo.<\/p>\n<p>Una volta cifrato, il messaggio viene convertito in codice morse;<br \/>\ndefinito un impulso di tempo t di 100 millisecondi per il punto, la linea \u00e8 un impulso T*3, la pausa t e la fine parola t*3 .<br \/>\nTutto pronto ora per l&#8217;invio all&#8217;uscita di Arduino: l&#8217;uscita PWM resta ON per il tempo programmato ( punto, linea ) ma al 50%, cio\u00e8 varia tra 0 e 128 e non tra 0 e 255. Con questo sistema il led di potenza, quando \u00e8 ON lampeggia con una frequenza di 1 kHz ( propria di Arduino Due ); questo metodo mi ha aiutato a distinguere sul ricevitore il mio segnale da altri disturbi<br \/>\nRicevitore<\/p>\n<p>Il lavoro pi\u00f9 grosso sul segnale ricevuto \u00e8 fatto dalla parte hardware &#8230;(vedi descrizione relativa); il segnale in uscita al tone decoder sembrava gi\u00e0 perfetto e pulito dai disturbi quando accendendo la luce a risparmio energetico della mia camera ( dove facevo gli esperimenti) mi sono accorto di un picco indesiderato e ripetitivo nel segnale<\/p>\n<figure id=\"attachment_109\" aria-describedby=\"caption-attachment-109\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"https:\/\/lizzit.it\/wp-content\/uploads\/2014\/06\/distrubo_lm567_scattata_in_SD.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-109 \" src=\"https:\/\/lizzit.it\/wp-content\/uploads\/2014\/06\/distrubo_lm567_scattata_in_SD.jpg\" alt=\"Disturbo in uscita LM567 provocato dalle lampade a fluorescenza\" width=\"300\" height=\"225\" \/><\/a><figcaption id=\"caption-attachment-109\" class=\"wp-caption-text\">Disturbo in uscita LM567 provocato dalle lampade a fluorescenza<\/figcaption><\/figure>\n<figure id=\"attachment_110\" aria-describedby=\"caption-attachment-110\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/lizzit.it\/wp-content\/uploads\/2014\/06\/output_lm567_scattata_in_SD.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-110 \" src=\"https:\/\/lizzit.it\/wp-content\/uploads\/2014\/06\/output_lm567_scattata_in_SD.jpg\" alt=\"Output LM567\" width=\"300\" height=\"225\" \/><\/a><figcaption id=\"caption-attachment-110\" class=\"wp-caption-text\">Output LM567 durante la trasmissione<\/figcaption><\/figure>\n<p>che si presenta ogni 20 millisecondi (50Hz).<br \/>\nHo risolto il problema con una doppia lettura dell&#8217;ingresso, scartando quindi le brevi variazioni.<br \/>\nPer analizzare il segnale ho usato la funzione pulseIn;<\/p>\n<p>Ho convertito la serie di punti e di linee in lettere;<br \/>\na questo punto, come ho fatto per il trasmettitore, conversione di caratteri in numeri, passaggio dei valori attraverso le funzioni rotori e il sistema di &#8220;scorrimento dei collegamenti&#8221; e invio a display LCD.<\/p>","protected":false},"excerpt":{"rendered":"<p>Il mio apparecchio intende simulare la enigma &#8220;german railway&#8221; a 3 rotori; altri limiti che ho imposto sono la limitazione a 16 caratteri del messaggio ( l&#8217;LCD \u00e8 16 X 2 ). La trasmissione inizia quando sulla tastiera viene battuto il tasto invio. Trasmettitore Per leggere i dati dalla tastiera ho usato la libreria , [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":26,"parent":34,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-116","page","type-page","status-publish","has-post-thumbnail","czr-hentry"],"_links":{"self":[{"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/pages\/116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/comments?post=116"}],"version-history":[{"count":2,"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/pages\/116\/revisions"}],"predecessor-version":[{"id":1161,"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/pages\/116\/revisions\/1161"}],"up":[{"embeddable":true,"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/pages\/34"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lizzit.it\/it\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/lizzit.it\/it\/wp-json\/wp\/v2\/media?parent=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}