Show Posts
Pages: 1 ... 26 27 [28] 29 30 ... 392
406  International / Hardware / Re: si può fare un gps preciso al centimetro? on: June 25, 2014, 02:02:29 pm
Concordo con Icio e ...

... mi sembra anche molto poco probabile che si riesca a fare qualche di veramente funzionante con Arduino, vista la scarsissima precisione delle variabili "floating point" e il loro largo uso che normalmente se ne fa nei calcoli con il GPS.

Guglielmo
407  International / Generale / Re: [TUTORIAL] Orologio/Cronometro con RTC e collegamento ad Internet (Parte 2 di 2) on: June 25, 2014, 01:48:32 pm
Scusa è, ma se prendi il programma così come è (l'ho messo un po' in ordine) :

Code:
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

byte glyphs[5][8] = { {B11111,B11111,B00000,B00000,B00000,B00000,B00000,B00000},
                      {B00000,B00000,B00000,B00000,B00000,B00000,B11111,B11111},
                      {B11111,B11111,B00000,B00000,B00000,B00000,B11111,B11111},
                      {B11111,B11111,B11111,B11111,B11111,B11111,B11111,B11111},
                      {B00000,B00000,B00000,B00000,B00000,B01110,B01110,B01110},
                    };
                    
const int digitWidth = 3;

const char bigDigitsTop[10][digitWidth]={3,0,3, 0,3,32, 2,2,3, 0,2,3, 3,1,3,
                                         3,2,2, 3,2,2,  0,0,3, 3,2,3, 3,2,3};
                                        
const char bigDigitsBot[10][ digitWidth]={3,1,3, 1,3,1, 3,1,1, 1,1,3, 32,32,3,
                                          1,1,3, 3,1,3, 32,32,3, 3,1,3, 1,1,3};
                                          
char buffer[12];


void setup ()
{
   lcd.begin(20,4);
   for(int i=0; i < 5; i++) lcd.createChar(i, glyphs[i]);
   delay(1000);
}


void loop ()
{
   int number = millis() / 1000;
   showNumber( number, 0);
   delay(1000);
}


void showDigit(int digit, int position)
{
   lcd.setCursor(position * (digitWidth + 1), 0);
   for(int i=0; i < digitWidth; i++) lcd.write(bigDigitsTop[digit][i]);
   lcd.setCursor(position * (digitWidth + 1), 1);
   for(int i=0; i < digitWidth; i++) lcd.write(bigDigitsBot[digit][i]);
}


void showNumber(int value, int position)
{
   int index;
   itoa(value, buffer, 10);
   for(index = 0; index < 10; index++) {
      char c = buffer[index];
      if( c == 0) return;
      c = c - 48;
      showDigit(c, position + index);
   }
}

... e lo lanci ... non ti appaiono dei numeri ogni secondo ???

Se SI ... studiati cosa fa il ciclo loop() ... è di una banalità unica !!!

Guglielmo

P.S. : Ma a te lo compila ? perché a me da un errore ... probabilmente la mia LiquidCrystal_I2C non è aggiornata ...  smiley-roll
408  International / Generale / Re: robot comandato da cellulare on: June 25, 2014, 12:13:13 pm
...
e infine 2 pin per il moduletto bluetooth (10-0(?)/1(?)/e possibile utilizzare un analogico?)
E possibile? smiley-neutral

Dipende su che Arduino sei ...
... nel reference della SoftwareSerial ci sono chiaramente indicate le limitazioni in funzione delle varie board.

Se sei su un Arduino UNO ... non ci sono problemi, per la mega2560 e la Leonardo, ci sono alcune restrizioni.

Guglielmo
409  International / Software / Re: Badge RFID a scalare on: June 25, 2014, 07:39:06 am
Ma no, anzi, così è ancora più semplice ...
... la programmazione la fai su un PC, ci connetti un lettorino di badge da pochi soldi e hai risolto.

Guglielmo

P.S. : Naturalmente ... ricordati di fare il backup del PC altrimenti, in caso di guasto, i saldi ... li perdi tutti  smiley-mr-green smiley-mr-green smiley-mr-green
410  International / Software / Re: Badge RFID a scalare on: June 25, 2014, 07:31:35 am
Sicuro di voler conservare il "SALDO" sul badge ???

Non mi è mai piaciuta l'idea ...
... primo offri un pessimo servizio al cliente ... se si perde il "badge" si perde i soldi e questo non è bello
... secondo, se trovi uno un po' furbo, forse riesce a manipolare il tuo "badge" RFID ed ad aggiustarsi il SALDO !

Il mio suggerimento è che usi i badge (RFID o meno) per identificare la persona, ma il saldo lo conservi TU sul tuo server così ... non hai problemi di frodi e, se il cliente si perde il badge, al solo costo di quest'ultimo, glie ne dai un altro nuovo con il suo saldo intatto (... e il cliente è contento e ti ringrazia).

Poi ... vedi tu ...  smiley-roll

Guglielmo
411  International / Generale / Re: cambiare sempre avrdude on: June 25, 2014, 06:13:53 am
... oppure non hanno implementato proprio questi due comandi o ancora potrebbero aver inserito un meccanismo di conversione jump/call->comando compatibile noP, cioè quando il compilatore trova un jump o un call lo trasforma automaticamente in un qualche comando equivalente gestito dai noP; fantasticherie?

No, più semplicemente, potrebbero NON averle proprio prese in considerazione, utilizzando altre istruzioni (che esistono su tutti i 328) per fare la stessa cosa ... esempio, aver usato in qualche modo la RJMP (Relative Jump) o la IJMP (Indirect Jump), RCALL (Relative Subroutine Call) o la ICALL (Indirect Call).

Del resto, il compilatore deve tradurre il tuo codice C/C++ in una serie di istruzioni macchina, quindi ... se le aggiusta come crede  smiley-lol smiley-lol smiley-lol

Guglielmo
412  International / Generale / Re: cambiare sempre avrdude on: June 25, 2014, 05:37:42 am
Mi prendi per i fondelli? smiley-twist approfitti della mia ignoranza per dire quello che ti pare visto che non posso controbattere, cattivissimo  smiley-sad-blue

Assolutamente NO Michele ...
... è che ho veramente pensato che magari, quei paracuxx ... quei furbetti che hanno implementato il compilatore, per evitare casini, magari quelle due istruzioni NON le hanno proprio prese in considerazione ....  smiley-roll

Ma è solo un mio cattivo pensiero ...  smiley-twist
... come dice Leo occorrerebbe verificare il codice assembler generato in tutte le varie condizioni, compresi i vari livelli di ottimizzazione  smiley-roll

Guglielmo
413  International / Software / Re: SAM3X8E (Arduino DUE) manipolazione registri PIO on: June 25, 2014, 05:33:51 am
sisi ... dicevo solo che sarebbe stato utile mettere un appunto nel datasheet tipo "in SAM3X8E this pin is not connected"  smiley-grin

NO, non ci capiamo, il pin E' connesso e quindi il datasheet di Atmel E' corretto !!!

E' su Arduino DUE che il pin, presente sul chip, non è collegato a nulla e quindi non lo puoi usare ...
... più chiaro ora ???  smiley-roll

Guglielmo
414  International / Software / Re: SAM3X8E (Arduino DUE) manipolazione registri PIO on: June 25, 2014, 05:01:27 am
@ pablos : credo che Leo si riferisca ad Arduino DUE non al collegamento nel chip ... quel pin non è stato collegato, quindi non è accessibile tramite le varie header della DUE ...

Se guardi lo schema della DUE vedi che il pin 69, NRST riporta "N.C. - internal pullup" ...  smiley-roll

Guglielmo
415  International / Hardware / Re: Connessione wireless Arduino - PC con NRF24LU1 e NRF24L01 on: June 25, 2014, 04:50:43 am
Hai letto sul sito di SparkFun, per QUESTO prodotto, che mi sembra simile al tuo, i commenti ???

In particolare il secondo commento, quello di Mike B. :

Quote
To get this thing working over usb, I had to contact Nordic Semi’s tech support and ask for a usb-to-uart .hex firmware and driver. To actually install the firmware to the chip, You have to grab Nordic Semi’s nRFGo Studio (should be free). Included with the studio was the Bootloader driver (nRF24LU1P-F32 BOOT LDR driver), and the software needed to upload another hex file. I installed the driver and the dongle appearred in nRFGo Studio as a “bootloader”. From there, I uploaded the usb-to-uart .hex firmware into the dongle. I removed and replaced it from the computer and it tried to install a new driver - the one I got from tech support. After that, the dongle showed up as a serial COM device and I could access it through Processing and spit data.

Poi guarda anche il primo commento e vedi se nel nuovo SDK magari è inclusa qualche cosa che può esserti utile.

Guglielmo
416  International / Generale / Re: cambiare sempre avrdude on: June 25, 2014, 04:44:35 am
... solo che mi pare strano che tra i tanti firmware che ho provato, alcuni estremamente potenti, non ci fosse almeno un jump o un call, ripeto, sono solo prove pratiche.

... sai che mica mi meraviglierebbe che ... il compilatore, per "tagliare la testa al toro" ... non le usi mai ... così il codice va sempre bene  smiley-mr-green smiley-mr-green smiley-mr-green

Guglielmo
417  International / Generale / Re: come faccio a controllare un carattere con un pulsante? on: June 25, 2014, 04:38:17 am
Ma hai incominciato con gli inizi (4004) ???

Stiamo andando parecchio off-topic ...  smiley-lol

... SI, Intel i4004 e poco dopo, Fairchild F8 e Intel i8008 ... poi a seguire Intel i8080, Zilog Z80, MOS 6502, Zilog Z8000, di sfuggita Motorola 68000 e poi Intel 8086, i386, e via dicendo smiley

La tesi l'ho fatta invece, per chi se li ricorda, con i bit-slice della serie AMD 2900 smiley-wink

Guglielmo

P.S. : ... se mi metto a cercare, in cantina ho ancora scatolette con dentro CPU/Periferiche dell'epoca  smiley-mr-green smiley-mr-green smiley-mr-green
418  International / Generale / Re: cambiare sempre avrdude on: June 25, 2014, 04:21:05 am
@ Guglielmo: cuò che affermi riguardo le differenze tra i due micro è vero: in una vecchissima discussione con Astro uscì fuori che oltre alle istruzioni picoPower mancavano almeno un altro paio di comandi che avrebbero potuto creare problemi, la storia pratica però sembra smentire tutto ciò in quanto ho verificato che i comandi picoPower vengono semplicemente ignorati, mentre non mi è mai capitato un crash o un comportamento strano di questo micro, Pensa che per un paio di mesi gli ho messo il bootloader della UNO, l'ho inserito al posto del micro originale e sulla UNO c'ho messo su ogni cosa possibile, senza mai avere problemi. Le mie non sono affermazioni "scientifiche" ma solo "pratiche" quindi vanno comunque prese con le dovute cautele.

Michele ... non so che dirti ...
... la cosa è chiaramente indicata sul datasheet del Atmega328, anche di edizione recente (8271G–AVR–02/2013), pagina 626, le istruzione marcate con nota (1) ... praticamnete la JMP (Direct Jump) e la CALL (Direct Subroutine Call).

La nota 1 recita testualmente :

Quote
Note: 1. These instructions are only available in ATmega168PA and ATmega328P.

Poi ... ciascuno, a proprio rischio e pericolo ... fa come vuole ...
... io mi limito a riportare fedelmente quello che dice Atmel ... smiley-lol smiley-lol smiley-lol

Guglielmo

P.S. : ... ed un conto è se vengano ignorati i comandi picoPower, un altro ... se vengono ignorati JMP e CALL ...  smiley-twist
419  International / Generale / Re: come faccio a controllare un carattere con un pulsante? on: June 25, 2014, 04:11:40 am
Io andavo su MOS 65xx e i8086  smiley-wink

... ma io sono più vecchio di te  smiley-razz smiley-razz smiley-razz smiley-lol smiley-lol smiley-lol

Guglielmo
420  International / Hardware / Re: Connessione wireless Arduino - PC con NRF24LU1 e NRF24L01 on: June 25, 2014, 03:47:28 am
...
il mio problema che ad oggi non sono riuscito a risolvere nonostante tutte le mie prove, è che non riesco a configurare e gestire il modulo che va collegato al pc. Non riesco a capire come configurare il modulo NRF24lu1+ che riceve i dati ...

Non ho il modulo di cui parli per cui vado ... a naso  smiley-mr-green, ma immagino che il NRF24lu1 sia montato su una schedina che, tramite una USB tu colleghi al PC ... giusto ?

In tal caso, se hai installato correttamente i driver, immagino che tu dovresti vedere il modulo come una porta seriale COMx: e quindi ci dovresti poter parlare tramite detta porta ...  smiley-roll

Guglielmo
Pages: 1 ... 26 27 [28] 29 30 ... 392