Talaan ng mga Nilalaman:

ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 Hakbang
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 Hakbang

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 Hakbang

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 Hakbang
Video: How to use the Atmel ATTINY10 Microcontroller 2024, Nobyembre
Anonim
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower
ATTiny-RAT, ATTINY Pinapagana ng Mini Lightfollower

Kumusta mga kababayan, ito ay naging isang habang mula noong nai-post ang aking huling itinuturo. Well maraming mga bagay sa paligid sa aking ulo ngayon ngunit pinamamahalaang ko upang idokumento ang aking "unang hakbang" sa ATTiny-Series ng chips sa maikling itinuro para sa iyo.

Nag-order ako ng ilang mga sample ng ATTINY85 dahil lamang sa nais kong subukan ang mga ito:-) (lahat ay mahilig sa pagsubok ng mga bagay, tama ba?). Pagkatapos nito nagsimula akong gumuhit ng ilang mga ideya sa aking kuwaderno. Upang maging matapat ang unang bagay na ginawa ko ay ang pagpikit ng isang LED na palaging isang magandang pagsisimula upang suriin kung gumagana ang iyong setup / toolchain. Sinubukan ko rin ang isang logger ng temperatura at halumigmig sa DHT22 at SoftwareSerial. Iyon ay isang nakakalito dahil ang DHT Librarys ay pangunahin para sa 16Mhz na orasan (kung plano mong gumawa ng isang bagay tulad nito, suriin kung paano i-prescale ang internalclock). Ngunit nagpasya akong ipakita sa iyo ang isang bagay na, mabuti, mas nakakatawa. BBTW: Nag-upload ako ng isa sa aking mga guhit para sa iyo, hindi ito isang Rembrandt ngunit ipapakita sa iyo kung paano ko nakuha ang (talagang) hangal na ideya sa isang piraso ng papel: -P.

Gumamit lamang ako ng mga bagay na nahiga ako upang mapanatili ang proyektong ito na mura (para sa akin). Ang resulta ng maliit na pakikipagsapalaran na ito ay isang magandang maliit na "lightfollower robot" para sa humigit-kumulang 10-15 $ (3 $ para sa akin:-P)

Kaya kung interesado ka sa ATTINY mismo basahin mo pa.

BTW: paumanhin para sa aking masamang ingles (hindi ako isang katutubong nagsasalita)

Hakbang 1: Pagsisimula Sa ATTiny at Mga Tool at Materyales

Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales
Pagsisimula Sa ATTiny at Mga Tool at Materyales

Ano ang kakailanganin mong magsimula:

- isang ATTiny85 chip

- isang Arduino UNO o katulad

- Abreadboard na may ilang jumper-wire o isang ATTINY programmer o gumawa ng programmer-shield para sa Arduino mismo (suriin ang mga nakalakip na larawan, mayroong isang iskematiko mula sa avdweb.nl). Ginawa ko rin ang isang ito at talagang masaya ako dito ang nag-iisang pagbabago na ginawa ko ay nagdagdag ako ng isang socket para sa ATTinyx4 Series (sumangguni sa larawan at mga pinout-diagram).

- ang Arduino IDE (kumuha dito)

- ang mga hardwarefile para sa ArduinoIDE (i-download at i-install ang mga ito)

Impormasyon-Link sa playgrounddirect Link sa mga github file na ginamit ko

- i-load ang Arduino bilang ISP sketch sa UNO (ito ang magiging iyong programmer)

- sundin ang tagubiling ito (https://highlowtech.org/) o maituturo na ito (ni ardutronix) at subukan ang "blink" sketch (baguhin ang PIN Nr. gamitin ang ATTINY na larawan bilang isang sanggunian! kakailanganin mo ang preflash ATTINY isang LED at isang ~ 220Ohm Resistor para doon)

Gumawa ng isang maliit na pag-setup ng tinapay upang suriin ang lahat. Kung nagawa mo na ang lahat nang tama ang LED ay kumikislap at handa ka nang pumunta

TOOLS

- Soldering Iron- ilang solder- isang maliit na wirecutter- isang dremel o iba pang rotary-tool (para lang sa pagputol ng PCB!) - ilang hotglue- tweezers- wires

MATERYAL

- prototyping PCB (~ 4cmx6cm will do it) - 2x LDR- 5x 10k Resistor (2x for the LDRs and 2x for the transistors BE, 1x LED) - 1x 330Ohm Resistor (1x NEOPIXELS) - 2x LDR- 1x LED (kulay ng iyong pagpipilian, sa halip na caster-wheel) - 3x NEOPIXEL WS2812- 2x Transistor (BD137 o katulad) - 2x Diode (1N4001 o katulad) - 2x micromotor (hal. mula sa isang Hubsan micro-quadcopter) - 1x ATTINY85 + opsyonal (inirerekumenda) 8PIN IC Socket- 1x 1s LIPO (Gumamit ako ng 140Ah mula sa isang lumang RC-helikopter) - ilang mga pinheader / sockets- shrinktube (pabahay ng LDR)

Magpatuloy tayo sa pamamagitan ng pagbuo ng hardware…

Hakbang 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Kung may pagtingin ka sa mga eskematiko na nakakabit ko, ang pag-setup ng hardware ay medyo simple. Kaya't kung makakabasa ka ng mga eskematiko at gumamit ng isang panghinang, kalahati iyon ng trick. Tingnan din ang mga larawan, nagdagdag ako ng ilang mga tala para sa iyo.

Hindi ako nagbibigay ng isang plano para sa pagputol ng PCB, mayroon kang kalayaan na gumawa ng iyong sariling disenyo (maging malikhain at ipakita sa amin ang iyong Mga Maliliit na Bot). Nasa iyo rin ang paglalagay ng lahat ng mga elektronikong sangkap. Ang ilang mga pahiwatig mula sa aking tagiliran:

Subukang ihanay nang tama ang mga motor (panoorin ang anggulo!) Gumagamit lamang kami ng motorshaft sa halip na mga gulong. (gugugol ito ng mas kaunting enerhiya) Inirerekumenda kong ilagay ang mga motor sa ilalim ng baterya (timbang) at gamitin ang mga LDR sa harap (45 ° angled) na ipinares sa LED (sinusubukan kong gamitin ang kombinasyong ito para maiwasan ang sagabal, karagdagang kailangan ng mga pagsubok).

Karagdagan inirerekumenda ko na gumawa ng isang maliit na on / off jumper upang ang baterya ay hindi mawawala nang madali.

Kung mayroong anumang hindi malinaw o kung mayroon kang mga katanungan, tanungin lamang ako. Hindi ito makakagawa ng maraming senes na gumawa ng isang thesis mula sa maliit na proyekto.

Hakbang 3: Software

Software
Software
Software
Software

Ika-1 sa lahat ng pag-download at pag-install ng ADAFRUIT Neopixel Library

Narito ang aking code na may ilang mga pangunahing paglalarawan (idinagdag ko rin ang sketch file). Hindi ako nagkomento sa bawat hakbang dahil sa palagay ko hindi ito kinakailangan.

I-upload ang sketch sa iyong ATTiny85 at magsaya sa iyong bagong laruan

Ang mga ideya para sa pagpapaandar na "pagkatao" + marahil ang mga halimbawa ng code ay malugod na tinatanggap:-)

Kung mayroong anumang mga katanungan, huwag mag-atubiling magtanong.

Inaasahan kong nasiyahan ka sa aking maikling itinuro at kaunting paglalakbay sa mundo ng mga ATTINY.

/ * ATTINY85-Rata simpleng ATTINY85 pinalakas na lightfollowing robot. Bersyon 2.0, ni Auer Markus * /

# isama

# isama

// motor

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

// otherint emo = 0; lumutang calib; boolean emostate; mahabang oldmillis; // tukuyin ang NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

walang bisa ang pag-setup ()

{// upscale na orasan pa ay makakasalubong mo ang ilang mga timerproblems (ang neopixel lib ay nakasulat para sa 16MHz) # kung tinukoy (_AVR_ATtiny85_) kung (F_CPU == 16000000) na orasan_prescale_set (clock_div_1); #tapusin kung

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // initialize pixel PIXEL.begin (); PIXEL.show (); pagkaantala (500); // startsequence para sa (int i = 0; i

walang bisa loop ()

{kung (lightfollow () == 1) {pakaliwa (); } iba pa kung (lightfollow () == 2) {kanan (); } iba pa kung (lightfollow () == 0) {forward (); } damdamin (); }

int lightfollow () {

int treshold = 14; int resulta = 0; lumutang pakaliwa = 0; lumutang pakanan = 0; int sample = 1; // read LDRs for (int j = 0; j <sample; j ++) {

kaliwa = kaliwa + analogRead (LLDR); kanan = kanan + (analogRead (RLDR) * calib);

}

// kalkulahin ang resulta (aling direksyon ay nagmumula ang ilaw?)

kung ((kaliwa / sample)> ((kanan / sample) + treshold)) {resulta = 2;}

kung hindi man ((kaliwa / sample) <((kanan / mga sample) -treshold)) {resulta = 1;}

iba pa {resulta = 0;}

resulta ng pagbabalik; } 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.show (); }

walang bisa () {

// 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.show (); }

walang bisa () {

// RIGHT analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

// ito ay para sa karagdagang mga eksperimento, sinusubukang bigyan ang isang ito ng kaunting pagkatao:-) Sinusubukan ko kung ano ang maaaring gawin, ngunit wala pang magagandang ideya.

walang bisa na damdamin () {int emotimer = 2500; int tagal = random (250, 750); kung (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = random (1, 4); } kung (millis () - oldmillis> tagal) {emostate =! emostate; } kung (emostate == totoo) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pahinga; kaso 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pahinga; kaso 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pahinga; default: PIXEL.setPixelColor (1, PIXEL. Color (random (0, 255), random (0, 255), random (0, 255))); PIXEL.show (); pahinga; }} iba pa {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Inirerekumendang: