Notevole lavoro
Complimenti
Notevole lavoro
Complimenti
bel lavoro, posso usare il tuo codice riadattandolo alle mie esigenze e fare qualche prova?
Ciao nikolo02,
ti consiglio prima di verificarlo collegando Arduino con una shield SD/uSD.
Certo usalo pure, poi condividi se ci sei riuscito.
Grazie ![]()
Grazie mille, gentilissimo🙃
Ciao @nikolo02 hai news sul tuo progetto cubesat?
Ciao @jampag purtroppo tra lavoro e scuola dove devo scrivere ancora la tesi non ho avuto molto tempo per ragionarci su. ho fatto una prova con serialtransfer ma quando provo a fare il trasferimento non funziona e dal monitor seriale non riesco a leggere nulla.
mentre per il tuo codice mi serve un pochino di aiuto per capirlo e riadattarlo
.
allego comunque il codice con serialTransfer.
TRASMETTITORE
#include <SPI.h>
#include <SD.h>
#include <SoftwareSerial.h>
#include "SerialTransfer.h"
#define SD_CS 10 // Pin chip select della scheda SD
#define TX_PIN 2 // Pin TX per SoftwareSerial (collegato a RX del ricevente)
#define RX_PIN 3 // Pin RX per SoftwareSerial (collegato a TX del ricevente)
SoftwareSerial softSerial(TX_PIN, RX_PIN);
SerialTransfer myTransfer;
File jpgFile;
void setup() {
Serial.begin(115200); // Per debug
softSerial.begin(9600); // Comunicazione con l'altro Arduino
myTransfer.begin(softSerial);
if (!SD.begin(SD_CS)) {
Serial.println("Errore nella lettura della SD!");
while (1);
}
jpgFile = SD.open("immagine.jpg");
if (!jpgFile) {
Serial.println("Errore apertura file JPG");
while (1);
}
Serial.println("Inizio trasferimento...");
}
void loop() {
uint8_t buffer[100]; // Blocchi di 100 byte (SoftwareSerial è più lenta)
uint16_t bytesRead;
while (jpgFile.available()) {
bytesRead = jpgFile.read(buffer, sizeof(buffer)); // Legge i dati dal file
myTransfer.txObj(buffer, bytesRead); // Impacchetta i dati
myTransfer.sendData(bytesRead);
delay(50); // Attendere per evitare buffer overflow
}
jpgFile.close();
Serial.println("File trasferito!");
while (1); // Stop loop
}
RICEVITORE
#include <SPI.h>
#include <SD.h>
#include <SoftwareSerial.h>
#include "SerialTransfer.h"
#define SD_CS 10 // Pin chip select della scheda SD
#define TX_PIN 2 // Pin TX per SoftwareSerial (collegato a RX del mittente)
#define RX_PIN 3 // Pin RX per SoftwareSerial (collegato a TX del mittente)
SoftwareSerial softSerial(TX_PIN, RX_PIN);
SerialTransfer myTransfer;
File jpgFile;
void setup() {
Serial.begin(115200); // Debug
softSerial.begin(9600); // Comunicazione con il mittente
myTransfer.begin(softSerial);
if (!SD.begin(SD_CS)) {
Serial.println("Errore nella lettura della SD!");
while (1);
}
jpgFile = SD.open("ricevuto.jpg", FILE_WRITE);
if (!jpgFile) {
Serial.println("Errore creazione file JPG");
while (1);
}
Serial.println("In attesa di dati...");
}
void loop() {
if (myTransfer.available()) {
uint8_t buffer[100];
myTransfer.rxObj(buffer, myTransfer.bytesRead); // Riceve i dati
jpgFile.write(buffer, myTransfer.bytesRead); // Scrive sulla SD
}
}