Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Bascom болон тохиргоог суулгах
- Алхам 2: Чипийг илүү ойроос харцгаая
- Алхам 3: Эхний тойрог
- Алхам 4: Эхний програмыг бичнэ үү
- Алхам 5: Оролтыг ашиглах товчлуурыг нэмнэ үү
Видео: Bascom AVR ашиглан эхлүүлэх: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Энэ бол AVR микроконтроллероо Bascom AVR ашиглан програмчлахыг заах цувралын эхлэл юм.
Би яагаад үүнийг хийж байгаа юм.
Энэ цувралын ихэнх програмын дээжийг та Arduino ашиглан хийж болно.
Зарим нь илүү хялбар, зарим нь илүү хэцүү боловч эцэст нь хоёулаа нэг хянагч дээр ажиллах болно.
Гэхдээ хөгжүүлэлтийн орчин бүрт програмчлалын арга өөр өөр байдаг. Arduino -д үндсэн функцээс бусад бүх зүйлд номын сан хэрэгтэй. Баском номын сантай ажилладаг боловч надад нэгийг оруулах нь ховор байдаг. Arduino-ийн тусламжтайгаар тоног төхөөрөмжид зориулсан бүх тохиргоог номын сангаар дамжуулан хийдэг. Та микроконтроллерийн бодит чадалд маш бага нөлөө үзүүлдэг. Хянагчийн эзэмшдэг таймеруудаас эхэлье. arduino дээр танд дахин номын сан хэрэгтэй болно. Хэрэв та ажиллах хүртэл таймертай бол энэ нь өөр номын сан таны тохиргоотой мөргөлдөж магадгүй юм. Bascom дээр та arduino -ийн эзэмшдэг ачаалах хэсгийг багтаасан иж бүрэн тоног төхөөрөмжид үнэгүй нэвтрэх боломжтой. Жишээлбэл, bascom -ийн зарим номын сан танд ямар таймер ашиглахыг хүсч байна. Нөгөөтэйгүүр, arduino нь өөрөө номын сан бий болгоход маш хялбар болгодог тул шинэ тоног төхөөрөмж, мэдрэгч нь ихэвчлэн шууд номын сантай болох тавцан болдог. ихэвчлэн bascom -ийн олон судалгаа, номын сангийн хийх ёстой үүргийг ихэвчлэн програмын кодонд нухацтай оруулах ёстой. Гэхдээ сайн мэдээ бол баскомын нийгэмлэг маш том тул санаа бүрийн шийдэл байдаг.
Тиймээс энэ нь хөгжүүлэлтийн орчинд ашиглаж буй төсөл, нөгөө талаас програмист хүний мэдлэгээс хамаарна.
гэхдээ яагаад би энэ цувралыг хийж байгаа юм. нэг талаас маш их мөнгө хэмнэдэг. Төсөл болгонд би arduino самбар худалдаж авах шаардлагагүй. Жишээлбэл: Arduino uno noname нь ойролцоогоор 12 еврогийн үнэтэй бөгөөд хянагч нь ердөө 2.5 еврогийн үнэтэй бөгөөд тогтвортой үйл ажиллагаанд шаардагдах хамгийн бага хэлхээний хувьд 4 еврогийн үнэтэй байдаг. Нөгөө талаар танд дэмжигдсэн avr чипсийн бүрэн сонголт байна. atmegas 8 -аас 256 хүртэл, attiny 8 -аас 2313 хүртэл, надад туршлагагүй олон xmega төрөл. Хэрэв та зүгээр л гараа таних чадвартай servo болон хэт авианы мэдрэгч ашиглахыг хүсч, дараа нь хогийн савны тагийг онгойлгохыг хүсч байвал хамгийн жижиг чипийг ашиглаж болно. Тиймээс хоёр дахь хэл сурах олон шалтгаан бий.
Тиймээс эхэлцгээе
Хангамж
Энэ бол чипийг тогтвортой ажиллуулах, програмчлахад шаардлагатай хамгийн бага хэсгүүдийн жагсаалт юм.
Туршилтын талхны самбар
Atmega 8-16PU (хэрэв та санаандгүй алсан бол 2 эсвэл 3 худалдаж авсан нь дээр)
7805 5V хүчдэлийн зохицуулагч
10 кох эсэргүүцэл
100nF киноны конденсатор
10μF электролитийн конденсатор
100 мкФ электролитийн конденсатор
талхны хавтангийн зарим утас
Windows PC 7/8/8.1/10
ISP програмист (би энд USBasp ашиглах болно, та үүнийг Amazon дээр бага мөнгөөр худалдаж авч болно)
Bascom AVR (та эндээс DEMO татаж авах боломжтой. Бүх функцуудыг онгойлгосон боловч та маш олон кодонд хангалттай 4Kb хэмжээтэй код бичих боломжтой).
Нэмэлт хэсгүүд:
LED нь резистортой
түлхэх түлхүүрүүд
төслийн тусгай хэсгүүд
Алхам 1: Bascom болон тохиргоог суулгах
Файлыг татаж аваад Bascom AVR -ийг суулгана уу. Суулгасны дараа хамгийн сүүлийн хайрцгийг оруулаад бүх хэсгийг нь суулгаарай.
Үүний дараа компьютераа дахин ачаална уу, тэгэхгүй бол bascom ажиллахгүй болно.
Дахин ачаалсны дараа bascom -ийг эхлүүлнэ үү.
Options -> Programmer руу ороод жагсаалтаас USBasp -ийг сонгоод тохиргоог хадгалаад Bascom -ийг хаагаарай.
Usbasp суулгахын тулд энэ програмыг ашиглана уу. Үүний дараа компьютераа дахин ачаална уу. USBasp -ийг компьютер дээрээ холбоод төхөөрөмжийн менежерийг ажиллуулна уу. USBasp нь libusb төхөөрөмжүүд дээр гарч ирэх ёстой.
Стат Баскомыг дахин ажиллуулаад шинэ файл үүсгэнэ үү. Үүнийг компьютер дээрээ хадгалаад гар дээрх F7 товчлуурыг дарна уу.
Хөрвүүлэгч нь хоосон програмыг эхлүүлж хөрвүүлдэг. Одоо та програмистын ажиллагааг шалгаж болно.
Программистын цонхыг эхлүүлэхийн тулд гар дээрх F4 товчийг дарна уу. Одоо харилцан яриа эхлүүлэхийн тулд chip -> тодорхойлох хэсэгт очно уу. USBasp -ийн LED нь богино хугацаанд анивчих ёстой. Та төхөөрөмжийг уншиж чадаагүй Id FFFFFF чип шиг мессеж хүлээн авах ёстой. Энэ бол програмист ажиллаж байгаа сайн шинж тэмдэг боловч ямар ч чип олдсонгүй.
Одоо бид эхний хэлхээг барьж эхлэх боломжтой.
Алхам 2: Чипийг илүү ойроос харцгаая
Хэрэв та чипний зүүг харвал энэ чип нь arduino самбартай ямар ч адилгүй юм шиг санагдаж байна. Мэдээжийн хэрэг, бид Atmega8 ашигладаг бөгөөд Arduino uno дээр Atmega328 байдаг. Гэхдээ Pinout нь бараг ижил боловч Arduino Uno самбарын чип нь илүү олон үүрэг гүйцэтгэдэг. Энд тээглүүрүүдийн нэрс байна. VCC ба GND нь цахилгаан хангамжийн зүү юм.
AREF ба AVCC нь аналоги тоон хөрвүүлэгчийн лавлах хүчдэл ба тэжээлийн хангамжийн зүү юм.
PB 0-7 PC 0-6 PD 0-7 нь олон хүний суудалтай ерөнхий зориулалтын оролтын гаралт юм.
Дахин тохируулах пин гэдэг нь нэрийг хэлдэг. Чипийг дахин эхлүүлэхийн тулд. Дахин тохируулах нэр дээрх мөр нь татгалзах гэсэн утгатай. Энэ нь чипийг дахин тохируулахын тулд та үүнийг 0V хүртэл татах ёстой гэсэн үг юм.
Дараахь голуудын хувьд тусдаа зааварчилгаа удахгүй ирнэ.
RXD TXD бол UART цуваа холбооны тоног төхөөрөмжийн зүү юм.
INT0 INT1 нь тоног төхөөрөмжийн тасалдал юм
XCK /T0 UART Цагийн эх сурвалж /Таймер /Тоолуур0 Цагны эх үүсвэр
XTAL /TOSC тээглүүр нь 16 МГц хүртэлх гадаад болор (20 МГц хүртэлх өөр өөр загвар) /Дотоод RTC -ийн болор зүү юм.
T1 нь T0 -той төстэй
AIN тээглүүр нь аналог харьцуулагчид зориулагдсан болно
ICP1 нь T0/T1 -тэй төстэй
OC1A бол pwm timer1 сувгийн A тоног төхөөрөмжийн гаралтын зүү юм
SS / OC2 чип нь SPI / OC1B шиг боловч B сувгийг сонгоно
MOSI MISO SCK / OC2 нь тоног төхөөрөмжийн SPI тээглүүр ба програмчлах / PWM гаралтын таймер2
ADC0 - ADC5 нь аналог оролт юм
SDA SCL нь I2C техник хангамжийн зүү юм
Энгийн чип нь 4, 5 В -оос 5, 5 В хүртэл ажиллах боломжтой Atmega 8L нь бага хүчдэлтэй ажиллах боломжтой.
Энэ чип ч гэсэн Arduino Uno -гийн хийж чадахгүй байгаагаас илүү их зүйлийг хийж чадна гэдгийг та харж байна. Гэхдээ Arduino үүнийг хийж чадна, та үүнийг зөвхөн програмчлах хэрэгтэй.
Алхам 3: Эхний тойрог
Одоо таны анхны хэлхээг бий болгох цаг боллоо.
Эхний хэлхээ нь ихэвчлэн юу вэ? Зөв! LED анивчъя.
LED нь PB0 -тэй холбогддог. Чипийн дэргэдэх резистор нь 10 к Ом байна.
LED -ийн дэргэдэх эсэргүүцэл нь 470 Ом байна.
Одоо та USBasp -ийг зураг дээр үзүүлсэн шиг Atmega -тай холбож болно.
Гэхдээ та асаахаасаа өмнө програмаа бичээрэй.
Алхам 4: Эхний програмыг бичнэ үү
Bascom дээр шинэ файл үүсгээд дараагийн текстийг бичнэ үү.
$ regfile "m8def.dat"
$ Crystal = 1000000 config portb.0 = portb.0 = 1 гаралт 1 portb.0 = 0 хүлээх 1 давталт
Үүний дараа гар дээрээ F7 дарж үүнийг эмхэтгээрэй.
Одоо бид чипийг F4 дарж програмчилж болно. Программистын цонх гарч ирнэ. Одоо талхны самбараас тэжээл асаах цаг болжээ. Та 6-12 вольтын хооронд ямар нэгэн зүйл түрхэх хэрэгтэй.
Одоо chip -> autoprogram руу очно уу. Хэрэв програмистын цонх автоматаар хаагдах юм бол програмчлал амжилттай болсон.
LED нь нэг секундын давтамжтайгаар анивчих ёстой.
Одоо синтаксийг ойлгохын тулд програмыг нарийвчлан авч үзье.
$ regfile "m8def.dat"
$ болор = 1000000
$ regfile ашиглан бид хөрвүүлэгчид ашигласан чипийн төрлийг Arduino чипийн нэрийг "m328pdef.dat" гэж хэлдэг.
$ crystal ашиглан бид түүнд 1MHz cpu хурдыг хэлдэг.
config portb.0 = Гаралт
Энэ нь PB0 нь гаралтын үүргийг гүйцэтгэх ёстой гэсэн үг юм.
Дашрамд дурдахад PB0 товчлол нь В порт бит 0 гэсэн утгатай. Чип нь хэд хэдэн портод хуваагддаг. Боомт бүрийг тодорхой тодорхойлохын тулд захидал өгдөг. ба портпин бүр 0 -ээс 7 хүртэл жаахан. Жишээлбэл, би портын гаралтын бүртгэлд бүрэн байт бичиж өгч болох бөгөөд энэ нь тус тусдаа порт тээглүүрээр гарах болно.
хийх
гогцоо
Энэ бол Arduino -д void loop мэдэгдэл гэсэн үг юм. Энэ хоёр тушаалын хоорондох бүх зүйл үүрд давтагдах болно. (зарим үл хамаарах зүйлийг эс тооцвол сүүлд нь энэ талаар дэлгэрэнгүй)
Портб.0 = 1
хүлээх 1 порт.0 = 0 хүлээх 1
Энд бид LED -ийн анивчсан байдлыг анзаарч байна.
Portb.0 = 1 нь чипийг PB0 гаралтыг 5V болгон өөрчлөхийг хэлдэг
хүлээх 1 команд нь чипийг нэг секунд хүлээх боломжийг олгодог. Хэрэв та гэрлийг илүү хурдан солихыг хүсч байвал хүлээх тушаалыг хүлээлтийн системээр солих хэрэгтэй, та хэдэн цагийг миллисекундээр оруулах боломжтой. waitms 500. (waitus гэдэг нь наносекундээр хүлээхийг хэлнэ)
Portb.0 = 0 нь чипийг PB0 гаралтыг 0V болгон өөрчлөхийг хэлдэг.
Алхам 5: Оролтыг ашиглах товчлуурыг нэмнэ үү
Одоо бид товчлуур дарагдсан бол LED -ийг асаах товчлуур нэмж оруулав.
Зураг дээр үзүүлсэн шиг товчлуурыг оруулна уу.
одоо дараах програмыг бичнэ үү.
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = гаралтын тохиргооны portd.7 = оролт Portd.7 = 1 бол pind.7 = 0 бол portb.0 = 1 өөр portb.0 = 0 гогцоо
Хэрэв та энэ програмыг чип дээр байршуулах юм бол товчлуур дарахад л гэрэл асдаг. Гэхдээ яагаад?
Хөтөлбөр нь өмнөх програмтай ижил хугацаанд эхэлнэ
config portd.7 = оролт. Энэ нь товчлууртай холбогдсон PD7 зүү оролтын үүрэг гүйцэтгэдэг гэсэн үг юм.
Portd.7 = 1 нь зүүг өндөрт шилжүүлдэггүй боловч Атмега -ийн дотоод татах эсэргүүцлийг идэвхжүүлдэг.
Хэрэв та arduino -д дассан бол if statemend арай л аймшигтай харагдаж байна.
хэрэв if if -ийг ашиглавал "then" гэсэн тушаалыг ашиглах ёстой. Энэ жишээнд if командыг ганц тушаалын үйлдэлд ашигладаг. Хэрэв та илүү олон тушаалыг ашиглахыг хүсч байвал үүнийг ингэж бичих хэрэгтэй.
Хэрэв pind.7 = 0 бол
portb.0 = 1 зарим код зарим код зарим код өөр portb.0 = 0 бол төгсгөл
if -ийг ашиглахын тулд та төгсгөлд нь "if if" хэллэгийг ашиглах ёстой.
юу чухал хэвээр байна. Магадгүй та үүнийг аль хэдийн харсан байх. оролтыг portx.x -ээр биш харин pinx.x -ээр асуудаг. Та үүнийг амархан санаж чадна. Гаралт нь үгэнд "o" (порт), оролтод "i" (зүү) байна.
Одоо таны эргэн тойронд жаахан тоглох ээлж боллоо.
Миний дараагийн зааварчилгаа удахгүй ирэх болно (while, case, for, хувьсагч гэх мэт стандарт мэдэгдэл).
Хэрэв танд миний зааварчилгаа таалагдаж, илүү ихийг хүсч байвал коммент хэсэгт хэлээрэй.
Зөвлөмж болгож буй:
Eclipse (eGit) ашиглан интерактив үйлдлийг хэрхэн дахин эхлүүлэх вэ: 10 алхам
Eclipse (eGit) ашиглан интерактив үйлдлийг хэрхэн дахин яаж хийх вэ: 20180718 - Би " боддог " Би зургуудтай холбоотой асуудлыг шийдсэн. Хэрэв тэдгээр нь томруулж харагдсан эсвэл утгагүй бол дарж үзнэ үү. Хэрэв танд ямар нэгэн асуудал тулгарвал надад мэдэгдэл илгээнэ үү, би танд туслахыг хичээх болно
DIY модулийг ашиглан гэрийн автоматжуулалтыг эхлүүлэх маш энгийн арга: 6 алхам
DIY модулийг ашиглан гэрийн автоматжуулалтыг эхлүүлэх маш энгийн арга: Гэрийн туслах ажилд DIY мэдрэгч нэмж оруулахаар шийдсэндээ би маш их гайхсан. ESPHome -ийг ашиглах нь маш энгийн бөгөөд энэ нийтлэлд бид GPIO зүүг хэрхэн хянах, мөн температурыг хэрхэн яаж авах талаар сурах болно. утасгүй сүлжээнээс авсан чийгшлийн мэдээлэл
Jetson Nano ашиглан хямд өртөгтэй RPLIDAR-ийг эхлүүлэх нь: 5 алхам
Хямд өртөгтэй RPLIDAR-ийг Jetson Nano ашиглан эхлүүлэх нь: товч тойм Гэрэл илрүүлэх ба хязгаарлах (LiDAR) нь дууны долгионы оронд лазер импульс бүхий хэт авианы алсын удирдлага ашигладагтай адил ажилладаг. Yandex, Uber, Waymo гэх мэт компаниуд бие даасан автомашин үйлдвэрлэхэд LiDAR технологид ихээхэн хөрөнгө оруулалт хийж байна
Raspberry Pi 3 дээр Raspbian Buster суулгах - Raspberry Buster -ийг Raspberry Pi 3b / 3b+ашиглан эхлүүлэх: 4 алхам
Raspberry Pi 3 дээр Raspbian Buster суулгах | Raspberry Pi 3b / 3b+бүхий Raspbian Buster -ийг эхлүүлэх нь: Сайн байна уу залуусаа, саяхан Raspberry pi байгууллага Raspbian Buster нэртэй шинэ Raspbian OS -ийг нээв. Энэ бол Raspberry pi -ийн Raspbian -ийн шинэ хувилбар юм. Тиймээс өнөөдөр энэ зааварчилгаанд Raspbian Buster OS -ийг Raspberry pi 3 дээрээ хэрхэн суулгах талаар сурах болно
Digispark Attiny85 -ийг Arduino IDE ашиглан эхлүүлэх нь: 4 алхам
Digispark Attiny85 -ийг Arduino IDE ашиглан эхлүүлэх: Digispark бол Arduino шугамтай төстэй Attiny85 дээр суурилсан микроконтроллерийн самбар бөгөөд зөвхөн хямд, жижиг, арай бага чадалтай. Олон тооны бамбайгаар түүний функцийг өргөжүүлж, танил Arduino ID -г ашиглах боломжтой болно