Mündəricat:
- Addım 1: Cobbler Əlavəsi qurmaq
- Addım 2: Avrdude qurmaq və istifadə etmək
- Addım 3: Arduino proqramlarını AVR -lərə daxil edin
Video: AVR/Arduino Raspberry Pi ilə yanıb -sönür: 3 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Sistem içi proqramçı (ISP), bir çox mikro nəzarətçini proqramlaşdırmaq üçün istifadə edə biləcəyiniz bir cihazdır, məsələn, Arduino Uno-nun beyni olan ATMega328p. USBtinyISP kimi bir şey ala bilərsiniz və ya bir Arduino istifadə edə bilərsiniz. Bu təlimat sizə bir Raspberry Pi -ni ISP olaraq necə istifadə edəcəyinizi göstərəcək.
Arduino IDE -nin fişləri flaş etmək üçün başlıq altında istifadə etdiyi avrdude proqramı bir çox proqramçı ilə birlikdə istifadə edilə bilər. Seçimlərindən biri, Pi'nin genişləndirici portundakı SPI pinlərindən istifadə etməkdir. Müvafiq əlaqələri necə quracağınızı, perfboardda sadə bir dövrə quracağınızı izah edəcəyəm ki, hər dəfə bir çip yandırmaq istədiyiniz zaman naqilləri təkrar etməyəsiniz və avrdude -ni necə qurub istifadə edəsiniz. Arduino IDE istifadə edərək ATmega və ya ATtiny kimi bir AVR çipinə bu metoddan istifadə edərək proqramların necə qurulacağını da göstərəcəyəm.
Lazım olan şeylər:
- Ən son Raspbian quraşdırılmış Raspberry Pi
- 40 pinli kişi başlıq yuvası (və ya daha köhnə bir Pi varsa 26 pinli)
- Pi -yə qoşulmaq üçün IDE kabeli
- 16 MHz kristal rezonator
- 22 pF kondansatörler (2)
- Proqramçı statusunu göstərmək üçün LED (1)
- 8, 14 və/və ya 28 pinli IC yuvası, hansı fiş fişini yandırmaq istədiyinizə görə
- Bir az lövhə, tel, lehim
Addım 1: Cobbler Əlavəsi qurmaq
Dörd telli serial olaraq da adlandırılan Serial Periferik İnterfeysi (SPI), tək bir master cihazı ilə bir və ya bir neçə qul cihazı arasında ünsiyyət qurmağın bir yoludur. Bunu fişləri flaş etmək üçün istifadə edəcəyik, ustası Pi, qul isə çipdir. Pi ilə çipiniz arasında aşağıdakı əlaqələri quracaqsınız (hansı pinlərin olduğunu bilmək üçün müxtəlif AVR və Pi genişləndirmə portları üçün yuxarıdakı pinoutlara baxın):
- MOSI (master-out-slave-in) pinlərini bir-birinə bağlayın
- SCLK (paylaşılan saat) pinlərini birlikdə bağlayın
- Pi-ni çipdən gözlənilməz yüksək gərginliklərdən qorumaq üçün MISO (qulluqdan çıxma) pinlərini 220 Ohm rezistorla birləşdirin.
- Pi üzərindəki GPIO 25 -i birbaşa çipdəki RESET pininə qoşun. Proqramlaşdırma zamanı Pi bu pimi aşağı çəkir, buna görə proqramlaşdırma zamanı onu yüksək saxlamaq üçün 10K müqavimət və proqramlaşdırma zamanı bizə gözəl vizual rəy vermək üçün müsbət gərginliyə işləyən 1K qoruyucu rezistoru olan bir LED istifadə edirik.
Yer və güc (3.3V) pinlərini Pi ilə proqramlaşdırmaq istədiyimiz çiplər arasında bağlayırıq. Bilmirsinizsə, Raspberry Pi -nin pinləri 5V -ə dözümlü deyil - üzərində 3.3V -dən çox görünsə zədələnəcək. Proqramlaşdırılan çiplərin nədənsə 5V gücünə ehtiyacı varsa, Pi sancaqlarını qorumaq üçün bir səviyyə dəyişdirmə çipindən istifadə edə bilərik, amma 3.3V istifadə edərək heç bir problem yaşamamışam - buna görə onu təhlükəsiz oynamağı və komponentlərə qənaət etməyi məsləhət görürəm.
Nəhayət, çipdəki XTAL sancaqlar arasında 16MHz bir kristal osilator bağlayırıq və onu da bir neçə 22pF kondansatör vasitəsilə yerə bağlayırıq. AVR çipləri fərqli tezliklərdə çalışa bilər və bu tezliyi təyin etmək üçün daxili və ya xarici bir qaynaqdan istifadə etmək üçün də qurula bilər. Çipiniz tezlik mənbəyi olaraq xarici bir kristal istifadə edəcəksə, onsuz yenidən proqramlaşdıra bilməyəcəksiniz. Əks təqdirdə orada olub -olmamasının əhəmiyyəti yoxdur.
Son şəkildəki dövrə sxemini, ayaqqabı əlavənizi taxtaya taxmaq üçün bir bələdçi olaraq istifadə edə bilərsiniz. İstədiyiniz qədər çox və ya bir neçə fərqli IC yuvasına sahib ola bilərsiniz, yalnız uyğun pinləri Pi və kristal ilə paralel olaraq bağlayın. N. B. bir prototipim şəklini bələdçi olaraq istifadə edirsinizsə, unutmayın ki, əlaqəsiz səbəblərdən Pi üzərindəki sancaqlara daxil ola biləcəyim üçün əlavə başlıqlar və rozetkalar əlavə etdim.
Addım 2: Avrdude qurmaq və istifadə etmək
Pi -də avrdude qurmaq üçün sadəcə yazın
sudo apt-get avrdude quraşdırın
Daha sonra açılmamışsa, SPI interfeysini aktiv etməlisiniz. Bunu etmək üçün bir əmr satırı yolu var, ancaq Raspberry Pi konfiqurasiya alətindən istifadə etmək daha asandır. Yazın
sudo raspi-config
və SPI -ni açmaq üçün İnterfeys Seçimlərinə keçin.
Çipinizi yandırmaq üçün, Pi -dən olan lent kabelini perfboard dövrəsindəki konnektora daxil edin və çipi uyğun IC yuvasına daxil edin (doğru tərəfə baxdığından əmin olun).
Bir proqramı yandırarkən, çipdəki qoruyucuları düzgün qurduğunuzdan da əmin olmalısınız. Bunlar həqiqətən hansı saat sürətində çalışacağını, çip yazarkən EEPROM -un silinib silinməyəcəyini söyləmək üçün qoyduğunuz çipdəki bitlərdir. Hər biti necə quracağınızı anlamaq üçün tam AVR spesifikasiyasını oxuya bilərsiniz, ancaq engbedded.com/fusecalc saytında təqdim olunan qoruyucu kalkulyatordan istifadə etmək daha asandır. İstifadə etdiyiniz AVR hissə adını seçin və "Xüsusiyyət Seçimi" sahəsində istədiyiniz variantları seçin. Adətən saat parametrlərinin düzgün olduğundan əmin oluram və digər şeyləri standart olaraq qoyuram. Demək olar ki, həmişə "Seri proqramlaşdırma aktivdir" yoxlanılır və "Sıfırla deaktivdir" Yoxlanılmamış qalmaq istəyəcəksiniz - əks halda çipi yenidən proqramlaşdıra bilməyəcəksiniz. Doğru parametrlərə sahib olduğunuzda, "Cari Ayarlar" sahəsini aşağıya fırladıb şəkildəki kimi AVRDUDE arqumentlərini kopyalaya bilərsiniz.
Sigortaları qurmaq üçün əmri daxil edin
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p
hissə adı istifadə etdiyiniz çipə uyğundur. Sudo ardude -c linuxspi -p? Yazaraq hissə adlarının siyahısını tapa bilərsiniz. Proqramınızı flaş etmək üçün cari qovluğunuzda olduğundan əmin olun və daxil olun
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flaş: w:: i
Hər iki əmrdən sonra, çip dəyişdirilərkən LED yanacaq.
Addım 3: Arduino proqramlarını AVR -lərə daxil edin
Bu təlimatın əsas diqqəti, əvvəlcədən tərtib edilmiş proqramları çiplərin üzərinə yazmaqdır, onları necə yazmaq və ya tərtib etmək deyil. Bununla birlikdə Arduino IDE -dən istifadə edərək ikili faylları necə tərtib edə biləcəyinizi və bu metoddan istifadə edərək onları çılpaq AVR çiplərinə necə yükləyə biləcəyinizi izah etmək istədim, çünki Arduino -nu öyrənmək nisbətən asandır və çoxlu dərsliklər və nümunələr var.
Əvvəlcə yanıb -sönəcək AVR çipləri haqqında məlumat əlavə etməlisiniz ki, IDE onlar üçün necə tərtib ediləcəyini bilsin. James Sleeman, github -da mövcud olan bəzi quraşdırma fayllarını çox faydalı şəkildə bir araya gətirdi. Onlardan istifadə etmək üçün Arduino IDE -də "Tercihlər" menyusunu açın və "Əlavə Kartlar Meneceri URLləri" sahəsinin yanındakı qutuyu vurun. Görünən informasiya qutusuna aşağıdakı URL -ləri kopyalayın və yapışdırın:
Sonra "Alətlər" menyusuna gedin və "İdarə Heyəti" alt menyusunda "Lövhələr Meneceri…" seçimini tapın. Lövhələr Meneceri informasiya qutusunda siyahının sonuna doğru diyirləyin və DIY ATmega və DIY ATtiny lövhələrini quraşdırın.
Proqramlarınızı tərtib etmək üçün əvvəlcə "Prosessor" menyusundan düzgün çipi seçdiyinizdən və düzgün İşlemci Sürətindən əmin olun. "Bootloader istifadə edin: Xeyr" seçimini seçin, çünki birbaşa Pi ilə yükləyəcəyik və buna görə də normal olaraq Arduino bootloader tərəfindən alınacaq əlavə yerdən istifadə edə bilərik. İndi "Doğrula" düyməsini basın (onay işareti). Bu, proqramınızı yükləməyə çalışmadan tərtib edəcək (çünki bu addımı özünüz edirsiniz).
Hər şeyin yaxşı getdiyini düşünərək, indi tərtib edilmiş proqramı Pi -yə çatdırmalısınız. IDE onları müvəqqəti bir yerdə gizlədir, çünki proqramları özü yükləmək üçün hazırlanmışdır. Windows -da, istifadəçi qovluğundakı AppData/Local/Temp -də, 'arduino_build' ilə başlayan qovluqdadır.. Hex faylını axtarın - bu sizin proqramınızdır! FTP vasitəsilə və ya USB çubuğu ilə Pi -yə göndərin və işiniz var.
Bunu etmək üçün proqramlarınızı tərtib etmək üçün Windows PC və ya Mac -a sahib olmağınız tələb olunur, sonra onu Pi -yə göndərirsiniz. Bunu Pi -nin özündə etmək həqiqətən gözəl olardı, amma təəssüf ki, Raspbian anbarında mövcud olan Arduino IDE -nin rəsmi versiyası olduqca köhnədir və İdarə Heyətinin meneceri yoxdur. Bu olmadan, çılpaq AVR -lər üçün tərtib etmək üçün uyğun parametrləri əlavə etmək bir az çətindir. Pi -də Arduino -nun daha yeni bir versiyasını tərtib etmək üçün orada dərsliklər var - əgər bunu etmək istəsən, get onları tap! IDE -nin bir çipi IDE -nin özündən (yəni "Yükləmə" düyməsini istifadə edərək) yanıb -sönməsi üçün linuxspi proqramçıdan istifadə etməsinin mümkün olacağını düşünürəm, amma bu mənim səbr və bacarıq səviyyəmdən kənardır - əgər bilirsinizsə bir şəkildə, şərhlərdə yazın! Nəhayət, proqramları birbaşa AVR-C-də yaza və Raspberry Pi-də tam bir AVR inkişaf etdirmə platforması verərək avr-gcc ilə Pi üzərində tərtib edə bilərsiniz. Bunun bir azını etdim və bu yola getmək istəyirsinizsə, sizi salamlayıram. Yanıp sönün!
Tövsiyə:
Tasmota ilə yanıb -sönən EACHEN WiFi Smart Touch Switch: 10 addım
Tasmota ilə yanıb -sönən EACHEN WiFi Ağıllı Toxunma Açarı: Buna görə də bunun mümkün olub -olmadığını maraqlandıran hər kəs üçün bunu Təlimatlandırıcı etmək qərarına gəldim
Günəş enerjisi ilə işləyən ürək yanıb sönən LED asma zərgərlik: 11 addım (şəkillərlə)
Günəş Enerjili Ürək Blinky LED Kolye Zərgərlik: Bu təlimat, qırmızı bir LED ilə günəş enerjisi ilə işləyən ürək üçündür. Təxminən 2 " USB sekmesi daxil olmaqla 1.25 " tərəfindən. Lövhənin yuxarı hissəsində bir deşik var, bu da asılmasını asanlaşdırır. Bir boyunbağı, sırğa, sancağa bağlamaq kimi geyin
LED -lərdən və AT Tiny -dən istifadə edərək, "Pırıltı, Parıltı, Kiçik Ulduz" oynayan Piezo ilə yanıb -sönən bir ulduz yaratmaq üçün: 6 addım
LED -lərdən və AT Tiny -dən istifadə edərək "Pırıltı, Parıltı, Kiçik Ulduz" oynayan Piezo ilə Yanıp Sönən Ulduz Yaratmaq: Bu dövrə, yanıb -sönən bir ulduz və " Parıltı, Parıltı, kiçik ulduz " Zəhmət olmasa dövrə və dövrə ümumi baxış üçün növbəti addıma baxın
Linux istifadə edərək OpenWRT ilə Meraki / Accton / Fonero -nun yanıb sönməsi: 3 addım
Linux istifadə edərək OpenWRT ilə Meraki / Accton / Foneronun yanıb sönməsi: Bu təlimat, Linux PC istifadə edərək, OpenWRT Linux ilə Meraki / Accton / Fonero cihazınızı necə yandıracağınızı göstərəcək. Müəllif saytı: http://ruckman.net
Yaşıl LED Lampa (yanıb -sönən LED ilə idarə olunur): 9 addım
Yaşıl LED Lampa (Bir yanıb -sönən LED ilə idarə olunur): Bir neçə il əvvəl inkişaf etməkdə olan ölkələrdə işıqlandırma mövzusunda bir məqalə oxudum, 1.6 milyard insanın elektrik enerjisinə çıxışının olmadığını və etibarlı işıqlandırma mənbəyinin BÖYÜK bir problem olduğunu söylədi. Kanadalı bir şirkət lightin istehsal edir və paylayır