ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 алхам
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 алхам
Anonim
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower

Сайн уу хүмүүсээ

Би сүүлчийн зааварчилгаагаа оруулснаас хойш багагүй хугацаа өнгөрч байна. Одоохондоо миний толгойд маш олон зүйл эргэлдэж байгаа ч би өөрийнхөө анхны алхамуудыг ATTiny-Series цуврал чипүүдээр товч зааварлах болно.

Би ATTINY85 дээжийг туршиж үзэхийг хүссэн учраас л захиалсан юм:-) Үнэнийг хэлэхэд миний хийсэн хамгийн эхний зүйл бол LED асаах явдал байсан бөгөөд энэ нь таны тохиргоо/багажны сүлжээ ажиллаж байгаа эсэхийг шалгахад үргэлж сайн эхлэл болдог. Би DHT22 болон SoftwareSerial ашиглан температур, чийгшил бүртгэгчийг туршиж үзсэн. DHT номын сан нь ихэвчлэн 16 МГц давтамжтай байдаг тул энэ нь маш хэцүү байсан (хэрэв та ийм зүйл хийхээр төлөвлөж байгаа бол дотоод цагийг хэрхэн урьдчилан хэмжихээ шалгаарай). Гэхдээ би танд илүү хөгжилтэй зүйлийг үзүүлэхээр шийдлээ. BTW: Би танд зориулж зурсан зургуудынхаа нэгийг орууллаа, энэ бол Рембрандт биш, гэхдээ энэ (үнэхээр) тэнэг санааг цаасан дээр хэрхэн олж авсныг харуулах болно. -П.

Энэ төслөө аль болох хямд байлгахын тулд би зүгээр л хэвтэж байсан зүйлээ ашигласан (миний хувьд). Энэхүү бяцхан адал явдлын үр дүн нь 10-15 долларын үнэтэй жижигхэн "гэрэлтүүлэгч робот" юм (миний хувьд 3 доллар:-P)

Тиймээс хэрэв та ATTINY -ийг өөрөө сонирхож байвал цааш нь уншаарай.

BTW: миний муу англи хэл уучлаарай (би төрөлх хэлтэй хүн биш)

Алхам 1: ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх

ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх
ATTiny багаж хэрэгсэл, материалыг ашиглаж эхлэх

Эхлэхийн тулд танд юу хэрэгтэй болно:

- ATTiny85 чип

- Arduino UNO эсвэл үүнтэй төстэй

-зарим холбогч утас эсвэл ATTINY програмист бүхий арын самбар эсвэл өөрөө Arduino-д зориулж програмист бамбай хийх (хавсаргасан зургуудыг үзнэ үү, avdweb.nl-ийн схем байгаа). Би үүнийг бас хийсэн бөгөөд миний хийсэн цорын ганц өөрчлөлт бол ATTinyx4 цувралын сокетийг нэмж оруулсан явдал юм.

- Arduino IDE (эндээс авна уу)

- ArduinoIDE -ийн техник хангамжийн файлууд (татаж аваад суулгана уу)

Тоглоомын талбайн мэдээлэл-холбоос Миний ашигласан github файлуудын холбоос

- Arduino -г ISP -ийн ноорог хэлбэрээр НҮБ -д ачаална уу (энэ бол таны програмист болно)

- Энэ зааврыг (https://highlowtech.org/) эсвэл энэ зааварчилгааг (ardutronix) дагаж, "анивчих" ноорогыг туршиж үзээрэй (PIN дугаарыг өөрчилж ATTINY зургийг лавлагаа болгон ашиглана уу! ба ~ 220Ohm эсэргүүцэл)

Жижиг талхны самбарыг тохируулаад бүх зүйлийг шалгаарай. Хэрэв та бүх зүйлийг зөв хийсэн бол LED анивчих бөгөөд та явахад бэлэн байна.

ХЭРЭГСЭЛ

- Гагнуурын төмөр- зарим гагнуур- жижиг утсан холбогч- дремель эсвэл бусад эргэдэг хэрэгсэл (ПХБ-ийг огтлоход зориулагдсан!)- зарим халуун цавуу- хясаа- утас

МАТЕРИАЛ

- ПХБ-ийн прототип хийх (~ 4cmx6cm үүнийг хийх болно)- 2x LDR- 5x 10k резистор (LDRs дээр 2х, транзисторын хувьд 2x BE, 1x LED)- 1x 330Ohm резистор (1x NEOPIXELS)- 2x LDR- 1x LED (таны өнгө сонголт, цутгамал дугуйны оронд)- 3x NEOPIXEL WS2812- 2х транзистор (BD137 эсвэл үүнтэй төстэй)- 2x диод (1N4001 эсвэл үүнтэй төстэй)- 2х микромотор (жишээ нь Hubsan микро квадрокоптероос)- 1х ATTINY85 + нэмэлт (санал болгосон) 8PIN IC залгуур- 1x 1s LIPO (би хуучин RC нисдэг тэрэгнээс 140Ah ашигласан)- зарим зүү толгой/залгуур- shrinktube (LDR орон сууц)

Тоног төхөөрөмжийг бүтээх замаар үргэлжлүүлье …

Алхам 2: Техник хангамж

Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж

Хэрэв та миний хавсаргасан схемийг харвал тоног төхөөрөмжийн тохиргоо маш энгийн. Тиймээс, хэрэв та схемийг уншиж, гагнуурын төмрийг ашиглаж чаддаг бол энэ бол заль мэхийн хагас юм. Фото зургуудыг үзээрэй, би танд зориулж хэдэн тэмдэглэл орууллаа.

Би ПХБ -ийг огтлох төлөвлөгөө өгөөгүй байна, танд өөрийн загварыг хийх эрх чөлөө бий (бүтээлч байж, жижигхэн ботуудаа бидэнд үзүүлээрэй). Бүх электрон эд ангиудыг байрлуулах нь танд хамаарна. Миний талаас зарим зөвлөмж:

Хөдөлгүүрийг яг тааруулж үзээрэй (өнцгийг нь ажиглаарай!) Бид зөвхөн дугуйны оронд хөдөлгүүрийн босоо амыг ашигладаг. (энэ нь бага энерги зарцуулах болно) Би моторыг зайны доор байрлуулахыг зөвлөж байна (жин), урд талд нь LDR -ийг (45 ° өнцгөөр) LED -тэй хослуулахыг зөвлөж байна (би энэ хослолыг жирэмслэлтээс зайлсхийхийн тулд ашиглахыг хичээж байна. шалгалт шаардлагатай).

Цаашид би зайгаа амархан алдахгүйн тулд бага зэрэг асаах/унтраах холбогч хийхийг зөвлөж байна.

Хэрэв ямар нэгэн зүйл тодорхойгүй байвал эсвэл асуух зүйл байвал надаас асуугаарай. Энэ жижиг төслөөс диссертаци гаргахад тийм ч их ач холбогдол өгөхгүй.

Алхам 3: Програм хангамж

Програм хангамж
Програм хангамж
Програм хангамж
Програм хангамж

ADAFRUIT неопикселийн номын санг татаж аваад суулгаарай

Энд миний зарим гол тайлбар бүхий код байна (би ноорог файлыг бас нэмсэн). Би алхам тутамд тайлбар хийгээгүй, учир нь энэ шаардлагагүй гэж бодож байна.

ATTiny85 дээр ноорогоо байршуулаад шинэ тоглоомоо хөгжилтэй өнгөрүүлээрэй

"Хувь хүн" функцын талаархи санаанууд + магадгүй кодын жишээг таатай хүлээж аваарай:-)

Асуух зүйл байвал асуугаарай.

Миний богино зааварчилгаа, ATTINYs ертөнцөд хийсэн бяцхан аялал танд таалагдсан гэж найдаж байна.

/* ATTINY85-Rata энгийн ATTINY85 хөдөлгүүртэй гэрлийн дараах робот. 2.0 хувилбар, Auer Markus */

#оруулах

#оруулах

// мотор

#LMOTOR 0 -ийг тодорхойлох #RMOTOR 1 -ийг тодорхойлох // LEDs #PIXELPIN 2 -ийг тодорхойлох #NUMPIXEL 3 -ийг тодорхойлох // LDRs #тодорхойлох LLDR A2 #RLDR3 -ийг тодорхойлох

// otherint emo = 0; хөвөх калибр; boolean emostate; урт хуучин миллилис; // тодорхойлох NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

хүчингүй тохиргоо ()

{// дээд зэрэглэлийн цаг, өөрөөр хэлбэл та цаг хугацааны асуудалтай тулгарах болно (neopixel lib нь 16MHz -д бичигдсэн) #if (_AVR_ATtiny85_) бол (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // пикселийг эхлүүлэх PIXEL.begin (); PIXEL.show (); саатал (500); // эхлэх дараалал (int i = 0; i

хоосон давталт ()

{if (lightfollow () == 1) {left (); } if if (lightfollow () == 2) {right (); } if if (lightfollow () == 0) {forward (); } сэтгэл хөдлөл (); }

int lightfollow () {

int treshold = 14; int үр дүн = 0; зүүн тийш хөвөх = 0; баруун тийш хөвөх = 0; int дээж = 1; // LDR -ийг уншина уу (int j = 0; j <sample; j ++) {

зүүн = зүүн + аналоги Унших (LLDR); баруун = баруун + (analogRead (RLDR)*шалгалт тохируулга);

}

// үр дүнг тооцоолох (гэрэл аль зүгээс ирж байна вэ?)

if ((зүүн/дээж)> ((баруун/дээж)+гурван талт)) {үр дүн = 2;}

өөр бол ((зүүн/дээж) <((баруун/дээж) -холбогдох)) {үр дүн = 1;}

өөр {үр дүн = 0;}

буцаах үр дүн; } 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 (); }

зүүн хоосон () {

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

хоосон эрх () {

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

// энэ бол жаахан хувийн шинж чанарыг өгөхийг хичээдэг дараагийн туршилтуудад зориулагдсан зүйл юм:-) Би юу хийж чадахаа туршиж байна, гэхдээ сайн санаа хараахан гараагүй байна.

хоосон сэтгэл хөдлөл () {int emotimer = 2500; int үргэлжлэх хугацаа = санамсаргүй (250, 750); if (millis () - oldmillis> эмотимер) {oldmillis = millis (); emo = санамсаргүй (1, 4); } if (millis () - oldmillis> duration) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255)))); PIXEL.show (); завсарлага; тохиолдол 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0)))); PIXEL.show (); завсарлага; тохиолдол 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0)))); PIXEL.show (); завсарлага; анхдагч: PIXEL.setPixelColor (1, PIXEL. Color (санамсаргүй (0, 255), санамсаргүй (0, 255), санамсаргүй (0, 255))); PIXEL.show (); завсарлага; }} өөр {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0))); PIXEL.show (); }}

Зөвлөмж болгож буй: