Perpustakaan Manchester tidak akan dikompilasi untuk Attiny85

8

Saya membuat sensor nirkabel menggunakan Attiny85. Saya ingin mengirim data ke arduino uno, jadi saya membeli kit tautan rf 315mhz dari spark fun. Karena Attiny85 tidak memiliki TX, saya memutuskan untuk menggunakan perpustakaan Manchester namun tidak dapat dikompilasi di Attiny85.

Saya mengikuti langkah-langkah dari blog ini: http://mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192

Berikut adalah kode yang saya gunakan:

    #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 ++;
 }

Ini pesan kesalahannya:

/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
Joel
sumber
Paket mana yang Anda gunakan untuk dukungan ATtinyX5 Arduino?
Ignacio Vazquez-Abrams
Saya mencoba yang dari blog yang saya referensikan tetapi setelah pencarian google saya menemukan bahwa MIT High Low Tech Group punya satu jadi saya mencobanya juga. Yang dari MIT High Low Tech dari halaman ini highlowtech.org/?p=1695
Joel
Saya melakukan semua saran Joel dan Ignacio tentang penggunaan perpustakaan arduino-tiny alih-alih master attiny dari halaman grup teknologi tinggi MIT. Saya akhirnya mendapatkan papan ATTINY85 untuk muncul di menu papan saya, tapi saya masih mendapatkan kesalahan "manusia tidak dinyatakan dalam ruang lingkup" dengan kode di atas. Ada saran?
Apakah Anda mengimpor perpustakaan manchester ke Arduino IDE? atau letakkan di folder perpustakaan?
Joel

Jawaban:

5

attiny tidak memiliki opsi yang diperlukan untuk memungkinkan perpustakaan Manchester berfungsi dengan baik pada perangkat ATtinyX5, khususnya definisi __AVR_ATtinyX5__kapan suatu perangkat dipilih. Bahkan, ada beberapa hal yang hilang.

Paket yang saya gunakan untuk dukungan ATtinyX5 adalah arduino -tiny . Saya telah memverifikasi bahwa itu mendefinisikan simbol itu dengan benar. Saya sarankan Anda membuang paket dukungan Anda saat ini dan menginstal arduino-tiny sebagai gantinya.

Ignacio Vazquez-Abrams
sumber
Saya mengunduh arduino-tiny-0150-0020.zip. Buka ritsleting file kemudian seret folder bernama kecil ke folder perangkat keras yang saya buat di dalam folder Arduino. Namun ketika saya pergi ke ide saya mencari di bawah papan dan seri papan Attiny tidak muncul.
Joel
Apa cara yang benar untuk menambahkan paket ke es?
Joel
Versi IDE mana yang Anda jalankan?
Ignacio Vazquez-Abrams
Arduino1.0.5 di mac osx 10.9.2
Joel
Maka Anda harus mengunduh paket dukungan untuk 1.0.x daripada paket untuk 1.5.x.
Ignacio Vazquez-Abrams
4

Setelah berjuang sendiri, saya dapat memastikan bahwa solusi Joel berhasil.

Ada cukup banyak posting di sekitar yang menunjukkan bahwa Anda tidak dapat membuat Manchester bekerja dengan Arduino1.0x dan Anda perlu 0020. Tetapi Anda bisa.

Kuncinya adalah menggunakan arduino-tiny dari tautan di atas, letakkan folder mungil yang Anda dapatkan dari sana di / hardware dan kemudian ubah nama menjadi attiny dan "calon papan" ke papan.

Saya menyadari bahwa ini tidak mengatakan apa pun yang sudah dimiliki oleh Joel, tetapi ada begitu banyak informasi yang saling bertentangan dan kontradiktif di sekitar saya sehingga saya pikir ini layak untuk ditambahkan dalam pengalaman saya.

Robert Jenkins
sumber
0

Punya masalah yang sama menggunakan lib ini dengan Trinket 8 MHz, tetapi berhasil menyelesaikannya dengan menambahkan #define __AVR_ATtinyX5__ke file hardware / attiny / varian / tiny8 / pins_arduino.h. Saya menggunakan paket dukungan Adafruit untuk ATtiny. Mungkin sedikit hack, tapi saya masih bisa membangun untuk UNO, dengan memilih papan di Arduino IDE 1.0.5.

jogco
sumber