Go Down

Topic: Semplice rete neurale per Arduino 2 (Read 14 times) previous topic - next topic

ratzeni

@yoshi93
per quanto riguarda le funzioni carica pesi/salva pesi, vorrei provare ad utilizzare una micro SD.
Ho un SD socket sparkfun e sto studiando i consigli sul forum per riuscire a farla funzionare senza bruciare tutto  :).
Appena faccio passi avanti aggiorno il forum.
ciao a tutti

yoshi93

@ratzeni
prova pure, io non ti fermo  :). Appena finisco con gli esami mi rimetto al lavoro per completare le librerie python per la comunicazione seriale tramite byte.

yoshi93

#137
Jul 10, 2013, 06:13 pm Last Edit: Jul 11, 2013, 02:17 pm by yoshi93 Reason: 1
Ho un problema con questo sketch:
Code: [Select]

#include <ByteSerial.h>

int count=0;

void setup()
{
 Serial.begin(9600);
}

void loop()
{
 float in=getFloat();
 Serial.println(in);
 Serial.flush();
}

che fa uso della libreria ByteSerial che trovate nel download.
L'output è:
Code: [Select]

223
3
22
70
0.00

dove al posto di 0.00 dovrei trovare 9600.968 . I valori prima sono i vari byte che compongono il dato e sono stampati dalla funzione getFloat() stessa come debug. Usando questo tool: http://www.h-schmidt.net/FloatConverter/ ho verificato che i valori sono corretti (70 equivale al byte più significativo) però allora perchè arduino fallisce nella conversione?
I valori sono contenuti in un array di unsigned char percui sono byte e quindi sono numerici a tutti gli effetti (70 non è ad esempio '70').

Faccio notare che per le prove sto usando arduino UNO.

lesto

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

yoshi93

È nei file allegati comunque:
Code: [Select]

float getFloat()
{
    unsigned long d;
    unsigned char inbox[4];
    for(int i=0;i<4;i++)
    {
        while(!Serial.available()){}
        inbox[i]=Serial.read();
    }
    for(int i=0;i<4;i++)
    {
        Serial.println(inbox[i]);
    }
    d=(inbox[3] << 24) | (inbox[2] << 16) | (inbox[1] << 8) | (inbox[0]);
    float member = *(float *)&d;
    return member;
}

Go Up