Pages: 1 ... 18 19 [20] 21   Go Down
Author Topic: Pico85 SMD - La prima board Arduino compatibile di Gioblu Robotics  (Read 17640 times)
0 Members and 1 Guest are viewing this topic.
Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Esatto. In pratica si compila questo file che altro non dice al micro che di saltare all'indirizzo $0000 che è quello di inizio della Flash e di inizio del programma dell'utente  smiley-razz
Cmq questa soluzione non mi piace. Ci vorrebbe Brainbooster che "spippolasse" un po' su ArduOpen e mettesse l'opzione per flashare i fuse senza toccare il resto. Ma Brain ultimamente si è dato alla macchia.
+1  smiley-sad
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome
Online Online
Full Member
***
Karma: 2
Posts: 187
I love Arduino
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie al vostro aiuto sono riuscito a far comunicare Pico85 e Arduino via seriale e poichè le istruzioni sono sparpagliate all'interno del thread, riassumo in un unico post come realizzare la comunicazione seriale con il Pico85 su windows. Si presuppone di aver già installato ArduOpen e di essere in grado di caricare sketch sul Pico85.

Impostare il clock del Pico85 a 16 Mhz
1. andare su \hardware\tools\avr\bin nell'IDE di ArduOpen o Arduino
2. lanciare il comando, sostituendo alla COM3 la vostra COM: avrdude -p ATtiny85 -c stk500v1 -b 19200 -P COM3 -U lfuse:w:0xf1:m
3. verificare che tutto sia andato bene
4. andare su /sketchbook/hardware/attiny45_85 (la cartella che avete creato quando avete installato ArduOpen)
5. aprire il file boards.txt. In questo file cambiare tutte le voci attinyx5avrisp.build.f_cpu=1000000L in attinyx5avrisp.build.f_cpu=16000000L       (in alternativa si può creare una nuova scheda duplicando le righe e modificando i valori come detto)

Modificare la libreria NewSoftSerial:
1. andare in /libraries/NewSoftSerial su ArduOpen (ultima versione)
2. Aprire il file NewSoftSerial.cpp con un editor di testo.
3. Cercare la funzione void NewSoftSerial::enable_timer0(bool enable)
4. Modificare il codice da così:
 
Code:
{
  if (enable)
#if defined(__AVR_ATmega8__)
    sbi(TIMSK, TOIE0);
#else
  sbi(TIMSK0, TOIE0);
#endif
  else
#if defined(__AVR_ATmega8__)
    cbi(TIMSK, TOIE0);
#else
  cbi(TIMSK0, TOIE0);
#endif
}

a così:

Code:
{
#if defined(__AVR_ATmega8__) || defined(__AVR_ATtinyX5__)
  sbi(TIMSK, TOIE0);
#else
  sbi(TIMSK0, TOIE0);
#endif
#if defined(__AVR_ATmega8__) || defined(__AVR_ATtinyX5__)
  cbi(TIMSK, TOIE0);
#else
  cbi(TIMSK0, TOIE0);
#endif
}

E ora un programma di prova.
Cosa serve:- Pico85- Arduino 2009 / Uno
Collegamenti:
- Alimentare Pico85 con 5v e gnd presi da Arduino
- Collegare la USB all'Arduino
- Pin 0 Pico 85 ---> Pin 12 Arduino
- Pin 1 Pico 85 ---> Pin 11 Arduino
- Pin 2 Pico 85 ---> Pin 13 Arduino

Il codice del Pico85 fa lampeggiare un paio di volte il led posto sul pin 13 dell'Arduino e poi lo lascia costantemente acceso.Poi invia sulla seriale i caratteri 0123456789 in continuazione.
Codice da caricare su Pico85:

Code:
#include <NewSoftSerial.h>

NewSoftSerial mySerial(0, 1);
int i=0;
int k=0;

void setup()  
{
  mySerial.begin(38400);
 pinMode(2, OUTPUT);
 digitalWrite(2, HIGH);
 delay(1000);
 digitalWrite(2, LOW);
 delay(1000);
 digitalWrite(2, HIGH);
 delay(1000);
 digitalWrite(2, LOW);
 delay(1000);
 digitalWrite(2, HIGH);
 
}

void loop()  
{
 for (k=0; k<10; k++)
 {    
      mySerial.print(k);
      delay(5);
  }
}


Il codice dell'Arduino fa una prova di stampa sul monitor seriale per verificare che tutto stia funzionando.Poi legge i valori sui pin 11 e 12 inviati dal Pico85 e li stampa sul monitor seriale in questo modo:
01234
56789
01234
56789
01234
56789     all'infinito
 
Codice da caricare su Arduino:
 
Code:
#include  <NewSoftSerial.h>

int i = 0;
int k=0;

NewSoftSerial mySerial(11, 12);

void setup()  
{
  Serial.begin(38400);
  mySerial.begin(38400);
  pinMode(13, INPUT);
  Serial.println("Inizio setup");
  
   for (k=0; k<10; k++)
 {    
      Serial.print(k);
      delay(5);
}
Serial.println();
Serial.println("fine setup");
}

void loop()  
{
  if (mySerial.available()) {
      Serial.print((char)mySerial.read());
      i++;
  }
  if (i > 4) {
    Serial.println();
    i = 0;
  }
}
« Last Edit: October 12, 2011, 04:10:14 am by alegiaco » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo!!!! grazie della condivisione. Potresti racchiudere tra
Code:
tutti i frammenti di codice?
Grazie ancora.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate ma per dovere di cronaca e giustamente per dare a Cesare quel che è di Cesare, mi pare giusto dire che queste cose sono tutte farina del mio sacco e che le ho scritte nella mia guida alla programmazione degli Attiny85 che ho pubblicato mesi fa sul sito di Gioblu.

La modifica alla lib NewSoftSerial l'ho fatta per primo io perché altrimenti tale lib non si compilava sui Tiny. Anzi, ti dirò di più: tale lib funziona solo in TX e non in RX usa un interrupt e blocca la gestione temporale del millis. Puoi usare solo la SoftwareSerial in ricezione, bloccando però l'esecuzione del codice.

Logged


Rome
Online Online
Full Member
***
Karma: 2
Posts: 187
I love Arduino
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Certo è tutta roba che viene quasi completamente da te. Sono stato molto chiaro nel dire nella prima fase che ho solo riassunto in un solo post quello che è sparso nei vari post. Buono a sapersi che funziona solo in trasmissione.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate ma per dovere di cronaca e giustamente per dare a Cesare quel che è di Cesare, mi pare giusto dire che queste cose sono tutte farina del mio sacco e che le ho scritte nella mia guida alla programmazione degli Attiny85 che ho pubblicato mesi fa sul sito di Gioblu.

La modifica alla lib NewSoftSerial l'ho fatta per primo io perché altrimenti tale lib non si compilava sui Tiny. Anzi, ti dirò di più: tale lib funziona solo in TX e non in RX usa un interrupt e blocca la gestione temporale del millis. Puoi usare solo la SoftwareSerial in ricezione, bloccando però l'esecuzione del codice.

Leo, ma nessuno ti a scesarizzato! smiley-eek-blue Lui ha scritto CHIARAMENTE di aver raccolto le informazioni sparse nel thread, quindi certamente anche o solo le tue, non si è preso alcun merito; io l'ho ringraziato per aver messo un post riepilogativo, se poi è la copia sputata del tuo tutorial onestamente non c'ho fatto caso, ma mi sembrava giusto incentivare questo tipo di azioni; se qualcuno facesse così in ognuno dei mega-topic che ci sono sul Forum, sarebbe una bella cosa, non ti pare? Ovvio che i meriti sono intrinsechi nella lettura degli interventi, il tuo nome ormai è quasi sinonimo di attiny smiley-lol
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa Alegiaco se me la sono presa: il mio lavoro è sì pubblico ma uno gradisce anche che gli venga dato il giusto credito. D'altronde, si vive anche di gloria e onore.  smiley-sweat

@Mike:
non ce l'avevo con te, solo che tu avevi scritto mentre io stavo postando e non volevo leggere l'intervento prima di mandare il mio post.

Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9507
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate ma per dovere di cronaca e giustamente per dare a Cesare quel che è di Cesare

Non mi fate arrabbiare Leo, c'è la luna piena e rischiate di dover fare i conti col famigerato pinguino mannaro  smiley-mr-green
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@Mike:
non ce l'avevo con te, solo che tu avevi scritto mentre io stavo postando e non volevo leggere l'intervento prima di mandare il mio post.
smiley-sweat smiley-sweat la prossima volta leggi prima, per piacere, mi hai fatto prendere un colpo! maremma attinyana smiley-sweat smiley-sweat

@ astrobeed: ma ce lo vedi un pinguino che ti corre dietro per sbranarti? ma come ti vengono ste cose? smiley-mr-green
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non scherzate coi pinguini: il pinguino imperatore passa il metro di altezza e può arrivare a pesare anche 40 Kg... quindi ocio... che se ti da dietro uno di quelli io dico che scappi anche te  smiley-lol smiley-lol
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non scherzate coi pinguini: il pinguino imperatore passa il metro di altezza e può arrivare a pesare anche 40 Kg... quindi ocio... che se ti da dietro uno di quelli io dico che scappi anche te  smiley-lol smiley-lol
No, no, 40kg di carne grassa gratuita, in più mi vendo la corona smiley-grin, e chi si muove, vieni belloccio vieni smiley-twist
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se è per mangiarlo... allora ti resta solo il becco... perché se viene a casa mia difficilmente ne esce vivo.  smiley-twist
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9507
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

perché se viene a casa mia difficilmente ne esce vivo.  smiley-twist

Cannibale !  smiley-grin smiley-mr-green smiley-grin

Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

perché se viene a casa mia difficilmente ne esce vivo.  smiley-twist

Cannibale !  smiley-grin smiley-mr-green smiley-grin


ROTFL smiley-lol smiley-lol smiley-lol smiley-lol smiley-lol smiley-lol smiley-lol smiley-lol
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La miglior carne è quella della propria razza  smiley-twist
Logged


Pages: 1 ... 18 19 [20] 21   Go Up
Jump to: