
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50

ეს არის სერიის დასაწყისი, რომელიც გასწავლით თქვენი AVR მიკროკონტროლის პროგრამირებას Bascom AVR– ით.
რატომ ვაკეთებ ამას.
ამ სერიის პროგრამული ნიმუშების უმეტესობა შეგიძლიათ გააკეთოთ არდუინოსთან ერთად.
ზოგი უფრო ადვილი და ზოგი უფრო რთული, მაგრამ ბოლოს ორივე მუშაობს ერთსა და იმავე კონტროლერზე.
მაგრამ პროგრამირების გზა განსხვავებულია განვითარების ყველა გარემოში. არდუინოს სჭირდება ბიბლიოთეკა ყველაფრისთვის, ძირითადი ფუნქციების გარდა. ბასკომი ასევე მუშაობს ბიბლიოთეკებთან, მაგრამ მე იშვიათად მიწევს ერთის ჩართვა. Arduino– სთან ერთად, ყველა ტექნიკის სპეციფიკური პარამეტრი ხდება ბიბლიოთეკების საშუალებით. თქვენ ძალიან მცირე გავლენა გაქვთ მიკროკონტროლის რეალურ ძალაზე. დაწყებული ქრონომეტრებით, რაც კონტროლერს აქვს. არდუინოსთან ერთად ისევ გჭირდებათ ბიბლიოთეკა. თუ თქვენ გაქვთ ტაიმერი სანამ ის მუშაობს, შეიძლება სხვა ბიბლიოთეკა ეჯახება თქვენს პარამეტრებს. Bascom– ში თქვენ გაქვთ უფასო წვდომა სრულ აპარატურაზე ჩათვლით ჩატვირთვის სექტორში, რომელიც დაკავებულია arduino– ით. მაგალითად, bascom– ის ზოგიერთი ბიბლიოთეკა გკითხავს რომელი ტაიმერის გამოყენება გსურთ. მეორეს მხრივ, ვინაიდან arduino აადვილებს ბიბლიოთეკის შექმნას, ის, ბუნებრივია, გახდის პლატფორმას, სადაც ჩვეულებრივ ახალ ბიბლიოთეკას აქვს ახალი ტექნიკა და სენსორები. ის, რაც ხშირად ასოცირდება ბასკომის ბევრ კვლევასთან და ფუნქციებთან, რომელსაც ბიბლიოთეკა ჩვეულებრივ მიიღებს, შემდეგ უნდა იყოს გულმოდგინედ ჩართული პროგრამის კოდში. მაგრამ კარგი ამბავია, რომ ბასკომის საზოგადოება ასევე ძალიან დიდია, რის გამოც არსებობს გამოსავალი ყველა იდეისთვის.
ასე რომ, ეს ნაწილობრივ პროექტზეა დამოკიდებული, თუ რა გამოიყენება განვითარების გარემოსთვის და ნაწილობრივ პროგრამისტი ადამიანის ცოდნაზე.
მაგრამ რატომ ვაკეთებ ამ სერიას ერთი მხრივ, ეს დაზოგავს ბევრ ფულს. არ მაქვს არდუინოს დაფის ყიდვა ყველა პროექტისთვის. მაგალითად: noname Arduino uno დაახლოებით 12 € ღირს კონტროლერი, რომელიც მასზეა მხოლოდ 2.5 € ღირს მინიმალური სქემით, რომელიც საჭიროა სტაბილური ფუნქციისთვის, ღირს დაახლოებით 4 €. მეორეს მხრივ, თქვენ გაქვთ avr ჩიპების სრული არჩევანი, რომლებიც ხელმისაწვდომია. atmegas 8 დან 256 და attiny 8 დან 2313 და ბევრი xmega ტიპი, რომლის შესახებაც მე არ მაქვს გამოცდილება. თუ თქვენ უბრალოდ გსურთ გამოიყენოთ სერვო და ულტრაბგერითი სენსორი, რომელსაც შეუძლია ხელი ამოიცნოს, მაგალითად, და შემდეგ გახსნათ ნაგვის ურნის სახურავი, შეგიძლიათ გამოიყენოთ ყველაზე პატარა შესაძლო ჩიპი. ასე რომ, ბევრი მიზეზი არსებობს მეორე ენის შესასწავლად.
მოდით დავიწყოთ
მარაგები
ეს არის მინიმალური საჭირო ნაწილების სია ჩიპის სტაბილური მუშაობისთვის და პროგრამირებისთვის.
პურის დაფა ტესტირებისთვის
Atmega 8-16PU (უმჯობესია შეიძინოთ 2 ან 3 თუ შეცდომით მოკლავთ)
7805 5V ძაბვის რეგულატორი
10Kohm რეზისტორი
100nF ფილმის კონდენსატორი
10µF ელექტროლიტური კონდენსატორი
100µF ელექტროლიტური კონდენსატორი
რამდენიმე მავთული პურის დაფისთვის
Windows PC 7/8/8.1/10
ინტერნეტ პროვაიდერი
Bascom AVR (აქ შეგიძლიათ გადმოწეროთ DEMO. ყველა ფუნქცია განბლოკილია, მაგრამ შეგიძლიათ დაწეროთ კოდი მხოლოდ 4Kb ზომისთვის, რაც საკმარისია მრავალი კოდისთვის).
არჩევითი ნაწილები:
LED არის რეზისტენტებით
ბიძგი კონცენტრატორები
პროექტის სპეციფიკური ნაწილები
ნაბიჯი 1: Bascom– ის დაყენება და დაყენება



ჩამოტვირთეთ ფაილი და დააინსტალირეთ Bascom AVR. დააინსტალირეთ მისი ყველა ნაწილი ინსტალაციის შემდეგ ბოლო ჩამრთველის ჩათვლით.
ამის შემდეგ გადატვირთეთ კომპიუტერი, წინააღმდეგ შემთხვევაში bascom არ დაიწყება.
გადატვირთვის შემდეგ დაიწყეთ ბასკომი.
გადადით პარამეტრებზე -> პროგრამისტი და აირჩიეთ USBasp სიიდან, შეინახეთ პარამეტრები და დახურეთ Bascom.
გამოიყენეთ ეს პროგრამა usbasp– ის დასაყენებლად. ამის შემდეგ, კვლავ გადატვირთეთ კომპიუტერი. ახლა შეაერთეთ USBasp თქვენს კომპიუტერთან და დაიწყეთ მოწყობილობის მენეჯერი. USBasp უნდა გამოჩნდეს libusb მოწყობილობებზე.
კვლავ დააბრუნეთ Stat Bascom და შექმენით ახალი ფაილი. შეინახეთ იგი თქვენს კომპიუტერში და დააჭირეთ ღილაკს F7 თქვენს კლავიატურაზე.
შემდგენელი იწყებს და ადგენს ცარიელ პროგრამას. ახლა თქვენ შეგიძლიათ შეამოწმოთ პროგრამისტის ფუნქციონირება.
დააჭირეთ კლავიატურაზე F4 ღილაკს პროგრამისტის ფანჯრის დასაწყებად. ახლა გადადით ჩიპზე -> იდენტიფიკაცია, რათა დაიწყოთ ურთიერთქმედება. LED– ები USBasp– დან ახლა მოკლედ უნდა აციმციმდეს. თქვენ უნდა მიიღოთ შეტყობინება, როგორიცაა ჩიპი Id FFFFFF ვერ წაიკითხა მოწყობილობა. ეს კარგი ნიშანია, რომ პროგრამისტი მუშაობს, მაგრამ ვერ იპოვა ჩიპი.
ახლა ჩვენ შეგვიძლია დავიწყოთ პირველი წრის აგება.
ნაბიჯი 2: მოდით უფრო ახლოს შევხედოთ ჩიპს

თუ გადავხედავთ ჩიპის პინუტს, როგორც ჩანს ჩიპს არ აქვს მსგავსება არდუინოს დაფასთან. რა თქმა უნდა, ჩვენ ვიყენებთ 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 საათის წყარო /ტაიმერი /Counter0 საათის წყარო
XTAL /TOSC ქინძისთავები განკუთვნილია გარე ბროლისთვის 16 MHz– მდე (სხვადასხვა მოდელები 20 MHz– მდე) /ბროლის ქინძისთავები შიდა RTC– სთვის
T1 მსგავსია T0
AIN ქინძისთავები განკუთვნილია ანალოგური შედარებისთვის
ICP1 მსგავსია T0/T1
OC1A არის აპარატურის გამომავალი პინი pwm timer1 არხისთვის
SS / OC2 ჩიპი შეარჩიეთ პინი SPI- სთვის / ისევე როგორც OC1B მაგრამ არხი B
MOSI MISO SCK / OC2 არის ტექნიკური SPI ქინძისთავები და ქინძისთავები პროგრამირების / PWM გამომავალი ქრონომეტრისთვის 2
ADC0 to ADC5 არის ანალოგური შეყვანა
SDA SCL არის ქინძისთავები I2C აპარატურისთვის
ჩვეულებრივ ჩიპს შეუძლია იმუშაოს 4, 5V– დან 5, 5V– მდე Atmega 8L– ს შეუძლია იმუშაოს გაცილებით დაბალი ძაბვით.
ხედავთ, ამ ჩიპსაც კი შეუძლია იმაზე მეტის გაკეთება, ვიდრე Arduino Uno– ს არ შეუძლია. მაგრამ Arduino– ს შეუძლია ამის გაკეთებაც, თქვენ მხოლოდ მისი დაპროგრამება გჭირდებათ.
ნაბიჯი 3: პირველი წრე


ახლა დროა ავაშენოთ თქვენი პირველი წრე.
რა არის ჩვეულებრივ პირველი წრე? მართალია! მოდით დავხუჭოთ LED.
LED უკავშირდება PB0– ს. რეზისტორს ჩიპის გვერდით აქვს 10k Ohms.
რეზისტორს LED- ის გვერდით აქვს 470 Ohms.
ახლა თქვენ შეგიძლიათ დააკავშიროთ USBasp Atmega– სთან, როგორც ეს მოცემულია სურათზე.
მაგრამ სანამ ჩართავთ ენერგიას, მოდით დავწეროთ პროგრამა.
ნაბიჯი 4: დაწერეთ პირველი პროგრამა

შექმენით ახალი ფაილი Bascom– ში და ჩაწერეთ შემდეგი ტექსტი.
$ regfile "m8def.dat"
$ კრისტალი = 1000000 კონფიგურაცია portb.0 = გამომავალი do portb.0 = 1 ლოდინი 1 პორტი.0 = 0 ლოდინი 1 მარყუჟი
ამის შემდეგ შეადგინეთ იგი კლავიატურაზე F7 დაჭერით.
ახლა ჩვენ შეგვიძლია ჩიპის დაპროგრამება F4 დაჭერით. გამოჩნდება პროგრამისტის ფანჯარა. ახლა დროა ენერგია ჩართოთ პურის დაფაზე. თქვენ უნდა გამოიყენოთ რაღაც 6 -დან 12 ვოლტამდე.
ახლა გადადით ჩიპზე -> ავტოპროგრამზე. თუ პროგრამისტის ფანჯარა დაიხურება ავტომატურად პროგრამირება წარმატებული იყო.
LED უნდა ანათებდეს ერთ მეორე სიხშირეზე.
ახლა უფრო ახლოს დაათვალიერეთ პროგრამა სინტაქსის გასაგებად.
$ regfile "m8def.dat"
ბროლი $ = 1000000
$ regfile– ით ჩვენ ვეუბნებით შემდგენელს გამოყენებული ჩიპის ტიპს, რომლის სახელიც Arduino იქნება "m328pdef.dat"
$ ბროლით ჩვენ მას ვეუბნებით cpu სიჩქარეს დაახლოებით 1 MHz.
config portb.0 = გამომავალი
ეს ნიშნავს, რომ PB0 უნდა იმოქმედოს როგორც გამომავალი.
სხვათა შორის, აბრევიატურა PB0 ნიშნავს პორტს B bit 0. ჩიპი დაყოფილია რამდენიმე პორტად. თითოეულ პორტს ეძლევა წერილი მკაფიო იდენტიფიკაციისთვის. და თითოეული პორტფინი ცოტათი 0 -დან 7. მაგალითად, შემიძლია დავწერო სრული ბაიტი პორტის გამომავალ რეგისტრში, რომელიც გამოვა ცალკეული პორტის ქინძისთავების საშუალებით.
კეთება
მარყუჟი
ეს არის ის, რაც არდუინოში ნიშნავს ბათილი მარყუჟის განცხადებას. ამ ორ ბრძანებას შორის სამუდამოდ განმეორდება. (ზოგიერთი გამონაკლისის გარდა, მაგრამ მოგვიანებით ამის შესახებ)
პორტბ.0 = 1
დაელოდეთ 1 პორტს.0 = 0 დაელოდეთ 1
აქ ჩვენ gernerate მოციმციმე of led.
Portb.0 = 1 ეუბნება ჩიპს, რომ შეცვალოს გამომავალი PB0 5V
ლოდინის 1 ბრძანება ჩიპს დაელოდეთ ერთ წამს. თუ გსურთ led- ის უფრო სწრაფად გადართვა თქვენ უნდა შეცვალოთ ლოდინის ბრძანება ელოდებით ახლა თქვენ შეგიძლიათ დრო შეიყვანოთ მილიწამებში მაგ. ელოდება 500. (ლოდინი ნიშნავს ლოდინს ნანოწამებში)
Portb.0 = 0 ეუბნება ჩიპს, რომ შეცვალოს გამომავალი PB0 0V.
ნაბიჯი 5: დაამატეთ ღილაკი შეყვანის გამოსაყენებლად

ახლა ჩვენ დავამატებთ ღილაკს რომ განათდეს led თუ ღილაკზე დაჭერით.
ჩადეთ ღილაკი როგორც სურათზეა ნაჩვენები.
ახლა ჩაწერეთ შემდეგი პროგრამა.
$ regfile "m8def.dat"
$ კრისტალი = 1000000 კონფიგურაცია portb.0 = გამომავალი კონფიგურაცია portd.7 = შეყვანა Portd.7 = 1 გააკეთეთ თუ pind.7 = 0 მაშინ portb.0 = 1 სხვა პორტი.0 = 0 მარყუჟი
თუ თქვენ ატვირთავთ ამ პროგრამას ჩიპზე, led მხოლოდ ანათებს ღილაკზე დაჭერისას. Მაგრამ რატომ?
პროგრამა იწყება იდენტურად, როგორც ბოლო
config portd.7 = შეყვანა. ეს ნიშნავს, რომ პინ PD7, რომელიც დაკავშირებულია ღილაკთან, მოქმედებს როგორც შეყვანა.
Portd.7 = 1 არ ცვლის პინს მაღალზე, მაგრამ ააქტიურებს ატმეგას შიდა გამწევ რეზისტორს.
If statemend გამოიყურება ცოტა უცნაურად, თუ თქვენ მიჩვეული ხართ არდუინოს.
თუ იყენებთ if განცხადებას, თქვენ უნდა გამოიყენოთ "მაშინ" განცხადება. ამ ნიმუშში if განცხადება გამოიყენება ერთი ბრძანების ოპერაციებისთვის. თუ გსურთ გამოიყენოთ მეტი ბრძანება, თქვენ უნდა დაწეროთ ეს ასე.
თუ pind.7 = 0 მაშინ
portb.0 = 1 ზოგიერთი კოდი ზოგიერთი კოდი სხვა კოდი portb.0 = 0 დასრულდება თუ
if განცხადების ამ გამოყენებისთვის თქვენ უნდა გამოიყენოთ "end if" განცხადება ბოლოს.
რაც ჯერ კიდევ მნიშვნელოვანია. ალბათ თქვენ უკვე გინახავთ. შეყვანა არ იკითხება portx.x– ით, არამედ pinx.x– ით. ამის გახსენება მარტივად შეგიძლიათ. ამონაწერებს აქვთ "o" (პორტი) სიტყვაში და შეყვანისას აქვს "i" (პინი).
ახლა თქვენი ჯერია ცოტათი ვითამაშოთ.
ჩემი შემდეგი ინსტრუქცია მალე მოვა (სტანდარტული განცხადებები, როგორიცაა while, select case, for და variables.)
თუ მოგწონთ ჩემი ინსტრუქტაჟი და გსურთ მეტი მითხრათ კომენტარებში.
გირჩევთ:
დაწყება შორ მანძილზე უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით: 7 ნაბიჯი

დავიწყოთ გრძელი დიაპაზონის უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით: ზოგჯერ ვიბრაცია არის სერიოზული პრობლემების მიზეზი ბევრ პროგრამაში. მანქანების ლილვებიდან და საკისრებიდან მყარი დისკის მუშაობამდე, ვიბრაცია იწვევს მანქანის დაზიანებას, ადრეულ ჩანაცვლებას, დაბალ მუშაობას და დიდ დარტყმას აყენებს სიზუსტეზე. Მონიტორინგი
დაწყება STM32f767zi Cube IDE– ით და ატვირთეთ პერსონალური ესკიზი: 3 ნაბიჯი

დაწყება STM32f767zi Cube IDE– ით და ატვირთეთ თქვენ პერსონალური ესკიზი: იყიდეთ (დააწკაპუნეთ ტესტზე ვებ – გვერდის შესაძენად/შესანახად) გამოიყენება STM მიკროკონტროლერების დასაპროგრამებლად
Flipboard– ის დაწყება: 9 ნაბიჯი

დაწყება Flipboard– ით: ეს მოკლე გაკვეთილი შექმნილია იმისთვის, რომ დაგეხმაროთ Flipboard– ის მობილური აპლიკაციის დაწყებაში. ეს მხოლოდ შესავალია, რადგან Flipboard– ის მრავალი კონფიგურირებადი ფუნქცია არსებობს. ამ გაკვეთილის დასრულების შემდეგ თქვენ გექნებათ ძირითადი ცოდნა Flipboard– ის შესახებ
დაწყება WeMos ESP8266: 6 ნაბიჯი

დავიწყოთ WeMos ESP8266– ით: ამ ინსტრუქციურად, ჩვენ ვაპირებთ აწარმოოთ მოციმციმე Led მაგალითი WeMos ESP8266– ზე
ლომის რადიოს დაწყება: 5 ნაბიჯი (სურათებით)

როგორ დავიწყოთ ლორი რადიოთი: როგორც ახლადშექმნილი ლორი, მე მინდა გავიარო ის პროცესი, რომელიც ჩავაბარე ლომის რადიოში შესასვლელად. მე მოხიბლული ვიყავი ჰობის თვითდაჯერებულობის ასპექტით, რაც ხალხს აძლევდა კომუნიკაციის საშუალებას სხვა მეთოდების დარღვევისას. მაგრამ ასევე სასიამოვნოა