Гэрийн робот. Жижиг гар хийцийн робот. Энэ багцаар юу авчрах вэ

Робот хийхмаш энгийн Юу шаардагдахыг харцгаая робот бүтээхробот техникийн үндсийг ойлгохын тулд гэртээ.

Роботуудын тухай киног үзсэнийхээ дараа та нэг бус удаа зэвсэгт нөхдөө бүтээхийг хүсч байсан ч хаанаас эхлэхээ мэдэхгүй байсан. Мэдээжийн хэрэг, та хоёр хөлтэй терминатор бүтээх боломжгүй, гэхдээ бид үүнд бас хичээхгүй. Цуглуулна энгийн роботГагнуурын төмрийг гартаа хэрхэн зөв барихаа мэддэг хэн бүхэн үүнийг хийж чадна, энэ нь гүн гүнзгий мэдлэг шаарддаггүй, гэхдээ тэд саад болохгүй. Сонирхогчдын робот техник нь хэлхээнээс тийм ч их ялгаатай биш, зөвхөн илүү сонирхолтой, учир нь механик, програмчлал зэрэг салбарууд энд бас нөлөөлдөг. Бүх бүрэлдэхүүн хэсгүүд нь бэлэн байдаг бөгөөд тийм ч үнэтэй биш юм. Тиймээс ахиц дэвшил зогсохгүй, бид үүнийг өөрт ашигтайгаар ашиглах болно.

Танилцуулга

Тэгэхээр. Робот гэж юу вэ? Ихэнх тохиолдолд ийм байдаг автомат төхөөрөмжЭнэ нь аливаа үйлдэлд хариу үйлдэл үзүүлдэг орчин... Роботуудыг хүн удирдаж эсвэл урьдчилан програмчлагдсан үйлдэл хийх боломжтой. Ерөнхийдөө робот нь янз бүрийн мэдрэгч (зай, эргэлтийн өнцөг, хурдатгал), видео камер, манипулятороор тоноглогдсон байдаг. Роботын электрон хэсэг нь микроконтроллер (MC) - процессор, цаг үүсгэгч, төрөл бүрийн нэмэлт төхөөрөмж, санамсаргүй хандалт, байнгын санах ойг агуулсан микро схемээс бүрдэнэ. Дэлхий дээр байдаг их хэмжээнийтөрөл бүрийн микроконтроллерууд өөр өөр газар нутагпрограмууд болон тэдгээрт үндэслэн та хүчирхэг роботуудыг цуглуулж болно. Учир нь сонирхогчийн барилгууд AVR микроконтроллерууд өргөн хэрэглэгддэг. Эдгээр нь өнөөдөр хамгийн хүртээмжтэй бөгөөд Интернетээс эдгээр MK дээр суурилсан олон жишээг олж болно. Микроконтроллертой ажиллахын тулд та ассемблер эсвэл C хэл дээр програмчлах чадвартай байх ба дижитал болон аналог электроникийн талаар анхан шатны мэдлэгтэй байх шаардлагатай. Бид төсөлдөө C-г ашиглах болно. MK-д зориулсан програмчлал нь компьютер дээр програмчлахаас тийм ч их ялгаатай биш, хэлний синтакс нь ижил, ихэнх функцууд нь бараг ижил, шинэ нь сурахад хялбар, ашиглахад хялбар байдаг.

Бидэнд хэрэгтэй зүйл

Эхлээд манай робот саад бэрхшээлийг тойрч гарах, өөрөөр хэлбэл байгаль дээрх ихэнх амьтдын хэвийн зан үйлийг давтах боломжтой болно. Ийм робот бүтээхэд шаардлагатай бүх зүйлийг радио дэлгүүрээс олж болно. Манай робот хэрхэн хөдлөхийг бид шийдэх болно. Миний бодлоор хамгийн амжилттай нь танканд ашигладаг замууд юм, энэ нь хамгийн тохиромжтой шийдэл юм, учир нь замууд нь тээврийн хэрэгслийн дугуйнаас илүү олон улсыг туулах чадвартай бөгөөд удирдахад илүү тохиромжтой (эргэх, эргүүлэхэд). замуудыг өөр өөр чиглэлд эргүүлэхэд хангалттай). Тиймээс танд бие биенээсээ хамааралгүй эргэдэг замтай ямар ч тоглоомын сав хэрэгтэй болно, та үүнийг аль ч тоглоомын дэлгүүрээс боломжийн үнээр худалдаж авах боломжтой. Энэ савнаас танд зөвхөн хурдны хайрцаг бүхий зам, мотор бүхий платформ хэрэгтэй болно, үлдсэнийг нь та аюулгүйгээр тайлж, хаяж болно. Бидэнд бас микроконтроллер хэрэгтэй, миний сонголт ATmega16 дээр унасан - энэ нь мэдрэгч болон дагалдах хэрэгслийг холбох хангалттай порттой бөгөөд ерөнхийдөө энэ нь маш тохиромжтой. Та мөн зарим радио эд анги, гагнуурын төмөр, мультиметр худалдаж авах хэрэгтэй.

MK-тай самбар хийх

Манай тохиолдолд микроконтроллер нь тархины үйл ажиллагааг гүйцэтгэх боловч бид үүнээс эхлэхгүй, харин роботын тархины тэжээлийн хангамжаас эхлэх болно. Зөв зохистой хооллолт- эрүүл мэндийн баталгаа, тиймээс бид роботоо хэрхэн зөв хооллох талаар эхлэх болно, учир нь энэ нь ихэвчлэн шинэхэн робот бүтээгчид гаргадаг алдаа юм. Мөн манай робот хэвийн ажиллахын тулд та хүчдэл тогтворжуулагч ашиглах хэрэгтэй. Би L7805 микро схемийг илүүд үздэг - энэ нь гаралтын үед 5V-ийн тогтвортой хүчдэлийг хангах зорилготой бөгөөд энэ нь бидний микроконтроллерт хэрэгтэй зүйл юм. Гэхдээ энэ микро схем дээрх хүчдэлийн уналт 2.5В орчим байдаг тул дор хаяж 7.5V хүчдэлтэй байх ёстой. Энэхүү тогтворжуулагчийн хамт электролитийн конденсаторыг хүчдэлийн долгионыг жигд болгоход ашигладаг бөгөөд туйлшралыг өөрчлөхөөс хамгаалахын тулд диодыг хэлхээнд оруулах шаардлагатай.

Одоо бид микроконтроллероо шийдэж чадна. MK-ийн хэрэг нь DIP (энэ аргаар гагнах нь илүү тохиромжтой) бөгөөд дөчин тээглүүртэй. Онгоцонд ADC, PWM, USART болон бусад олон төхөөрөмж байгаа бөгөөд бид одоогоор ашиглахгүй. Хэд хэдэн зүйлийг авч үзье чухал зангилаа... RESET зүү (MK-ийн 9-р хөл) нь резистор R1-ээр цахилгаан тэжээлийн "нэмэх" хэсэгт татагддаг - үүнийг хийх ёстой! Үгүй бол таны MK санамсаргүйгээр дахин тохируулагдсан эсвэл өөрөөр хэлбэл алдаатай байж магадгүй юм. Мөн RESET-ийг керамик конденсатор C1-ээр газардуулгатай холбох нь зүйтэй боловч зайлшгүй биш юм. Диаграммд та мөн 1000 мкФ-ийн электролитийг харж болно, энэ нь мотор ажиллаж байх үед хүчдэлийн уналтаас хамгаалдаг бөгөөд энэ нь микроконтроллерийн үйл ажиллагаанд сайнаар нөлөөлнө. Кварцын болор X1 ба конденсатор C2, C3-ийг XTAL1 ба XTAL2 шонтой аль болох ойртуулна.

MK-г хэрхэн яаж гэрэлтүүлэх талаар би ярихгүй, учир нь та энэ талаар Интернетээс уншиж болно. Бид програмаа C хэлээр бичих болно; би програмчлалын орчин болгон CodeVisionAVR-г сонгосон. Энэ нь маш тохиромжтой орчин бөгөөд эхлэгчдэд хэрэгтэй, учир нь энэ нь код үүсгэх шидтэнтэй.

Моторын удирдлага

Манай роботын нэгэн адил чухал бүрэлдэхүүн хэсэг бол моторын жолооч бөгөөд үүнийг удирдахад хялбар болгодог. Та хэзээ ч, ямар ч тохиолдолд моторыг MK-д шууд холбож болохгүй! Ерөнхийдөө хүчтэй ачааллыг микроконтроллероос шууд хянах боломжгүй, эс тэгвээс шатах болно. Түлхүүр транзисторыг ашигла. Манай тохиолдолд тусгай микро схем байдаг - L293D. Ийм энгийн төслүүдэд хэт ачааллаас хамгаалах зориулалттай диод суурилуулсан тул "D" индекс бүхий энэ микро схемийг үргэлж ашиглахыг хичээ. Энэхүү микро схемийг ажиллуулахад маш хялбар бөгөөд радио дэлгүүрээс хялбархан олж авч болно. Энэ нь DIP болон SOIC гэсэн хоёр багцтай. Самбарыг холбоход хялбар тул бид DIP багцыг ашиглах болно. L293D нь мотор болон логикийн хувьд тусдаа тэжээлийн хангамжтай. Тиймээс бид микро схемийг өөрөө тогтворжуулагчаас (VSS оролт), моторыг батерейгаас (VS оролт) шууд тэжээнэ. L293D нь нэг сувагт 600 мА ачааллыг тэсвэрлэх чадвартай бөгөөд энэ нь эдгээр хоёр сувагтай, өөрөөр хэлбэл хоёр моторыг нэг микро схемд холбох боломжтой. Гэхдээ үүнийг аюулгүй байлгахын тулд бид сувгуудыг нэгтгэж, дараа нь хөдөлгүүр бүрт нэг микрон хэрэгтэй. Үүнээс үзэхэд L293D нь 1.2 А-ыг тэсвэрлэх чадвартай. Үүнд хүрэхийн тулд диаграммд үзүүлсэн шиг микроны хөлийг нэгтгэх хэрэгтэй. Микро схем нь дараах байдлаар ажиллана: IN1 ба IN2-д логик "0", логик нэгжийг IN3 ба IN4-д хэрэглэх үед мотор нэг чиглэлд эргэлддэг бөгөөд хэрэв дохионууд урвуу байвал логик тэгийг хэрэглэнэ. мотор нөгөө чиглэлд эргэлдэж эхэлнэ. EN1 ба EN2 зүү нь суваг бүрийг асаах үүрэгтэй. Бид тэдгээрийг холбож, тогтворжуулагчаас цахилгаан тэжээлийн "нэмэх" хэсэгт холбоно. Ашиглалтын явцад микро схем халааж, радиатор суурилуулах нь энэ төрлийн тохиолдолд асуудалтай тул дулааны тархалтыг GND хөлөөр хангадаг - тэдгээрийг өргөн холбоо барих хэсэгт гагнах нь дээр. Хөдөлгүүрийн жолооч нарын талаар анх удаа мэдэх шаардлагатай бүх зүйл бол энэ юм.

Саад мэдрэгч

Манай робот жолоодож, бүх зүйлд унахгүйн тулд бид хоёрыг суулгана хэт улаан туяаны мэдрэгч... Хамгийн энгийн мэдрэгч нь хэт улаан туяаны спектрт ялгардаг IR диод ба IR диодоос дохио хүлээн авах фототранзистороос бүрдэнэ. Энэ зарчим нь: мэдрэгчийн өмнө ямар ч саад тотгор байхгүй үед IR туяа нь фототранзисторыг цохихгүй бөгөөд нээгддэггүй. Хэрэв мэдрэгчийн өмнө саад тотгор байгаа бол түүнээс туяа тусч, транзистор дээр унадаг - энэ нь нээгдэж, гүйдэл урсаж эхэлдэг. Ийм мэдрэгчийн сул тал нь өөр өөр хариу үйлдэл үзүүлэх явдал юм янз бүрийн гадаргуумөн хөндлөнгийн оролцооноос хамгаалагдаагүй - бусад төхөөрөмжүүдийн гадны дохионоос мэдрэгч нь санамсаргүйгээр ажиллах боломжтой. Дохионы модуляци нь хөндлөнгийн оролцооноос хамгаалж болох боловч одоогоор бид үүнд санаа зовохгүй байна. Эхлээд энэ нь хангалттай.


Робот програм хангамж

Роботыг сэргээхийн тулд та түүнд зориулж програм хангамж бичих хэрэгтэй, өөрөөр хэлбэл мэдрэгчээс уншилт авч, моторыг удирдах программ юм. Миний програм бол хамгийн энгийн, энэ нь агуулаагүй юм нарийн төвөгтэй бүтэцтэгээд хүн бүр ойлгох болно. Дараагийн хоёр мөрөнд манай микроконтроллерийн толгой файлууд болон саатал үүсгэх командууд орно.

#оруулна
#оруулна

Дараах мөрүүд нь нөхцөлт байна, учир нь PORTC утгууд нь таны микроконтроллерт мотор драйверийг хэрхэн холбосоноос хамаарна.

PORTC.0 = 1; PORTC.1 = 0; PORTC.2 = 1; PORTC.3 = 0; 0xFF утга нь гаралт нь лог болно гэсэн үг юм. "1" ба 0x00 - бүртгэл. "0". Дараах бүтэцтэй бол бид роботын өмнө ямар нэгэн саад тотгор байгаа эсэх, аль талд байгааг шалгана: хэрэв (! (PINB & (1)).<

Хэрэв IR диодын гэрэл фототранзисторыг цохивол микроконтроллерийн хөл дээр лог суулгана. "0" ба робот саадаас холдохын тулд арагшаа хөдөлж, дараа нь дахин саадтай мөргөлдөхгүйн тулд эргэж, дараа нь дахин урагшилна. Бид хоёр мэдрэгчтэй тул баруун болон зүүн талд хоёр удаа саад байгаа эсэхийг шалгадаг тул саад тотгорыг аль талаас нь олж мэдэх боломжтой. "delay_ms (1000)" команд нь дараагийн командыг гүйцэтгэхэд нэг секунд зарцуулагдана гэдгийг харуулж байна.

Дүгнэлт

Би анхны роботоо бүтээхэд тань туслах ихэнх асуудлыг авч үзсэн. Гэхдээ робот техник үүгээр дуусдаггүй. Хэрэв та энэ роботыг бүтээх юм бол түүнийг өргөжүүлэх олон боломж бий. Саад нь аль нэг талаас биш, шууд роботын урд байгаа бол яах вэ гэх мэт роботын алгоритмыг сайжруулж болно. Мөн кодлогчийг суулгах нь гэмтээхгүй - энэ нь таны роботыг сансарт зөв байрлуулах, байршлыг мэдэхэд туслах энгийн төхөөрөмж юм. Тодорхой болгохын тулд батерейны цэнэгийн түвшин, саад тотгор хүртэлх зай, дибаг хийх янз бүрийн мэдээллийг харуулах өнгөт эсвэл монохром дэлгэц суурилуулах боломжтой. Мэдрэгчийг сайжруулах нь бас гэмтэхгүй - ердийн фототранзисторын оронд TSOP (эдгээр нь зөвхөн тодорхой давтамжийн дохиог хүлээн авдаг IR хүлээн авагч) суурилуулах. Хэт улаан туяаны мэдрэгчээс гадна хэт авианы мэдрэгчүүд байдаг, тэдгээр нь илүү үнэтэй бөгөөд сул талгүй ч сүүлийн үед роботын инженерүүдийн дунд түгээмэл болж байна. Робот дуу чимээнд хариу үйлдэл үзүүлэхийн тулд өсгөсөн микрофон суурилуулах нь сайхан байх болно. Гэхдээ хамгийн сонирхолтой зүйл бол камер суурилуулж, машины харааны үндсэн дээр програмчлах явдал юм. Тусгай OpenCV номын сангууд байдаг бөгөөд үүний тусламжтайгаар та нүүр царай таних, өнгөт дохионы хөдөлгөөн болон бусад олон сонирхолтой зүйлсийг програмчлах боломжтой. Энэ бүхэн зөвхөн таны төсөөлөл, ур чадвараас хамаарна.

Бүрэлдэхүүн хэсгүүдийн жагсаалт:

    DIP-40 багц дахь ATmega16>

    TO-220 багц дахь L7805

    DIP-16 багц дахь L293D х2 ширхэг.

    Нэрлэсэн утгатай 0.25 Вт эсэргүүцэл: 10 кОм x1 ширхэг, 220 Ом x4 ширхэг.

    керамик конденсатор: 0.1 μF, 1 μF, 22 pF

    электролитийн конденсатор: 1000 мкФ x 16 В, 220 мкФ x 16 В х 2 ширхэг.

    диод 1N4001 эсвэл 1N4004

    16 МГц давтамжтай болор резонатор

    IR диод: дурын хоёр нь хийх болно.

    фототранзисторууд, бас дурын боловч зөвхөн хэт улаан туяаны долгионы уртад хариу үйлдэл үзүүлдэг

Програм хангамжийн код:

/ ************************************************ ** ** MK төрлийн роботын програм хангамж: ATmega16 Цагны давтамж: 16.000000 МГц Хэрэв танд өөр кварцын давтамж байгаа бол үүнийг орчны тохиргоонд зааж өгөх хэрэгтэй: Project -> Configure -> Tab "C Compiler" ****** ********************************************* / #хамаарна #оруулна void main (void) (// Оролтын портуудыг тохируулах // Эдгээр портуудаар дамжуулан бид DDRB = 0x00 мэдрэгчээс дохио хүлээн авдаг; // PORTB = 0xFF татах резисторуудыг асаана; // Гаралтын портуудыг тохируулах // Эдгээрээр дамжуулан портууд нь бид DDRC моторыг удирддаг = 0xFF; // Програмын үндсэн гогцоо. Энд бид мэдрэгчээс утгуудыг уншиж // моторыг удирдаж (1) (// PORTC.0 = 1 урагшлах; PORTC. 1 = 0; PORTC.2 = 1; PORTC.3 = 0; хэрэв (! (PINB & (1)<Миний роботын тухай

Одоогоор миний робот бараг дуусч байна.


Энэ нь утасгүй камер, зайны мэдрэгч (камер болон энэ мэдрэгч хоёулаа эргэдэг цамхаг дээр суурилагдсан), саад мэдрэгч, кодлогч, алсын удирдлагаас дохио хүлээн авагч, компьютерт холбогдох RS-232 интерфейстэй. . Энэ нь хоёр горимд ажилладаг: бие даасан болон гарын авлага (алсын удирдлагын дохиог хүлээн авдаг), зайны хүчийг хэмнэхийн тулд камерыг алсаас эсвэл робот өөрөө асаах / унтраах боломжтой. Би орон сууцны аюулгүй байдлын программ бичиж байна (компьютер руу зураг шилжүүлэх, хөдөлгөөн илрүүлэх, өрөөг тойруулан).

Гэртээ янз бүрийн материалаар робот хэрхэн хийх вэзохих тоног төхөөрөмжгүй юу? Ийм асуултууд өөрсдийн гараар бүх төрлийн төхөөрөмж, робот үйлдвэрлэхэд зориулагдсан янз бүрийн блог, форум дээр улам бүр гарч эхэлсэн. Мэдээжийн хэрэг, орчин үеийн, олон үйлдэлт робот хийх нь гэртээ бараг боломжгүй ажил юм. Гэхдээ нэг драйверын микро схем дээр хэд хэдэн фотоэлел ашиглан хамгийн энгийн робот хийх боломжтой. Өнөөдөр гэрлийн эх үүсвэр, саад бэрхшээлд хариу үйлдэл үзүүлэх мини-робот үйлдвэрлэх үе шатуудын нарийвчилсан тайлбар бүхий диаграммыг интернетээс олоход хэцүү биш юм.

Микро схемийг мотор, фотоэлелтэй холбох аргаас хамааран харанхуйд нуугдах, гэрэлд шилжих, гэрлээс зугтах, гэрлийн эрэлд хөдөлдөг маш уян хатан, хөдөлгөөнт робот авах болно.

Та ухаалаг роботоо зөвхөн гэрэлтэй, эсвэл эсрэгээрээ харанхуй шугамаар дагадаг болгох боломжтой, эсвэл мини роботыг гараараа дагадаг болгох боломжтой - түүний хэлхээнд хэдхэн тод LED нэмэхэд л хангалттай!

Үнэн хэрэгтээ энэ гар урлалыг дөнгөж эзэмшиж буй эхлэгч ч гэсэн өөрийн гараар энгийн робот хийж чадна. Энэ нийтлэлд бид саад бэрхшээлд хариу үйлдэл үзүүлж, түүнээс зайлсхийдэг гар хийцийн роботын сонголтыг авч үзэх болно.

Шууд гол руугаа орцгооё. Гэрийн робот хийхийн тулд бидэнд дараах хэсгүүд хэрэгтэй бөгөөд та үүнийг хялбархан олж болно.

1. 2-р батерей ба тэдгээрийн хайрцаг;

2. Хоёр мотор (тус бүр нь 1.5 вольт);

3. 2 SPDT унтраалга;

4. 3 үдээс;

4. Нүхтэй хуванцар бөмбөг;

5. Хатуу утсан жижиг хэсэг.

Гэрийн робот хийх үе шатууд:

1. Нэг утсыг тус бүр зургаан сантиметрээр 13 хэсэг болгон хайчилж, хоёр талаас нь 1 см-ээр ил гарга.

Гагнуурын төмрөөр бид SPDT унтраалга руу 3 утас, моторт 2 утсыг холбодог;

2. Одоо бид батерейны хайрцаг авч, нэг талд нь хоёр олон өнгийн утас (хар, улаан өнгөтэй) гарч ирдэг. Бид хэргийн нөгөө талд өөр утас гагнах хэрэгтэй.

Одоо та батерейны хайрцгийг задалж, SPDT шилжүүлэгчийг гагнасан V хэлбэрийн утсаар хажуу тийш нь наа.

3. Үүний дараа биеийн хоёр тал дээр та моторуудыг нааж, урагшаа эргүүлэх хэрэгтэй.

Дараа нь бид том цаасны хавчаар аваад нугалав. Бид нугалсан цаасны хавчаарыг хуванцар бөмбөгний нүхээр чирж, цаасны хавчаарыг бие биентэйгээ зэрэгцээ тэгшлэнэ. Бид цаасны хавчаарын төгсгөлийг бүтэцдээ наа;

4. Саад бэрхшээлээс үнэхээр зайлсхийхийн тулд гэрийн роботыг хэрхэн хийх вэ? Зураг дээр үзүүлсэн шиг суулгасан бүх утсыг гагнах нь чухал;

5. Бид нугалсан цаасны хавчаараас антен хийж, SPDT унтраалга дээр наа;

6. Зайгаа хайрцагт оруулахад л үлдэж, гэрийн робот замдаа саад болохоос зайлсхийж хөдөлж эхэлнэ.

Одоо та саад бэрхшээлийг даван туулах чадвартай гэрийн роботыг хэрхэн хийхийг мэддэг болсон.

Та зан үйлийн тодорхой зарчмаар роботыг хэрхэн өөрөө хийх вэ?Ийм роботуудын бүхэл бүтэн ангиллыг BEAM технологийг ашиглан бүтээсэн бөгөөд зан үйлийн ердийн зарчмууд нь "фотор хүлээн авах" төхөөрөмж дээр суурилдаг. Гэрлийн эрчмийн өөрчлөлтийн хариуд ийм мини-робот илүү удаан, эсвэл эсрэгээр илүү хурдан хөдөлдөг (фотокинез).

Хөдөлгөөн нь гэрлээс эсвэл гэрэл рүү чиглэсэн, фототаксины урвалаас үүдэлтэй робот хийхийн тулд бидэнд хоёр фото мэдрэгч хэрэгтэй. Фототаксины урвал нь дараах байдлаар илэрдэг: хэрэв гэрэл BEAM роботын фотосенсоруудын аль нэгэнд тусвал холбогдох цахилгаан мотор асч, робот гэрлийн эх үүсвэр рүү эргэдэг.

Дараа нь гэрэл хоёр дахь мэдрэгчийг цохиж, дараа нь хоёр дахь цахилгаан мотор асна. Одоо мини робот гэрлийн эх үүсвэр рүү хөдөлж эхлэв. Хэрэв гэрэл дахин зөвхөн нэг фото мэдрэгчийг цохих юм бол робот дахин гэрэл рүү эргэж, гэрэл хоёр мэдрэгчийг гэрэлтүүлэхэд эх үүсвэр рүү үргэлжлүүлэн хөдөлнө. Ямар ч мэдрэгч дээр гэрэл тусахгүй үед мини робот зогсдог.

Гар дагадаг роботыг яаж хийх вэ?Үүнийг хийхийн тулд бидний мини робот зөвхөн мэдрэгч төдийгүй LED-ээр тоноглогдсон байх ёстой. LED нь гэрэл цацруулж, робот туссан гэрэлд хариу үйлдэл үзүүлэх болно. Хэрэв бид алгаа аль нэг мэдрэгчийн өмнө байрлуулбал мини робот өөрийн чиглэлд эргэлддэг.

Хэрэв та алгаа харгалзах мэдрэгчээс бага зэрэг холдуулах юм бол робот "дуулгавартайгаар" далдуу модыг дагах болно. Туссан гэрлийг фототранзистороор тодорхой авахын тулд роботоо бүтээхдээ тод улбар шар эсвэл улаан LED (1000 мКд-ээс дээш) сонгох хэрэгтэй.

Роботехникийн салбарт хийх хөрөнгө оруулалтын тоо жил бүр нэмэгдэж, роботуудын олон шинэ үе бий болж, үйлдвэрлэлийн технологи хөгжихийн хэрээр робот бүтээх, ашиглах шинэ боломжууд гарч ирж, өөрийгөө сургасан авьяаслаг мастерууд гарч ирж байгаа нь нууц биш. робот техникийн салбарт шинэ бүтээлүүдээрээ дэлхийг гайхшруулсаар байна.

Суурилуулсан гэрэл мэдрэгч нь гэрэлд хариу үйлдэл үзүүлж, эх үүсвэр рүү чиглүүлдэг бөгөөд мэдрэгч нь зам дээрх саадыг таньж, робот чиглэлээ өөрчилдөг. Ийм энгийн роботыг өөрийн гараар бүтээхийн тулд "духандаа долоон зайтай", техникийн дээд боловсролтой байх шаардлагагүй. Робот бүтээхэд шаардлагатай бүх эд ангиудыг худалдаж авахад хангалттай (мөн зарим хэсгийг нь гар дээрээс олж болно), бүх микро схем, мэдрэгч, мэдрэгч, утас, моторыг аажмаар холбоход хангалттай.

Гар утаснаас чичиргээт мотороор хийсэн батерей, хоёр талт соронзон хальс, ... шүдний сойзоор хийсэн роботын хувилбарыг авч үзье. Энэхүү энгийн роботыг бэлэн хэрэгслээр хийж эхлэхийн тулд хуучин, шаардлагагүй гар утсаа аваад чичиргээний моторыг нь салга. Дараа нь хуучин шүдний сойз аваад толгойг нь эвлүүрээр таслана.

Сойзны толгойн дээд талд хоёр талт соронзон хальс, дээр нь чичиргээний мотор наа. Чичиргээний моторын хажууд хавтгай батерей суурилуулах замаар мини роботыг цахилгаанаар хангахад л үлддэг. Бүх зүйл! Манай робот бэлэн болсон - чичиргээний улмаас робот үсээр урагшлах болно.

♦ "ADVACEDE DIY"-ийн МАСТЕР АНГИ: Зураг дээр дарна уу

♦ АНХАНХАНД ЗОРИУЛСАН ВИДЕО ХИЧЭЭЛ:

Дөнгөж гагнуур авсан хүмүүс ч хамгийн энгийн робот хийж чадна.

Ихэнхдээ манай робот (загвараас хамааран) гэрэл рүү гүйх эсвэл эсрэгээрээ түүнээс зугтах, гэрлийн туяа хайж урагш гүйх эсвэл мэнгэ шиг ухрах болно.

Бидний ирээдүйн "хиймэл оюун ухаан"-ын хувьд бидэнд дараахь зүйлс хэрэгтэй болно.

  1. L293D бичил схем
  2. Жижиг цахилгаан мотор M1 (тоглоомын машинаас татаж авах боломжтой)
  3. Фототранзистор ба 200 ом эсэргүүцэл.
  4. Утас, батерей, мэдээжийн хэрэг платформ өөрөө, энэ бүхэн хаана байрлана.

Хэрэв та дизайн дээр хэд хэдэн тод LED нэмбэл робот зүгээр л гарны араас гүйх эсвэл бүр цайвар эсвэл бараан шугамыг дагахад хялбархан хүрч чадна. Бидний бүтээл BEAM ангиллын роботуудын ердийн төлөөлөгч байх болно. Ийм роботуудын зан үйлийн зарчим нь "фото хүлээн авах" дээр суурилдаг, өөрөөр хэлбэл гэрэл нь энэ тохиолдолд мэдээллийн эх сурвалж болж ажиллах болно.

Манай робот гэрлийн туяа тусах үед урагшлах болно. Төхөөрөмжийн энэ зан үйлийг "фотокинез" гэж нэрлэдэг - гэрлийн түвшний өөрчлөлтийн хариуд хөдөлгөөнийг чиглүүлэхгүй нэмэгдүүлэх эсвэл багасгах.

Манай төхөөрөмжид дээр дурдсанчлан PTR-1 бүтцийн n-p-n фототранзисторыг фотосенсор болгон ашигласан. Энд та зөвхөн фототранзистор төдийгүй фоторезистор эсвэл фотодиод ашиглаж болно, учир нь бүх элементүүдийн үйл ажиллагааны зарчим ижил байдаг.

Зураг нь роботын холболтын схемийг нэн даруй харуулж байна. Хэрэв та техникийн тэмдгүүдийн талаар хангалттай сайн мэдэхгүй байгаа бол энэхүү диаграмм дээр үндэслэн элементүүдийг бие биентэйгээ холбох, холбох зарчмуудыг ойлгоход хялбар байх болно.

GND. Хэлхээний янз бүрийн элементүүдийг газардуулгатай холбосон утаснууд (цахилгаан тэжээлийн сөрөг туйл) нь ихэвчлэн диаграмм дээр бүрэн харагдахгүй байна. Харин газрын холболтыг харуулахын тулд жижиг зураас зурсан байна. Заримдаа зураасны хажууд англи хэлнээс "GND" гэж бичдэг. "газар" гэсэн үгс - газар.

Vcc. Энэ тэмдэглэгээ нь энэ хэсэгт хэлхээг цахилгаан тэжээлд холбосон болохыг харуулж байна - Эерэг туйл! Заримдаа диаграм дээр эдгээр үсгийн оронд одоогийн үнэлгээг ихэвчлэн бичдэг. Энэ тохиолдолд + 5 В.

Роботын зарчим.

Гэрэлт туяа фототранзисторыг цохиход (диаграммд үүнийг PRT1 гэж заасан) INPUT1 микро схемийн гаралт дээр эерэг дохио гарч ирдэг бөгөөд энэ нь M1 моторыг ажиллуулдаг. Үүний эсрэгээр, гэрлийн туяа фототранзисторыг гэрэлтүүлэхээ болих үед INPUT1 микро схемийн гаралтын дохио алга болж, мотор зогсдог.

Энэ хэлхээний эсэргүүцэл R1 нь фототранзистороор дамжин өнгөрөх гүйдлийг нөхөх зорилготой юм. Резисторын нэрлэсэн утга нь 200 Ом - мэдээжийн хэрэг та бусад нэрлэсэн резисторуудыг энд гагнах боломжтой, гэхдээ фототранзисторын мэдрэмж, улмаар роботын гүйцэтгэл нь нэрлэсэн утгаас хамаарна гэдгийг санах нь зүйтэй.

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

Товчхондоо, та энэ хэлхээнд 100 Ом-оос бага эсэргүүцэлтэй резисторыг ашиглах ёсгүй, эс тэгвээс фототранзистор хэт халж, бүтэлгүйтэж магадгүй юм.

Хэмжилт хийх дижитал ба аналог мультиметр Унших хэлхээ: хамгаалалт, газардуулга Унших хэлхээ: чийдэн ба фотоэлел Цахилгаан данх засвар Зураг проекцтой өөрөө хийх цаг

Роботуудын тухай киног үзсэнийхээ дараа та нэг бус удаа зэвсэгт нөхдөө бүтээхийг хүсч байсан ч хаанаас эхлэхээ мэдэхгүй байсан. Мэдээжийн хэрэг, та хоёр хөлтэй терминатор бүтээх боломжгүй, гэхдээ бид үүнд бас хичээхгүй. Гагнуурын төмрийг гартаа хэрхэн зөв барихаа мэддэг хэн бүхэн энгийн робот угсарч чаддаг бөгөөд энэ нь гүн гүнзгий мэдлэг шаарддаггүй ч хөндлөнгөөс оролцохгүй. Сонирхогчдын робот техник нь хэлхээнээс тийм ч их ялгаатай биш, зөвхөн илүү сонирхолтой, учир нь механик, програмчлал зэрэг салбарууд энд бас нөлөөлдөг. Бүх бүрэлдэхүүн хэсгүүд нь бэлэн байдаг бөгөөд тийм ч үнэтэй биш юм. Тиймээс ахиц дэвшил зогсохгүй, бид үүнийг өөрт ашигтайгаар ашиглах болно.

Танилцуулга

Тэгэхээр. Робот гэж юу вэ? Ихэнх тохиолдолд энэ нь хүрээлэн буй орчны аливаа үйлдэлд хариу үйлдэл үзүүлэх автомат төхөөрөмж юм. Роботуудыг хүн удирдаж эсвэл урьдчилан програмчлагдсан үйлдэл хийх боломжтой. Ерөнхийдөө робот нь янз бүрийн мэдрэгч (зай, эргэлтийн өнцөг, хурдатгал), видео камер, манипулятороор тоноглогдсон байдаг. Роботын электрон хэсэг нь микроконтроллер (MC) - процессор, цаг үүсгэгч, төрөл бүрийн нэмэлт төхөөрөмж, санамсаргүй хандалт, байнгын санах ойг агуулсан микро схемээс бүрдэнэ. Дэлхий дээр янз бүрийн хэрэглээний талбарт зориулсан маш олон төрлийн микроконтроллерууд байдаг бөгөөд тэдгээрийн үндсэн дээр хүчирхэг роботуудыг угсарч болно. Сонирхогчдын барилгуудын хувьд AVR микроконтроллерууд өргөн хэрэглэгддэг. Эдгээр нь өнөөдөр хамгийн хүртээмжтэй бөгөөд Интернетээс эдгээр MK дээр суурилсан олон жишээг олж болно. Микроконтроллертой ажиллахын тулд та ассемблер эсвэл C хэл дээр програмчлах чадвартай байх ба дижитал болон аналог электроникийн талаар анхан шатны мэдлэгтэй байх шаардлагатай. Бид төсөлдөө C-г ашиглах болно. MK-д зориулсан програмчлал нь компьютер дээр програмчлахаас тийм ч их ялгаатай биш, хэлний синтакс нь ижил, ихэнх функцууд нь бараг ижил, шинэ нь сурахад хялбар, ашиглахад хялбар байдаг.

Бидэнд хэрэгтэй зүйл

Эхлээд манай робот саад бэрхшээлийг тойрч гарах, өөрөөр хэлбэл байгаль дээрх ихэнх амьтдын хэвийн зан үйлийг давтах боломжтой болно. Ийм робот бүтээхэд шаардлагатай бүх зүйлийг радио дэлгүүрээс олж болно. Манай робот хэрхэн хөдлөхийг бид шийдэх болно. Миний бодлоор хамгийн амжилттай нь танканд ашигладаг замууд юм, энэ нь хамгийн тохиромжтой шийдэл юм, учир нь замууд нь тээврийн хэрэгслийн дугуйнаас илүү олон улсыг туулах чадвартай бөгөөд удирдахад илүү тохиромжтой (эргэх, эргүүлэхэд). замуудыг өөр өөр чиглэлд эргүүлэхэд хангалттай). Тиймээс танд бие биенээсээ хамааралгүй эргэдэг замтай ямар ч тоглоомын сав хэрэгтэй болно, та үүнийг аль ч тоглоомын дэлгүүрээс боломжийн үнээр худалдаж авах боломжтой. Энэ савнаас танд зөвхөн хурдны хайрцаг бүхий зам, мотор бүхий платформ хэрэгтэй болно, үлдсэнийг нь та аюулгүйгээр тайлж, хаяж болно. Бидэнд бас микроконтроллер хэрэгтэй, миний сонголт ATmega16 дээр унасан - энэ нь мэдрэгч болон дагалдах хэрэгслийг холбох хангалттай порттой бөгөөд ерөнхийдөө энэ нь маш тохиромжтой. Та мөн зарим радио эд анги, гагнуурын төмөр, мультиметр худалдаж авах хэрэгтэй.

MK-тай самбар хийх



Роботын хэлхээ

Манай тохиолдолд микроконтроллер нь тархины үйл ажиллагааг гүйцэтгэх боловч бид үүнээс эхлэхгүй, харин роботын тархины тэжээлийн хангамжаас эхлэх болно. Зөв хооллолт нь эрүүл мэндийн түлхүүр тул бид роботоо хэрхэн зөв хооллох талаар эхлэх болно, учир нь энэ нь ихэвчлэн шинэхэн робот бүтээгчид гаргадаг алдаа юм. Мөн манай робот хэвийн ажиллахын тулд та хүчдэл тогтворжуулагч ашиглах хэрэгтэй. Би L7805 микро схемийг илүүд үздэг - энэ нь гаралтын үед 5V-ийн тогтвортой хүчдэлийг хангах зорилготой бөгөөд энэ нь бидний микроконтроллерт хэрэгтэй зүйл юм. Гэхдээ энэ микро схем дээрх хүчдэлийн уналт 2.5В орчим байдаг тул дор хаяж 7.5V хүчдэлтэй байх ёстой. Энэхүү тогтворжуулагчийн хамт электролитийн конденсаторыг хүчдэлийн долгионыг жигд болгоход ашигладаг бөгөөд туйлшралыг өөрчлөхөөс хамгаалахын тулд диодыг хэлхээнд оруулах шаардлагатай.
Одоо бид микроконтроллероо шийдэж чадна. MK-ийн хэрэг нь DIP (энэ аргаар гагнах нь илүү тохиромжтой) бөгөөд дөчин тээглүүртэй. Онгоцонд ADC, PWM, USART болон бусад олон төхөөрөмж байгаа бөгөөд бид одоогоор ашиглахгүй. Хэд хэдэн чухал зангилааг авч үзье. RESET зүү (MK-ийн 9-р хөл) нь резистор R1-ээр цахилгаан тэжээлийн "нэмэх" хэсэгт татагддаг - үүнийг хийх ёстой! Үгүй бол таны MK санамсаргүйгээр дахин тохируулагдсан эсвэл өөрөөр хэлбэл алдаатай байж магадгүй юм. Мөн RESET-ийг керамик конденсатор C1-ээр газардуулгатай холбох нь зүйтэй боловч зайлшгүй биш юм. Диаграммд та мөн 1000 мкФ-ийн электролитийг харж болно, энэ нь мотор ажиллаж байх үед хүчдэлийн уналтаас хамгаалдаг бөгөөд энэ нь микроконтроллерийн үйл ажиллагаанд сайнаар нөлөөлнө. Кварцын болор X1 ба конденсатор C2, C3-ийг XTAL1 ба XTAL2 шонтой аль болох ойртуулна.
MK-г хэрхэн яаж гэрэлтүүлэх талаар би ярихгүй, учир нь та энэ талаар Интернетээс уншиж болно. Бид програмаа C хэлээр бичих болно; би програмчлалын орчин болгон CodeVisionAVR-г сонгосон. Энэ нь маш тохиромжтой орчин бөгөөд эхлэгчдэд хэрэгтэй, учир нь энэ нь код үүсгэх шидтэнтэй.


Миний робот самбар

Моторын удирдлага

Манай роботын нэгэн адил чухал бүрэлдэхүүн хэсэг бол моторын жолооч бөгөөд үүнийг удирдахад хялбар болгодог. Та хэзээ ч, ямар ч тохиолдолд моторыг MK-д шууд холбож болохгүй! Ерөнхийдөө хүчтэй ачааллыг микроконтроллероос шууд хянах боломжгүй, эс тэгвээс шатах болно. Түлхүүр транзисторыг ашигла. Манай тохиолдолд тусгай микро схем байдаг - L293D. Ийм энгийн төслүүдэд хэт ачааллаас хамгаалах зориулалттай диод суурилуулсан тул "D" индекс бүхий энэ микро схемийг үргэлж ашиглахыг хичээ. Энэхүү микро схемийг ажиллуулахад маш хялбар бөгөөд радио дэлгүүрээс хялбархан олж авч болно. Энэ нь DIP болон SOIC гэсэн хоёр багцтай. Самбарыг холбоход хялбар тул бид DIP багцыг ашиглах болно. L293D нь мотор болон логикийн хувьд тусдаа тэжээлийн хангамжтай. Тиймээс бид микро схемийг өөрөө тогтворжуулагчаас (VSS оролт), моторыг батерейгаас (VS оролт) шууд тэжээнэ. L293D нь нэг сувагт 600 мА ачааллыг тэсвэрлэх чадвартай бөгөөд энэ нь эдгээр хоёр сувагтай, өөрөөр хэлбэл хоёр моторыг нэг микро схемд холбох боломжтой. Гэхдээ үүнийг аюулгүй байлгахын тулд бид сувгуудыг нэгтгэж, дараа нь хөдөлгүүр бүрт нэг микрон хэрэгтэй. Үүнээс үзэхэд L293D нь 1.2 А-ыг тэсвэрлэх чадвартай. Үүнд хүрэхийн тулд диаграммд үзүүлсэн шиг микроны хөлийг нэгтгэх хэрэгтэй. Микро схем нь дараах байдлаар ажиллана: IN1 ба IN2-д логик "0", логик нэгжийг IN3 ба IN4-д хэрэглэх үед мотор нэг чиглэлд эргэлддэг бөгөөд хэрэв дохионууд урвуу байвал логик тэгийг хэрэглэнэ. мотор нөгөө чиглэлд эргэлдэж эхэлнэ. EN1 ба EN2 зүү нь суваг бүрийг асаах үүрэгтэй. Бид тэдгээрийг холбож, тогтворжуулагчаас цахилгаан тэжээлийн "нэмэх" хэсэгт холбоно. Ашиглалтын явцад микро схем нь халдаг тул радиатор суурилуулах нь энэ төрлийн тохиолдолд асуудалтай тул дулааны тархалтыг GND хөлөөр хангадаг - тэдгээрийг өргөн холбоо барих хэсэгт гагнах нь дээр. Хөдөлгүүрийн жолооч нарын талаар анх удаа мэдэх шаардлагатай бүх зүйл бол энэ юм.

Саад мэдрэгч

Манай робот чиглүүлж, бүх зүйлд унахгүйн тулд бид хоёр хэт улаан туяаны мэдрэгч суурилуулах болно. Хамгийн энгийн мэдрэгч нь хэт улаан туяаны спектрт ялгардаг IR диод ба IR диодоос дохио хүлээн авах фототранзистороос бүрдэнэ. Энэ зарчим нь: мэдрэгчийн өмнө ямар ч саад тотгор байхгүй үед IR туяа нь фототранзисторыг цохихгүй бөгөөд нээгддэггүй. Хэрэв мэдрэгчийн өмнө саад тотгор байгаа бол түүнээс туяа тусч, транзистор дээр унадаг - энэ нь нээгдэж, гүйдэл урсаж эхэлдэг. Ийм мэдрэгчийн сул тал нь өөр өөр гадаргуу дээр өөр өөр хариу үйлдэл үзүүлэх чадвартай бөгөөд хөндлөнгийн нөлөөллөөс хамгаалагдаагүй байдаг - мэдрэгч нь бусад төхөөрөмжүүдийн гадны дохионоос санамсаргүйгээр өдөөж болно. Дохионы модуляци нь хөндлөнгийн оролцооноос хамгаалж болох боловч одоогоор бид үүнд санаа зовохгүй байна. Эхлээд энэ нь хангалттай.


Миний роботын мэдрэгчийн анхны хувилбар

Робот програм хангамж

Роботыг сэргээхийн тулд та түүнд зориулж програм хангамж бичих хэрэгтэй, өөрөөр хэлбэл мэдрэгчээс уншилт авч, моторыг удирдах программ юм. Миний програм бол хамгийн энгийн, нарийн төвөгтэй бүтэц агуулаагүй бөгөөд хүн бүрт ойлгомжтой байх болно. Дараагийн хоёр мөрөнд манай микроконтроллерийн толгой файлууд болон саатал үүсгэх командууд орно.

#оруулна
#оруулна

Дараах мөрүүд нь нөхцөлт байна, учир нь PORTC утгууд нь таны микроконтроллерт мотор драйверийг хэрхэн холбосоноос хамаарна.

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

0xFF утга нь гаралт нь лог болно гэсэн үг юм. "1" ба 0x00 - бүртгэл. "0".

Дараахь хийцээр бид роботын өмнө ямар нэгэн саад тотгор байгаа эсэх, аль талаас нь байгааг шалгана.

Хэрэв (! (PINB & (1.).< {
...
}

Хэрэв IR диодын гэрэл фототранзисторыг цохивол микроконтроллерийн хөл дээр лог суулгана. "0" ба робот саадаас холдохын тулд арагшаа хөдөлж, дараа нь дахин саадтай мөргөлдөхгүйн тулд эргэж, дараа нь дахин урагшилна. Бид хоёр мэдрэгчтэй тул баруун болон зүүн талд хоёр удаа саад байгаа эсэхийг шалгадаг тул саад тотгорыг аль талаас нь олж мэдэх боломжтой. "delay_ms (1000)" команд нь дараагийн командыг гүйцэтгэхэд нэг секунд зарцуулагдана гэдгийг харуулж байна.

Дүгнэлт

Би анхны роботоо бүтээхэд тань туслах ихэнх асуудлыг авч үзсэн. Гэхдээ робот техник үүгээр дуусдаггүй. Хэрэв та энэ роботыг бүтээх юм бол түүнийг өргөжүүлэх олон боломж бий. Саад нь аль нэг талаас биш, шууд роботын урд байгаа бол яах вэ гэх мэт роботын алгоритмыг сайжруулж болно. Мөн кодлогчийг суулгах нь гэмтээхгүй - энэ нь таны роботыг сансарт зөв байрлуулах, байршлыг мэдэхэд туслах энгийн төхөөрөмж юм. Тодорхой болгохын тулд батерейны цэнэгийн түвшин, саад тотгор хүртэлх зай, дибаг хийх янз бүрийн мэдээллийг харуулах өнгөт эсвэл монохром дэлгэц суурилуулах боломжтой. Мэдрэгчийг сайжруулах нь бас гэмтэхгүй - ердийн фототранзисторын оронд TSOP (эдгээр нь зөвхөн тодорхой давтамжийн дохиог хүлээн авдаг IR хүлээн авагч) суурилуулах. Хэт улаан туяаны мэдрэгчээс гадна хэт авианы мэдрэгчүүд байдаг, тэдгээр нь илүү үнэтэй бөгөөд сул талгүй ч сүүлийн үед роботын инженерүүдийн дунд түгээмэл болж байна. Робот дуу чимээнд хариу үйлдэл үзүүлэхийн тулд өсгөсөн микрофон суурилуулах нь сайхан байх болно. Гэхдээ хамгийн сонирхолтой зүйл бол камер суурилуулж, машины харааны үндсэн дээр програмчлах явдал юм. Тусгай OpenCV номын сангууд байдаг бөгөөд үүний тусламжтайгаар та нүүр царай таних, өнгөт дохионы хөдөлгөөн болон бусад олон сонирхолтой зүйлсийг програмчлах боломжтой. Энэ бүхэн зөвхөн таны төсөөлөл, ур чадвараас хамаарна.
Бүрэлдэхүүн хэсгүүдийн жагсаалт:
  • DIP-40 багц дахь ATmega16>
  • TO-220 багц дахь L7805
  • DIP-16 багц дахь L293D х2 ширхэг.
  • Нэрлэсэн утгатай 0.25 Вт эсэргүүцэл: 10 кОм x1 ширхэг, 220 Ом x4 ширхэг.
  • керамик конденсатор: 0.1 μF, 1 μF, 22 pF
  • электролитийн конденсатор: 1000 мкФ x 16 В, 220 мкФ x 16 В х 2 ширхэг.
  • диод 1N4001 эсвэл 1N4004
  • 16 МГц давтамжтай болор резонатор
  • IR диод: дурын хоёр нь хийх болно.
  • фототранзисторууд, бас дурын боловч зөвхөн хэт улаан туяаны долгионы уртад хариу үйлдэл үзүүлдэг
Програм хангамжийн код:
/*****************************************************
Робот програм хангамж

MK төрөл: ATmega16
Цагийн давтамж: 16.000000 МГц
Хэрэв танд өөр кварцын давтамж байгаа бол үүнийг орчны тохиргоонд зааж өгөх ёстой.
Project -> Configure -> C Compiler Tab
*****************************************************/

#оруулна
#оруулна

Үндсэн хүчингүй (хүчингүй)
{
// Оролтын портуудыг тохируулах
// Эдгээр портуудаар дамжуулан бид мэдрэгчээс дохио хүлээн авдаг
DDRB = 0x00;
// Татах резисторыг асаана уу
PORTB = 0xFF;

// Гаралтын портуудыг тохируулна уу
// Эдгээр портуудаар дамжуулан бид хөдөлгүүрүүдийг удирддаг
DDRC = 0xFF;

// Програмын үндсэн давталт. Энд бид мэдрэгчээс утгыг уншдаг
// ба жолоодлогын мотор
байхад (1)
{
// урагшаа явцгаая
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
хэрэв (! (PINB & (1.).< {
// 1 секунд буцах
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
саатал_мс (1000);
// боох
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
саатал_мс (1000);
}
хэрэв (! (PINB & (1.).< {
// 1 секунд буцах
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
саатал_мс (1000);
// боох
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
саатал_мс (1000);
}
};
}

Миний роботын тухай

Одоогоор миний робот бараг дуусч байна.


Энэ нь утасгүй камер, зайны мэдрэгч (камер болон энэ мэдрэгч хоёулаа эргэдэг цамхаг дээр суурилагдсан), саад мэдрэгч, кодлогч, алсын удирдлагаас дохио хүлээн авагч, компьютерт холбогдох RS-232 интерфейстэй. . Энэ нь хоёр горимд ажилладаг: бие даасан болон гарын авлага (алсын удирдлагын дохиог хүлээн авдаг), зайны хүчийг хэмнэхийн тулд камерыг алсаас эсвэл робот өөрөө асаах / унтраах боломжтой. Би орон сууцны аюулгүй байдлын программ бичиж байна (компьютер руу зураг шилжүүлэх, хөдөлгөөн илрүүлэх, өрөөг тойруулан).

Хүсэлтийн дагуу би видео нийтэлнэ:

UPD.Би зургуудыг дахин ачаалж, бичвэрт бага зэргийн засвар хийсэн.