Daftar Isi:

ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY: 3 Langkah
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY: 3 Langkah

Video: ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY: 3 Langkah

Video: ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY: 3 Langkah
Video: How to make robot #6 Line Follower | Small Handy Robot | AVR ATTINY | easy explanation 2024, November
Anonim
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY
ATTiny-RAT, Pengikut Cahaya Mini Bertenaga ATTINY

Hai teman-teman, sudah lama sejak saya memposting instruksi terakhir saya. Nah ada banyak hal yang terjadi di kepala saya sekarang, tetapi saya berhasil mendokumentasikan "langkah pertama" saya dengan chip Seri ATTiny dalam instruksi singkat ini untuk Anda.

Saya memesan beberapa sampel ATTINY85 hanya karena saya ingin mengujinya:-) (semua orang suka menguji sesuatu, kan?). Setelah itu saya mulai menggambar beberapa ide ke dalam buku catatan saya. Sejujurnya hal pertama yang saya lakukan adalah mengedipkan LED yang seperti biasa merupakan awal yang baik untuk memeriksa apakah pengaturan/rantai alat Anda berfungsi. Saya juga mencoba pencatat suhu dan kelembaban dengan DHT22 dan SoftwareSerial. Itu rumit karena Perpustakaan DHT terutama untuk jam 16Mhz (jika Anda berencana untuk melakukan sesuatu seperti itu, periksa cara melakukan pra-skala jam internal). Tapi saya memutuskan untuk menunjukkan sesuatu yang, yah, lebih lucu. BTW: Saya mengunggah salah satu gambar saya untuk Anda, itu bukan Rembrandt tetapi itu akan menunjukkan kepada Anda bagaimana saya mendapatkan ide (benar-benar) bodoh ini ke selembar kertas: -P.

Saya hanya menggunakan barang-barang yang saya miliki untuk menjaga proyek ini semurah mungkin (untuk saya). Hasil dari petualangan kecil ini adalah "robot lightfollower" kecil yang menyenangkan dengan harga sekitar 10-15$ (3$ untuk saya:-P)

Jadi, jika Anda sendiri tertarik dengan ATTINY, baca lebih lanjut.

BTW: maaf untuk bahasa Inggris saya yang buruk (saya bukan penutur asli)

Langkah 1: Memulai Dengan ATTiny & Alat & Bahan

Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan
Memulai Dengan ATTiny & Alat & Bahan

Apa yang Anda perlukan untuk memulai:

- sebuah chip ATTiny85

- Arduino UNO atau sejenisnya

- papan tempat memotong dengan beberapa kabel jumper atau pemrogram ATTINY atau membuat perisai pemrogram untuk Arduino sendiri (periksa gambar terlampir, ada skema dari avdweb.nl). Saya juga membuat yang ini dan saya sangat senang dengan itu satu-satunya modifikasi yang saya buat adalah saya menambahkan soket untuk Seri ATTinyx4 (lihat gambar dan diagram pinout).

- Arduino IDE (dapatkan di sini)

- file perangkat keras untuk ArduinoIDE (unduh dan instal)

Info-Tautan ke taman bermainTautan langsung ke file github yang saya gunakan

- muat Arduino sebagai sketsa ISP ke UNO (ini akan menjadi programmer Anda)

- ikuti instruksi ini (https://highlowtech.org/) atau instruksi ini (oleh ardutronix) dan coba sketsa "berkedip" (modifikasi PIN Nr. gunakan gambar ATTINY sebagai referensi! Anda akan memerlukan ATTINY a LED yang sudah di-flash dan resistor ~ 220Ohm untuk itu)

Buat pengaturan papan tempat memotong roti kecil untuk memeriksa semuanya. Jika Anda telah melakukan semuanya dengan benar, LED akan berkedip dan Anda siap untuk pergi

PERALATAN

- Besi Solder- beberapa solder- pemotong kawat kecil- dremel atau alat putar lainnya (hanya untuk memotong PCB!)- beberapa lem panas- pinset- kabel

BAHAN

- prototyping PCB (~4cmx6cm akan melakukannya)- 2x LDR- Resistor 5x 10k (2x untuk LDR dan 2x untuk transistor BE, 1x LED) - Resistor 1x 330Ohm (1x NEOPIXELS)- 2x LDR- 1x LED (warna Anda pilihan, bukan roda kastor)- 3x NEOPIXEL WS2812- 2x Transistor (BD137 atau serupa)- 2x Diode (1N4001 atau serupa)- 2x mikromotor (misalnya dari mikro-quadcopter Hubsan)- 1x ATTINY85 + opsional (disarankan) 8PIN IC Socket- 1x 1s LIPO (saya menggunakan 140Ah dari RC-helikopter lama)- beberapa pinheader/soket- shrinktube (LDR housing)

Mari kita lanjutkan dengan membangun perangkat keras…

Langkah 2: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Jika Anda melihat skema yang saya lampirkan, pengaturan perangkat kerasnya cukup sederhana. Jadi jika Anda dapat membaca skema dan menggunakan besi solder, itu setengah trik. Lihat juga fotonya, saya menambahkan beberapa catatan untuk Anda.

Saya tidak memberikan rencana untuk memotong PCB, Anda memiliki kebebasan untuk membuat desain Anda sendiri (berkreasilah dan tunjukkan kepada kami Tiny Bot Anda). Penempatan semua komponen elektronik juga terserah Anda. Beberapa petunjuk dari sisi saya:

Cobalah untuk menyelaraskan motor dengan tepat (perhatikan sudutnya!) Kami hanya menggunakan poros motor, bukan roda. (ini akan mengkonsumsi lebih sedikit energi) Saya sarankan untuk menempatkan motor di bawah baterai (berat) dan menggunakan LDR di bagian depan (sudut 45 °) dipasangkan dengan LED (saya mencoba menggunakan kombinasi ini untuk menghindari rintangan, selanjutnya tes diperlukan).

Selanjutnya saya sarankan untuk membuat jumper on/off sedikit agar baterai tidak mudah hilang.

Jika ada sesuatu yang tidak jelas atau jika Anda memiliki pertanyaan, tanyakan saja kepada saya. Itu tidak akan membuat banyak akal membuat tesis dari proyek kecil ini.

Langkah 3: Perangkat Lunak

Perangkat lunak
Perangkat lunak
Perangkat lunak
Perangkat lunak

Pertama-tama unduh dan instal Perpustakaan Neopiksel ADAFRUIT

Ini kode saya dengan beberapa deskripsi utama (saya juga menambahkan file sketsa). Saya tidak mengomentari setiap langkah karena saya pikir itu tidak perlu.

Unggah sketsa ke ATTiny85 Anda dan bersenang-senanglah dengan mainan baru Anda

Ide untuk fungsi "kepribadian" + mungkin contoh kode sangat diterima:-)

Jika ada pertanyaan, jangan ragu untuk bertanya.

Saya harap Anda menikmati instruksi singkat saya dan perjalanan kecil ke dunia ATTINY.

/* ATTINY85-Rata robot pengikut cahaya bertenaga ATTINY85 sederhana. Versi 2.0, oleh Auer Markus */

#termasuk

#termasuk

//motor

#define LMOTOR 0 #define RMOTOR 1 //LEDs #define PIXELPIN 2 #define NUMPIXEL 3 //LDRs #define LLDR A2 #define RLDR A3

//emosi lain = 0; kalib mengambang; emostat boolean; milis lama; //mendefinisikan NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel(NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

batalkan pengaturan()

{ //jam kelas atas jika tidak, Anda akan menemukan beberapa masalah pengaturan waktu (lib neopixel ditulis untuk 16MHz) #if didefinisikan (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #berakhir jika

//PINMODE pinMode(LMOTOR, OUTPUT); pinMode(RMOTOR, OUTPUT); pinMode(LLDR, INPUT); pinMode(LLDR, INPUT); //inisialisasi piksel PIXEL.begin(); PIXEL.tampilkan(); penundaan (500); //urutan awal untuk(int i=0;i

lingkaran kosong()

{ if(lightfollow() == 1) { kiri(); } else if(lightfollow() == 2) { kanan(); } else if(lightfollow() == 0) { forward(); } emosi(); }

int mengikuti cahaya() {

int ambang = 14; int hasil = 0; mengambang ke kiri = 0; mengambang kanan = 0; int sampel = 1; //baca LDR untuk (int j = 0; j<sampel; j++){

kiri = kiri + analogRead(LLDR); kanan = kanan + (analogRead(RLDR)*kalib);

}

//hitung hasilnya (dari arah mana datangnya cahaya?)

if((kiri/sampel) > ((kanan/sampel)+treshold)) {hasil = 2;}

else if((kiri/sampel) < ((kanan/sampel)-treshold)) {hasil = 1;}

lain {hasil = 0;}

kembali hasil; } void forward() { //Forward analogWrite(LMOTOR, 230); analogWrite(RMOTOR, 230); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.tampilkan(); }

kosong kiri() {

//LEFT analogWrite(LMOTOR, 150); analogWrite(RMOTOR, 255); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); //PIXEL.setPixelColor(1, PIXEL. Color(75, 0, 0)); PIXEL.setPixelColor(2, PIXEL. Color(0, 100, 0)); PIXEL.tampilkan(); }

batal kanan() {

//analog KANANTulis(LMOTOR, 255); analogWrite(RMOTOR, 150); PIXEL.setPixelColor(0, PIXEL. Color(0, 100, 0)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.tampilkan(); }

//ini untuk eksperimen lebih lanjut, mencoba memberi yang ini sedikit kepribadian:-) saya sedang menguji apa yang bisa dilakukan, tetapi belum ada ide bagus.

batalkan emosi() { int emotimer = 2500; int durasi = acak(250, 750); if (milis() - oldmillis > emotimer) { oldmillis = milis(); emo = acak(1, 4); } if (milis() - oldmillis > durasi) { emostate = !emostate; } if (emostate == true) { switch (emo) { case 1: PIXEL.setPixelColor(1, PIXEL. Color((255), (255), (255))); PIXEL.tampilkan(); merusak; kasus 2: PIXEL.setPixelColor(1, PIXEL. Color((255), (0), (0))); PIXEL.tampilkan(); merusak; kasus 3: PIXEL.setPixelColor(1, PIXEL. Color((0), (255), (0))); PIXEL.tampilkan(); merusak; default: PIXEL.setPixelColor(1, PIXEL. Color(random(0, 255), random(0, 255), random(0, 255))); PIXEL.tampilkan(); merusak; } } else { PIXEL.setPixelColor(1, PIXEL. Color(25, 0, 0)); PIXEL.tampilkan(); } }

Direkomendasikan: