Salve,sto facendo alcuni esperimenti con delle trasmissioni di dati utilizzando degli impulsi di luce.
Converto tutte le lettere in binario e poi le trasmetto attraverso delle pulsazionia d un altro arduino che dovrebbe leggere.
Io ho sempre programmato in java,quindi per me la divisione di una stringa in array è cosa comune,ma a quanto sembra su Arduino non è così semplice.
Ho questo file “dizionario.txt” che contiene una lista di caratteri da comparare per decodificare (lo so,è rudimentale,ma ci sto lavorando da ieri,è ancora molto acerbo come progetto,per ora però il trasmettitore funziona bene).
il suo contenuto è:
space,!,",#,$,%,&,’,(,),*,+,–,–,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,],^,,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,},|,{,~_
00100000,00100010,00100011,00100100,00100101,00100110,00100111,00101000,00101001,00101010,00101011,00101100,00101101,00101110,00101111,00110000,00110000,00110001,00110010,00110011,00110100,00110101,00110110,00110111,00111000,00111001,00111010,00111011,00111100,00111101,00111110,00111111,01000000,01000001,01000010,01000011,01000100,01000101,01000110,01000111,01001000,01001001,01001010,01001011,01001100,01001101,01001110,01001111,01010000,01010001,01010010,01010011,01010100,01010101,01010110,01010111,01011000,01011001,01011010,01011011,01011100,01011101,01011110,01011111,01100001,01100010,01100011,01100100,01100101,01100110,01100111,01101000,01101001,01101010,01101011,01101100,01101101,01101110,01101111,01110000,01110001,01110010,01110011,01110100,01110101,01110110,01110111,01111000,01111001,01111010,01111011,01111100,01111101,01111110,01111111
Praticamente,i due macro insiemi,sono divisi da “_”,quindi arduino inizialmente,dovrebbe crearmi due stringhe grosse,per poi,successivamente,dividere queste due stringhe in altri due array nei punti dove si trova “,” (dovrei fare l’escape di questo carattere nell’elenco mediante i due “–” che circondano la virgola nella lista ASCII).
Ho provato ad utilzzare il comando split,preso dal sito di processing,ma non funziona. Come posso fare,sempre se è possibile? Stavo pensando anche creare degli array e dichiararli come costanti,ma volevo usare il lettore SD perchè l’ho comprato mesi fa e praticamente non ho mai avuto modo di utilizzarlo…
Questo è il codice che ho scritto per ora.
#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
Serial.begin(9600);
// put your setup code here, to run once:
if (!SD.begin(4)) {
Serial.println(“inizializzazione fallita!”);
return;
}
Serial.println(“inizializzazione riuscita”);
myFile = SD.open(“dizionario.txt”);
String dizionarioRAW = myFile.readString();
String dizionarioSemiRaw = split(dizionarioRAW,"_");
String dizionariocompiledASCI = split(dizionarioSemiRaw[0],",");
String dizionariocompiledBIN = split(dizionarioSemiRaw[1],",");}
void loop() {
// put your main code here, to run repeatedly:}
Scusate per la domanda stupida,da sviluppatore quasi mi vergogno a chiedere una cosa del genere…