La Biblioteca di Manchester non verrà compilata per Attiny85


8

Sto creando un sensore wireless utilizzando un Attiny85. Voglio inviare i dati a uno Arduino Uno, quindi ho acquistato il kit di collegamento RF 315mhz da Spark Fun. Poiché Attiny85 non ha un TX, ho deciso di utilizzare la libreria di Manchester, ma non verrà compilato su Attiny85.

Ho seguito i passaggi di questo blog: http://mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192

Ecco il codice che sto usando:

    #include <WProgram.h> //otherwise it says it can't find Arduino.h
    #include <Manchester.h> //include the library to comunicate
    #define TxPin 2 //the pin that is used to send data

 int sensorPin = 4;
 int ledPin = 3;
 int count = 50;

 void setup(){
  pinMode (ledPin, OUTPUT);
  man.workAround1MhzTinyCore(); //add this in order for transmitter to work with 1Mhz Attiny85/84
  man.setupTransmit(TxPin, MAN_1200); //set transimt pin
}

void loop(){
  if (count == 50){
   digitalWrite (ledPin, HIGH);
   count = 0;
   }
   int data = analogRead(sensorPin);
   man.transmit(data); //transmits and reads the data
   delay (100);
   count ++;
 }

Ecco il messaggio di errore:

/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp: In function 'void MANRX_SetupReceive(uint8_t)':
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:366: error: 'TCCR2A' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:366: error: 'WGM21' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:368: error: 'TCCR2B' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:368: error: 'CS21' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:369: error: 'OCR2A' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:379: error: 'TIMSK2' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:379: error: 'OCIE2A' was not declared in this scope
/Users/joelsimonoff/Documents/Arduino/libraries/MANCHESTER/Manchester.cpp:380: error: 'TCNT2' was not declared in this scope

Quale pacchetto stai usando per il supporto ATtinyX5 Arduino?
Ignacio Vazquez-Abrams,

Ho provato quello dal blog a cui ho fatto riferimento ma dopo una ricerca su Google ho scoperto che il gruppo High Low Tech del MIT ne aveva uno, quindi ho provato anche quello. Quello del MIT High Low Tech è di questa pagina highlowtech.org/?p=1695
Joel

Ho eseguito tutti i suggerimenti di Joel e Ignacio sull'utilizzo della libreria minuscola arduino invece del maestro attiny dalla pagina del gruppo high tech del MIT. Finalmente ho le schede ATTINY85 da mostrare nel menu della mia scheda, ma sto ancora ricevendo l'errore "man non dichiarato nell'ambito" con il codice sopra. Eventuali suggerimenti?

Hai importato la libreria manchester nell'IDE di Arduino? o metterlo nella cartella delle librerie?
Joel,

Risposte:


5

ad attiny manca un'opzione richiesta per consentire alla biblioteca di Manchester di funzionare correttamente sui dispositivi ATtinyX5, in particolare la definizione di __AVR_ATtinyX5__quando un dispositivo è selezionato. In effetti, mancano alcune cose.

Il pacchetto che uso per il supporto di ATtinyX5 è arduino-tiny . Ho verificato che definisce correttamente quel simbolo. Ti consiglio di scaricare il tuo pacchetto di supporto corrente e installare invece arduino-tiny.


Ho scaricato arduino-tiny-0150-0020.zip. Decompresso il file quindi trascinato la cartella minuscola nella cartella hardware che ho creato all'interno della cartella arduino. Tuttavia, quando sono andato all'ide ho cercato sotto le schede e la serie di schede Attiny non si è presentata.
Gioele,

Qual è il modo corretto di aggiungere il pacchetto al ghiaccio?
Gioele,

Quale versione dell'IDE stai eseguendo?
Ignacio Vazquez-Abrams,

Arduino1.0.5 su mac osx 10.9.2
Joel

Quindi dovrai scaricare il pacchetto di supporto per 1.0.x anziché quello per 1.5.x.
Ignacio Vazquez-Abrams,

4

Avendo lottato da solo, posso confermare che la soluzione di Joel funziona.

Ci sono molti post in giro che suggeriscono che non puoi far funzionare il Manchester con Arduino1.0x e hai bisogno di 0020. Ma puoi farlo.

La chiave è usare l'arduino-tiny dal link qui sopra, mettere la minuscola cartella che si ottiene da lì in / hardware e quindi rinominarla in attiny e "schede future" in schede.

Mi rendo conto che questo non dice altro che Joel ha già, ma ci sono così tante informazioni contrastanti e contraddittorie in giro che ho pensato che valesse la pena aggiungere nella mia esperienza


0

Ho avuto lo stesso problema usando questa lib con un Trinket da 8 MHz, ma sono riuscito a risolverlo aggiungendo #define __AVR_ATtinyX5__al file hardware / attiny / varianti / tiny8 / pins_arduino.h. Sto usando il pacchetto di supporto Adafruit per ATtiny. Forse un po 'un trucco, ma posso ancora costruire per l'ONU, selezionando la scheda in Arduino IDE 1.0.5.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.