Loading...
  Show Posts
Pages: [1] 2 3 ... 44
1  International / Software / Re: primi passi... on: March 24, 2013, 06:38:39 am
Cominciamo col dire che l'analogRead() richiede solo un paramentro e cioè la porta di cui vuoi leggere il valore. Avrai di ritorno un valore compreso tra 0 e 1023. Le porte a cui fare riferimento per la lettura analogica sono appunto le analogiche: A0, A1, A2, An..
Quindi non puoi usare il pin 1 a questo scopo, sia perchè non è analogico ed in secondo luogo perchè insieme allo 0 è utilizzato per il caricamento dei tuoi sketch.

Hai detto che vuoi attivare il pin 13 quando hai un valore alto su di un altro ingresso, quindi devi verificarne lo stato prima di agire:
Code:
se pin analogico è alto:
          attiva pin 13

Che si traduce in:
Code:
if(analogRead(Ax)==1023){
          digitalWrite(13,1);
       }

Gira un po' nel reference tra le voci digitalRead(), digitalWrite(), analogWrite() ed analogRead()
2  International / Hardware / Re: HC-SR04, Dubbi su misurazioni. on: March 21, 2013, 04:50:44 pm
uhmm ma quindi non sai come misurare quest'angolo e chiedi se il sensore da te citato te lo possa tornare?
comunque ipotizzando che la forma del robot sia quadrata potresti posizionare due sensori IR di prossimità ai due angoli, se misurano la stessa distanza sei parallelo al muro altrimenti dovresti riuscire a calcolare lo "sfasamento" in base a quale dei due rileva più o meno distanza!
3  International / Hardware / Re: RS485 per programmare ATmega on: March 21, 2013, 04:34:38 pm
 smiley-sweat

Direi che ora rimanga il problema del reset:
O compro un altro convertitore che abbia un pinout sul reset (non fatemelo fare, vi prego), oppure..?
4  International / Hardware / Re: RS485 per programmare ATmega on: March 19, 2013, 11:55:33 am
No la compilazione la fa, il problema sta appunto nel sorgente in cui avrò sbagliato qualcosa!  smiley-sweat

2- Il problema sta nel fatto che sul convertitore non ho un "buco" che vada al reset o agli altri pin del ft232! (non si chiama pinout?)
5  International / Hardware / Re: RS485 per programmare ATmega on: March 19, 2013, 08:46:07 am
Ho letto che su windows c'è il file omake.bat all'interno della cartella optiboot quindi si può fare, ma ho riscontrato un problema dovuto a qualche errore di sintassi all'interno di optiboot.c, allego anche lo screen.

Tolgo un po' di roba a caso altrimenti non rientro con il numero di caratteri, le modifiche sono in maiuscolo:
Code:
int main(void) {

  // Adaboot no-wait mod
  ch = MCUSR;
  MCUSR = 0;
  if (!(ch & _BV(EXTRF))) appStart();
[b]DDRD |=B0000100;  [/b]
#if LED_START_FLASHES > 0
  // Set up Timer 1 for timeout counter
  TCCR1B = _BV(CS12) | _BV(CS10); // div 1024
#endif

}

void putch(char ch) {
[b]PORTD |=B0000100;[/b]
#ifndef SOFT_UART
  while (!(UCSR0A & _BV(UDRE0)));
  UDR0 = ch;
#else
  __asm__ __volatile__ (
    "   com %[ch]\n" // ones complement, carry set
    "   sec\n"
    "1: brcc 2f\n"
    "   cbi %[uartPort],%[uartBit]\n"
    "   rjmp 3f\n"
    "2: sbi %[uartPort],%[uartBit]\n"
    "   nop\n"
    "3: rcall uartDelay\n"
    "   rcall uartDelay\n"
    "   lsr %[ch]\n"
    "   dec %[bitcnt]\n"
    "   brne 1b\n"
    :
    :
      [bitcnt] "d" (10),
      [ch] "r" (ch),
      [uartPort] "I" (_SFR_IO_ADDR(UART_PORT)),
      [uartBit] "I" (UART_TX_BIT)
    :
      "r25"
  );
#endif
[b]PORTD &=B1111011;[/b]
}

uint8_t getch(void) {
[b] PORTD &=B1111011;[/b]
  uint8_t ch;

#ifdef LED_DATA_FLASH
#ifdef __AVR_ATmega8__
  LED_PORT ^= _BV(LED);
#else
  LED_PIN |= _BV(LED);
#endif
#endif

#ifdef SOFT_UART
  __asm__ __volatile__ (
    "1: sbic  %[uartPin],%[uartBit]\n"  // Wait for start edge
    "   rjmp  1b\n"
    "   rcall uartDelay\n"          // Get to middle of start bit
    "2: rcall uartDelay\n"              // Wait 1 bit period
    "   rcall uartDelay\n"              // Wait 1 bit period
    "   clc\n"
    "   sbic  %[uartPin],%[uartBit]\n"
    "   sec\n"
    "   dec   %[bitCnt]\n"
    "   breq  3f\n"
    "   ror   %[ch]\n"
    "   rjmp  2b\n"
    "3:\n"
    :
      [ch] "=r" (ch)
    :
      [bitCnt] "d" (9),
      [uartPin] "I" (_SFR_IO_ADDR(UART_PIN)),
      [uartBit] "I" (UART_RX_BIT)
    :
      "r25"
);
#else
  while(!(UCSR0A & _BV(RXC0)))
    ;
  if (!(UCSR0A & _BV(FE0))) {
      /*
       * A Framing Error indicates (probably) that something is talking
       * to us at the wrong bit rate.  Assume that this is because it
       * expects to be talking to the application, and DON'T reset the
       * watchdog.  This should cause the bootloader to abort and run
       * the application "soon", if it keeps happening.  (Note that we
       * don't care that an invalid char is returned...)
       */
    watchdogReset();
  }
 
 


Secondo problema: Il mio convertitore non ha un pinout del reset, quindi non posso mandarlo allo standalone.. mi sa che stiamo facendo un lavoro inutile!! http://www.sparkfun.com/datasheets/BreakoutBoards/USB-to-RS485-Breakout-v11.pdf
6  International / Hardware / Re: RS485 per programmare ATmega on: March 18, 2013, 02:27:51 pm
Uhmm nell‘istruzione non mi riconosce atmega328.. io ho fatto una copia della csrtella optiboot, modificato il file optiboot.c, e posizionatomi col terminale sulla cartella optiboot.
Ma quest‘operazione esattamente a cosa serve? Sarebbe una compulazione dei codici? Se lo faccio sul mio pc linux, posso poi semplicemente copiare su windowsla cartella optiboot ricavata e quindi fare il burning del bootloader?
7  International / Hardware / Re: RS485 per programmare ATmega on: March 11, 2013, 12:40:48 pm
Ok linux posso prenderlo su un altro pc di cui non posso disporre subito..

Cioè devo semplicemente salvarmi l'optiboot.h originale, posizionarmi sulla cartella che contiene questo file che stiamo modificando e lanciare il comando?
Poi suppongo che debba fare un burn bootloader with arduino as isp?
8  International / Hardware / Re: Xbee collegato ad Arduino blocca l'esecuzione del programma. on: March 10, 2013, 04:21:58 pm
Non hai ben capito..
Quel monitor, come qualsiasi altro monitor, ti permette di scrivere dei dati su di una porta seriale(in questo caso il convertitore usb xbee) da tastiera, nulla di più..
9  International / Hardware / Re: Xbee collegato ad Arduino blocca l'esecuzione del programma. on: March 10, 2013, 04:11:43 pm
L'Xbee è collegato al computer tramite shield ( http://www.robot-italy.com/en/xbee-usb-board.html ).

Chiamalo convertitore quello da ora in poi :p non dovresti avere problemi così!
10  International / Software / Re: Port Manipulation Encoder on: March 10, 2013, 03:46:20 pm
Code:
n = PIND & _BV(PIND2);
Se n viene dichiarato come intero 0000100 vale 4, e nel blocco if non viene riconosciuto come HIGH
11  International / Hardware / Re: Xbee collegato ad Arduino blocca l'esecuzione del programma. on: March 10, 2013, 03:35:42 pm
L'xbee al pc com'è collegato? Tramite un arduino o tramite un convertitore?
Se tramite un convertitore non hai problemi e basta aprire un monitor seriale come xctu e scriverci.
Se tramite computer allora devi spostare i pin tx ed rx dell'xbee su altri che non siano lo 0 ed 1 dell'arduino, creando una seconda seriale con la NewSoftSerial.h, ma dubito questo discorso valga su di una shield
12  International / Software / Re: Problema con lettura seriale da PHP on: March 10, 2013, 03:17:46 pm
Non conosco il php purtroppo anche se sto iniziando a guardarlo ma fai conto che su arduino hai la serial.flush() che svuota il buffer della seriale, potresti metterne uno poco prima del readport()
13  International / Software / Re: prova sketch antifurto on: March 10, 2013, 03:13:43 pm
O forzi lo stato ad HIGH anche se il contatto è ancora aperto alla fine dell'invio del messaggio (funziona, ma meglio evitare), oppure dopo che mandi l'sms metti qualcosa come while(stato==LOW){} che non fa nulla attendendo che il contatto venga chiuso..
14  International / Hardware / Re: RS485 per programmare ATmega on: March 10, 2013, 01:55:42 pm
Il PORTD &= l'ho messo per riportare a 0 il pin. Cioè, il pin deve stare sempre a 0 cioè in ascolto, nel momento in cui devo "parlare" metto il pin ad 1 e quando finisco lo riporto a 0 (fine della funzione put)

Ah, e per flashare..?  smiley-sweat
15  International / Hardware / Re: Xbee collegato ad Arduino blocca l'esecuzione del programma. on: March 10, 2013, 01:52:15 pm
Come ha detto leo l'xbee con la shield probabilmente occupa i pin tx ed rx per comunicare con l'arduino, gli stessi che utilizza per comunicare anche con la usb.
Ora, se tu hai un arduino che riceve i valori su quei pin dall'xbee non dovresti avere problemi, se invece nel frattempo apri anche il monitor seriale occupi lo stesso canale di comunicazione e non si va da nessuna parte..
Pages: [1] 2 3 ... 44