İçindekiler:

Bluetooth Özellikli Planetaryum/Orrery: 13 Adım (Resimlerle)
Bluetooth Özellikli Planetaryum/Orrery: 13 Adım (Resimlerle)

Video: Bluetooth Özellikli Planetaryum/Orrery: 13 Adım (Resimlerle)

Video: Bluetooth Özellikli Planetaryum/Orrery: 13 Adım (Resimlerle)
Video: PICAXE Orrery 2024, Temmuz
Anonim
Bluetooth Özellikli Planetaryum/Orrery
Bluetooth Özellikli Planetaryum/Orrery

Bu talimat, Güney Florida Üniversitesi'ndeki (www.makecourse.com) Makecourse'un proje gereksinimini yerine getirmek için oluşturulmuştur.

Bu benim 3 gezegenli planetaryum/orrery'm. Makecourse için sadece sömestrlik bir proje olarak başladı, ancak sömestr sona erdiğinde son derece değerli bir öğrenme deneyimine dönüştü. Sadece mikrodenetleyicilerin temellerini öğrenmekle kalmadım, aynı zamanda bana C ve C++, Android platformu, lehimleme ve genel olarak elektronik işleri hakkında birçok ilginç şey öğretti.

Planetaryumun temel işlevi şudur: Telefonunuzda bir uygulama açın, Planetaryum'a bağlanın, bir tarih seçin, gönder'e basın ve Planetaryumun Merkür, Venüs ve Dünya'yı o tarihte göreceli güneş merkezli boylamlarına hareket ettirmesini izleyin. 1 AD/CE kadar geriye ve 5000 AD/CE kadar ileri gidebilirsiniz, ancak 100 yıl kadar ileri veya geri giderken doğruluk biraz düşebilir.

Bu Eğitilebilir Kitapta, gezegenlerin nasıl monte edileceğini, onları çalıştıran dişli sistemini, her şeyi birbirine bağlayan devre kartını ve gezegenleri kontrol eden Android ve C++ (Arduino) kodunu açıklayacağım.

Koda geçmek istiyorsanız, her şey GitHub'da. Arduino kodu burada ve Android kodu burada.

Adım 1: Parçalar ve Araçlar

Fiziksel Parçalar

  • 1 DC-47P DC Serisi Ağır Hizmet Elektronik Muhafazası - 9,58 $
  • 0,08" (2 mm) Akrilik/PMMA levha, en az 6" x 6" (15cm x 15cm) - 2,97 USD
  • 3 28BYJ-48 Tek Kutuplu Step Motor - 6,24 $
  • Karanlık Gezegenlerde Glow - 8,27 $ (bkz. not 1)
  • Glow in the Dark Stars - 5,95$ (Opsiyonel)

Elektronik

  • 3 ULN2003 Step Motor Sürücüsü - 2,97 $
  • 1 Atmel ATMega328(P) - 1,64 Dolar (Bkz. not 2)
  • 1 HC-05 Bluetooth - Seri Modül - 3,40 $
  • 1 16MHz Kristal Osilatör - 10 için 0,78 ABD doları
  • 1 DIP-28 IC Soketi 10 için 0,99 ABD doları
  • 1 parça Stripboard (adım = 0,1", boyut = 20 sıra uzunluk 3,5") - 2 için 2,48 ABD doları
  • 1 Panel Montajlı DC Besleme Jakı, Dişi (5,5 mm OD, 2,1 mm ID) - 10 için 1,44 ABD doları
  • 2 adet 22pF 5V kapasitör - 100 için 3,00$ (bkz. not 3)
  • 2 1.0 μF kapasitör - 50 için 0,99 ABD doları
  • 1 10kΩ direnç - 50 için 0,99 ABD doları

Aletler

  • Yedek Arduino veya AVR ISP - ATMega çipini programlamak için buna ihtiyacınız olacak
  • Tornavidalar - stok ATMega'yı Arduino'dan çıkarmak için
  • Multimetre - veya en azından bir süreklilik ölçer
  • Çekiç - yapılmayan her şeyi onarmak için The Right Way™
  • 5/16", 7/16" ve 1 3/8" matkap uçları ile matkap
  • Küçük kesmeler - bileşen uçlarını kesmek için
  • 22 AWG çok telli bakır tel (Mükemmel fiyat ve burada birçok seçenek)
  • Lehim - Ben reçine çekirdekli 60/40 kullanıyorum. İnce (<0,6 mm) lehimin işleri çok daha kolaylaştırdığını buldum. Gerçekten her yerde lehim bulabilirsin, ama bu benim başarılı olduğum bir şey.
  • Flux - Bu flux kalemlerini gerçekten seviyorum, ancak asit içermediği sürece herhangi bir flux formunu kullanabilirsiniz.
  • Havya/İstasyon - Bunları eBay ve Amazon'da oldukça ucuza alabilirsiniz, ancak uyarılırsınız: hayal kırıklığı fiyatla ters orantılı olarak değişir. Ucuz (25 $) Stahl SSVT'min ısınması kesinlikle sonsuza kadar sürüyor, neredeyse hiç termal kapasiteye sahip değil ve ısıtma elemanından çıkan sesli 60 Hz'lik bir vızıltı var. Bunun hakkında ne hissettiğimden emin değilim.
  • Yardım eli - Bunlar, lehimleme için neredeyse gerekli olan paha biçilmez araçlardır ve gezegenleri akrilik çubuklara yapıştırmaya geldiğinde yardımcı olurlar.
  • Epoksi - Oldukça iyi çalışan Plastikler için Loctite Epoxy kullandım. Gezegen kollarından birini (bir gezegene bağlı) yanlışlıkla betona düşürdüğümde, epoksi iki parçayı bir arada tutmuyordu. Ama sonra tekrar, tamamen iyileşmesi için önerilen 24 saatin sadece 15'ini vermiştim. Yani belki başka türlü dağılmazdı ama söyleyemem. Ne olursa olsun, sertleşmesi birkaç dakikadan uzun süren hemen hemen tüm yapıştırıcıları veya yapıştırıcıları kullanabilirsiniz, çünkü yapıştırıcıyı uyguladıktan sonra biraz ince ayarlamalar yapmanız gerekebilir.
  • Kürdan - Sizin için iki parçayı karıştıran bir aplikatörle birlikte gelmedikçe, epoksi veya herhangi bir 2 parçalı yapıştırıcı için bunlara (veya herhangi bir tek kullanımlık karıştırıcıya) ihtiyacınız olacak.
  • 3D Yazıcı - Bunları dişli sisteminin bazı parçalarını yazdırmak için kullandım (dosyalar dahil), ancak bu parçaları diğer (belki de daha az tembel) yöntemlerle üretebilirseniz, bu gerekli değildir.
  • Lazer Kesici - Bunu gezegenleri tutan net kolları yapmak için kullandım. Önceki nokta gibi, parçaları başka bir yöntemle yapabilirseniz (diğer yöntemlerle kolayca kesilebilirler), bu gerekli değildir.

Yazılım

  • Arduino IDE'ye veya AVR-GCC ve AVRDude'un bağımsız sürümlerine ihtiyacınız olacak
  • Android Studio veya Eclipse için Android Araçları (kullanımdan kaldırıldı). Play Store'a derlenmiş bir APK yükleyebileceğim için bu yakında isteğe bağlı olabilir.

Toplam tutar

Tüm parçaların (eksi aletler) toplam maliyeti yaklaşık 50$'dır. Ancak, listelenen fiyatların çoğu, her biri 1'den fazla ürün içindir. Bu proje için her bir öğenin yalnızca ne kadar kullanıldığını sayarsanız, efektif toplam maliyet yaklaşık 35 dolardır. En pahalı öğe, toplam maliyetin neredeyse üçte biri olan muhafazadır. YAP Kursu için kutuyu proje tasarımlarımıza dahil etmemiz gerekiyordu, bu yüzden bir zorunluluktu. Ancak bu projede maliyetleri düşürmenin kolay bir yolunu arıyorsanız, yerel büyük kutu satıcınıza bakın; muhtemelen tipik "elektronik muhafazanızdan" daha ucuz olan iyi bir kutu seçimine sahip olacaklardır. Ayrıca kendi gezegenlerinizi yapabilir (tahta küreler bir düzinedir) ve önceden yapılmış plastik olanları kullanmak yerine yıldızları boyayabilirsiniz. Bu projeyi 25 dolardan daha azıyla tamamlayabilirsiniz!

Notlar

  1. Ayrıca "gezegen" olarak istediğinizi kullanabilirsiniz. Kendiniz bile boyayabilirsiniz!
  2. Bu çiplerin ya dedikleri gibi Arduino R3 önyükleyici ile önceden yüklenmiş olarak gelmediğinden ya da bir programlama hatası olması gerektiğinden oldukça eminim. Ne olursa olsun, sonraki bir adımda yeni bir önyükleyici yazacağız.
  3. Çeşitli direnç ve kapasitör paketleri/çeşitleri (seramik ve elektrolitik) stoklamanızı şiddetle tavsiye ederim. Bu şekilde çok daha ucuzdur ve ayrıca belirli bir değerin gelmesini beklemek zorunda kalmadan bir projeye hızlı bir şekilde başlayabilirsiniz.

Adım 2: Dişli Sistemini Üretmek

Dişli Sisteminin İmalatı
Dişli Sisteminin İmalatı
Dişli Sisteminin İmalatı
Dişli Sisteminin İmalatı
Dişli Sisteminin İmalatı
Dişli Sisteminin İmalatı

Esasen, içi boş kolonların tümü iç içe geçmiş ve dişlilerini farklı yüksekliklerde ortaya çıkarmıştır. Daha sonra step motorların her biri farklı bir yüksekliğe yerleştirilir ve her biri farklı bir sütunu çalıştırır. Dişli oranı 2:1'dir, yani her bir step motorun kolonu bir tane yapmadan önce iki tam dönüş yapması gerekir.

Tüm 3D modeller için STL dosyalarını (baskı için) ve ayrıca Inventor parça ve montaj dosyalarını (böylece bunları özgürce değiştirebilirsiniz) ekledim. Dışa aktarma klasöründen 3 kademeli vitesi ve diğer her şeyden 1'ini yazdırmanız gerekir. Parçalar süper ince bir z ekseni çözünürlüğüne ihtiyaç duymaz, ancak düz bir yatak önemlidir, böylece kademeli dişliler sıkı bir baskı oluşturur, ancak o kadar sıkı değildir ki inip çıkmak imkansız. %10-15 civarındaki dolgu gayet iyi çalışıyor gibi görünüyordu.

Her şey yazdırıldıktan sonra, sıra parçaları birleştirmeye gelir. İlk olarak, kademeli dişlileri kademeli motorlara takın. Biraz sıkılarsa, çekiçle hafifçe vurmanın başparmaklarımla itmekten çok daha iyi çalıştığını gördüm. Bu yapıldıktan sonra, motorları tabandaki üç deliğe itin. Onları tamamen aşağı itmeyin, çünkü yüksekliklerini ayarlamanız gerekebilir.

Tutucularına güvendiklerinde, Merkür sütununu (en uzun ve en ince olanı) temel sütuna bırakın, ardından Venüs ve Dünya. Kademeleri, daha büyük üç dişlinin her biriyle iyi bir şekilde eşleşecek ve yalnızca uygun dişliye temas edecek şekilde ayarlayın.

Adım 3: Akrilik Barları Lazerle Kesme ve Yapıştırma

Akrilik Çubukların Lazer Kesimi ve Yapıştırması
Akrilik Çubukların Lazer Kesimi ve Yapıştırması
Akrilik Çubukların Lazer Kesimi ve Yapıştırması
Akrilik Çubukların Lazer Kesimi ve Yapıştırması

Planetaryumumun aydınlıkta veya karanlıkta iyi görünmesini istediğimden, gezegenleri ayakta tutmak için şeffaf akrilik çubuklarla gitmeye karar verdim. Bu sayede görüşünüzü engelleyerek gezegen ve yıldızlardan uzaklaşmazlar.

Okulumdaki harika bir makerspace olan DfX Lab sayesinde akrilik çubukları kesmek için 80W CO2 lazer kesicilerini kullanabildim. Oldukça basit bir süreçti. Mucit çizimini bir pdf olarak dışa aktardım ve ardından pdf'yi açıp Retina Engrave yazıcı sürücüsüne "yazdırdım". Oradan, modelin boyutunu ve yüksekliğini (TODO) ayarladım, güç ayarlarını yaptım (2 geçişte %40 güç işi yaptı) ve gerisini lazer kesiciye bıraktım.

Akrilik çubuklarınızı kestikten sonra, muhtemelen biraz cilaya ihtiyaçları olacaktır. Bunları cam temizleyicisiyle (burada "N" ile listelenen kimyasallardan herhangi birinin bulunmadığından emin olun) veya sabun ve suyla parlatabilirsiniz.

Bu yapıldıktan sonra, çubukları gezegenlerin her birine yapıştırmanız gerekecek. Bunu Loctite Epoxy for Plastics ile yaptım. Yaklaşık 5 dakikada sertleşen, çoğunlukla bir saat sonra kürlenen ve 24 saat sonra tamamen kürlenen 2 parçalı bir epoksidir. Mükemmel bir zaman çizelgesiydi, çünkü epoksiyi uyguladıktan sonra parçaların konumlarını biraz ayarlamam gerektiğini biliyordum. Ayrıca akrilik yüzeyler için özel olarak tavsiye edilmiştir.

Bu adım oldukça yerindeydi. Paket üzerindeki talimatlar fazlasıyla yeterliydi. Reçine ve sertleştiricinin eşit parçalarını bir gazete veya kağıt tabak üzerine sıkın ve tahta bir kürdan ile iyice karıştırın. Ardından akrilik çubuğun kısa ucuna küçük bir dokunuş uygulayın (çubuk üzerinde küçük bir mesafe kat ettiğinizden emin olun) ve gezegenin alt tarafına küçük bir dokunuş uygulayın.

Ardından ikisini bir arada tutun ve nasıl sıralandıkları konusunda rahat olana kadar ikisini de ayarlayın. Bunun için akrilik çubuğu yerinde tutmak için bir yardım eli kullandım (timsah klipsinin çubuğu çizmesini önlemek için ikisinin arasına, aşındırıcı tarafı dışarı bakacak şekilde bir parça zımpara kağıdı koydum) ve gezegeni sabit tutmak için bir lehim makarası kullandım..

Epoksi tamamen sertleştiğinde (kürlenmesi için sadece 15 saat vermek için zamanım vardı, ancak önerilen süre 24 saatti) düzeneği yardım elinden çıkarabilir ve gezegen kolonlarına uyumu test edebilirsiniz. Kullandığım akrilik levhaların kalınlığı 2.0 mm idi, bu yüzden gezegen sütunlarında eşit büyüklükte delikler açtım. Son derece sıkı bir uyumdu, ama neyse ki biraz zımpara ile sütunları içeri kaydırabildim.

Adım 4: Bluetooth Modül Ayarlarını Değiştirmek için AT Komutlarını Kullanma

Bluetooth Modül Ayarlarını Değiştirmek için AT Komutlarını Kullanma
Bluetooth Modül Ayarlarını Değiştirmek için AT Komutlarını Kullanma

Bu adım biraz düzensiz görünebilir, ancak bunu HC-05 bluetooth modülünü karta lehimlemeden önce yaparsanız çok daha kolay olur.

HC-05'inizi aldığınızda, cihaz adı (tipik olarak "HC-05"), şifre (tipik olarak "1234") ve baud hızı (benimki 9600 baud'da programlanmış olarak geldi) gibi bazı fabrika ayarlarını değiştirmek isteyeceksiniz..

Bu ayarları değiştirmenin en kolay yolu, bilgisayarınızdan doğrudan modül ile arayüz oluşturmaktır. Bunun için bir USB'den TTL'ye UART dönüştürücüye ihtiyacınız olacak. Etrafta yatan biri varsa, onu kullanabilirsiniz. Ayrıca USB olmayan Arduino kartlarıyla (Uno, Mega, Diecimila, vb.) gelenleri de kullanabilirsiniz. ATMega çipi ile Arduino kartındaki yuvası arasına küçük bir düz başlı tornavidayı dikkatlice sokun ve ardından düz başlı tornavidayı diğer taraftan sokun. Çipi, gevşeyip yuvadan çekilebilecek duruma gelene kadar her iki taraftan dikkatlice biraz yukarı kaldırın.

Şimdi bluetooth modülü yerine gidiyor. Arduino'nun bilgisayarınızla bağlantısı kesildiğinde, Arduino RX'i HC-05 RX'e ve TX'i TX'e bağlayın. HC-05'teki Vcc'yi Arduino'daki 5V'ye ve GND'yi GND'ye bağlayın. Şimdi HC-05 üzerindeki Durum/Anahtar pimini 10k direnç üzerinden Arduino 5V'ye bağlayın. Anahtar pimini yukarı çekmek, bluetooth modülündeki ayarları değiştirmek için AT komutları vermenize izin verir.

Şimdi, arduino'yu bilgisayarınıza bağlayın ve Arduino IDE'den Seri Monitörü veya komut satırından bir TTY'yi veya TeraTerm gibi bir terminal emülatör programını açın. Baud hızınızı 38400 olarak değiştirin (AT iletişimleri için varsayılan). CRLF'yi açın (seri monitörde bu, "Hem CR hem de LF" seçeneğidir, komut satırını veya başka bir programı kullanıyorsanız, bunun nasıl yapılacağına bakın). Modül 8 veri biti, 1 stop biti, eşlik biti yok ve akış kontrolü yok (Arduino IDE kullanıyorsanız bu konuda endişelenmenize gerek yok) ile iletişim kurar.

Şimdi "AT" yazın, ardından bir satır başı ve bir yeni satır. "Tamam" yanıtını geri almalısınız. Bunu yapmazsanız, kablolamanızı kontrol edin ve farklı baud hızlarını deneyin.

Cihaz tipinin adını değiştirmek için "AT+NAME=", diğer cihazlar onunla eşleşmeye çalışırken HC-05'in yayınlamasını istediğiniz isim nerede.

Parolayı değiştirmek için "AT+PSWD=" yazın.

Baud hızını değiştirmek için "AT+UART=" yazın.

AT komutlarının tam listesi için bu veri sayfasına bakın.

Adım 5: Devrenin Tasarlanması

Devrenin Tasarlanması
Devrenin Tasarlanması

Devre tasarımı oldukça basitti. Bir Arduino Uno, dişli sistemli kutuya sığmayacağından, her şeyi tek bir karta lehimlemeye ve Uno kartlarında bulunan ATMega16U2 usb-uart dönüştürücü olmadan sadece bir ATMega328 kullanmaya karar verdim.

Şematikte (belirgin mikrodenetleyici dışında) dört ana bölüm vardır: güç kaynağı, kristal osilatör, step motor sürücüleri ve bluetooth modülü.

Güç kaynağı

Güç kaynağı, eBay'den satın aldığım 3A 5V güç kaynağından geliyor. Pozitif uçlu 5.5mm OD, 2.1mm ID namlu tapası ile sonlanır. Böylece uç 5V kaynağına bağlanır ve toprağa halka olur. Ayrıca güç kaynağından gelen gürültüyü gidermek için 1 uF dekuplaj kapasitörü de bulunmaktadır. 5V kaynağının hem VCC'ye hem de AVCC'ye bağlı olduğuna ve toprağın hem GND'ye hem de AGND'ye bağlı olduğuna dikkat edin.

Kristal Osilatör

ATMegaXX8 ailesinin veri sayfasına göre 16MHz kristal osilatör ve 2 22 pF kapasitör kullandım. Bu, mikrodenetleyici üzerindeki XTAL1 ve XTAL2 pinlerine bağlanır.

Step Motor Sürücüleri

Gerçekten, bunlar herhangi bir pime bağlanabilir. Bunları seçtim çünkü her şeyi bir devre kartına yerleştirme zamanı geldiğinde en kompakt ve basit düzeni sağlıyor.

Bluetooth Modülü

HC-05'in TX'i mikrodenetleyicinin RX'ine ve RX'ten TX'e bağlıdır. Bu, uzak bir cihazdan bluetooth modülüne gönderilen herhangi bir şeyin mikrodenetleyiciye iletilmesi için ve ayetin tersidir. Modüldeki ayarların yanlışlıkla yeniden yapılandırılmaması için ANAHTAR pimi bağlantısız bırakılır.

Notlar

Sıfırlama pimine 10k çekme direnci yerleştirdim. Bu gerekli olmamalı, ancak sıfırlama piminin 2.5us'tan daha uzun süre düşük kalması ihtimalini önleyebileceğini düşündüm. Muhtemel değil, ama yine de orada.

Adım 6: Stripboard Düzenini Planlama

Stripboard Düzenini Planlama
Stripboard Düzenini Planlama

Stripboard düzeni de çok karmaşık değil. ATMega, step motor sürücüleri ve bağlanmaları gereken pinlerle dizilmiş bluetooth modülü ile ortada yatıyor. Kristal osilatör ve kapasitörleri Stepper3 ve HC-05 arasında yer alır. Bir dekuplaj kondansatörü, güç kaynağının panoya geldiği yerde, diğeri ise Stepper 1 ve 2 arasında yer alır.

X'ler, bağlantıyı kesmek için sığ bir delik açmanız gereken bir noktayı işaretler. 7/64 matkap ucu kullandım ve sadece delik, uç çapı kadar geniş olana kadar delindi. Bu, bakır izinin tamamen ayrılmasını sağlar, ancak gereksiz delmeyi önler ve levhanın sağlam kalmasını sağlar.

Kısa bağlantılar, bir lehim köprüsü kullanılarak veya her sıraya küçük, yalıtılmamış bir bakır tel parçası lehimlenerek yapılabilir. Tahtanın altında veya üstünde yalıtımlı tel kullanılarak daha büyük atlamalar yapılmalıdır.

Adım 7: Lehimleme

Lehimleme
Lehimleme
Lehimleme
Lehimleme
Lehimleme
Lehimleme
Lehimleme
Lehimleme

Not: Bu, lehimleme hakkında bir eğitim olmayacak. Daha önce hiç lehimlemediyseniz, YouTube ve Instructables buradaki en iyi arkadaşlarınızdır. Temelleri ve daha ince noktaları öğreten sayısız mükemmel öğretici var (daha ince noktaları bildiğimi iddia etmiyorum; birkaç hafta öncesine kadar lehimlemede berbattım).

Step motor sürücüleri ve bluetooth modülü ile yaptığım ilk şey, bükülmüş erkek başlıkları sökmek ve düz erkek başlıklar üzerindeki lehimi kartın arkasına lehimlemek oldu. Bu, stripboard üzerinde düz olmalarını sağlayacaktır.

Bir sonraki adım, henüz yapmadıysanız, bağlantıları kırmak için gereken tüm delikleri açmaktır.

Bunu yaptıktan sonra, kartın üstüne herhangi bir yalıtılmamış atlama teli ekleyin. Altta olmasını tercih ederseniz, bunu daha sonra yapabilirsiniz.

Bileşenlerin geri kalanı için bir referans noktası vermek için önce IC soketine lehimledim. Soket yönünü not ettiğinizden emin olun! Yarım daire biçimli girinti, 10k direncine en yakın olmalıdır. Lehimlemeden önce yerinde kalmayı sevmediği için, iki zıt köşe pedini (elbette önce akı uygulayın) kalaylayabilir ve soketi alt taraftan yerinde tutarken kalaylamayı yeniden akıtabilirsiniz. Şimdi soket yerinde kalmalıdır, böylece pimlerin geri kalanını lehimleyebilirsiniz.

Uçları olan parçalar için (bu durumda kapasitörler ve dirençler), parçaların yerleştirilmesi ve ardından uçların hafifçe bükülmesi lehimleme sırasında onları yerinde tutmalıdır.

Her şey yerine lehimlendikten sonra, uçları kesmek için küçük makaslar (veya etrafta hiç olmadığım için eski tırnak makası) kullanabilirsiniz.

Şimdi, bu önemli kısım. Tüm bağlantıları kontrol edin, iki kez kontrol edin ve üç kez kontrol edin. Bağlı olması gereken her şeyin bağlı olduğundan ve bağlanmaması gereken hiçbir şeyin bağlı olmadığından emin olmak için bir süreklilik ölçer ile panoyu dolaşın.

Yarım daire girintilerinin aynı tarafta olduğundan emin olarak çipi yuvaya yerleştirin. Şimdi güç kaynağını duvara ve ardından dc güç jakına takın. Step sürücülerinin üzerindeki ışıklar yanarsa, güç kaynağının fişini çekin ve tüm bağlantıları kontrol edin. ATMega (veya kartın herhangi bir parçası, hatta güç kaynağı kablosu bile) aşırı derecede ısınırsa, güç kaynağının fişini çekin ve tüm bağlantıları kontrol edin.

Not

Lehimleme akısı "Literally Magic" olarak yeniden markalandırılmalıdır. Cidden, akı işleri büyülü yapar. Lehimlemeden önce istediğiniz zaman cömertçe uygulayın.

Adım 8: ATMega'da Bootloader'ı Yazma

ATMega'da Bootloader'ı yakmak
ATMega'da Bootloader'ı yakmak

ATMegas'ımı aldığımda, nedense onlara herhangi bir çizimin yüklenmesine izin vermediler, bu yüzden önyükleyiciyi yeniden yakmak zorunda kaldım. Oldukça kolay bir işlemdir. Çipinizde zaten bir Arduino/optiboot önyükleyici olduğundan eminseniz, bu adımı atlayabilirsiniz.

Aşağıdaki talimatlar arduino.cc'deki bir eğitimden alınmıştır:

  1. ArduinoISP taslağını Arduino kartınıza yükleyin. (Araçlar menüsünden kartınıza uygun kart ve seri bağlantı noktasını seçmeniz gerekir)
  2. Arduino kartını ve mikro denetleyiciyi sağdaki şemada gösterildiği gibi bağlayın.
  3. Araçlar > Pano menüsünden "Arduino Duemilanove veya Nano w/ ATmega328" öğesini seçin.(Veya aşağıda açıklanan minimum yapılandırma kullanılıyorsa "Breadboard üzerinde ATmega328 (8 MHz dahili saat)".)
  4. Araçlar> Önyükleyiciyi Yaz> ISP olarak Arduino ile çalıştırın. Önyükleyiciyi yalnızca bir kez yakmanız gerekir. Bunu yaptıktan sonra Arduino kartının 10, 11, 12 ve 13 pinlerine bağlı jumper kablolarını çıkarabilirsiniz.

Adım 9: Arduino Kroki

Kodumun tamamı GitHub'da mevcut. İşte GitHub'daki Arduino taslağı. Her şey kendi kendine belgelenmiştir ve daha önce Arduino kütüphaneleriyle çalışıp çalışmadığınızı anlamak nispeten basit olmalıdır.

Esasen, UART arayüzü üzerinden, gezegenlerin her biri için derece cinsinden hedef konumlarını içeren bir girdi satırını kabul eder. Bu derece pozisyonlarını alır ve her gezegeni hedef pozisyonuna taşımak için step motorları harekete geçirir.

Adım 10: Arduino Sketch'i Yükleme

Arduino Krokisini Yükleme
Arduino Krokisini Yükleme

Aşağıdakiler çoğunlukla arduino.cc sitesinde ArduinoToBreadboard'dan kopyalanır:

ATmega328p'nizde Arduino önyükleyicisi bulunduğunda, bir Arduino kartındaki USB'den seriye dönüştürücüyü (FTDI yongası) kullanarak programları ona yükleyebilirsiniz. Bunu yapmak için, mikro denetleyiciyi Arduino kartından çıkarırsınız, böylece FTDI yongası devre tahtasındaki mikro denetleyiciyle konuşabilir. Yukarıdaki şema, Arduino kartından RX ve TX hatlarının devre tahtasındaki ATmega'ya nasıl bağlanacağını göstermektedir. Mikrodenetleyiciyi programlamak için Araçlar > Pano menüsünden "Arduino Duemilanove veya Nano w/ ATmega328" öğesini seçin. Ardından her zamanki gibi yükleyin.

Bunun çok fazla bir angarya olduğu ortaya çıkarsa, yaptığım her zaman programlamam gerektiğinde ATMega'yı DIP28 soketine takmak ve daha sonra çıkarmaktı. Pimlere karşı dikkatli ve nazik olduğunuz sürece sorun olmaz.

11. Adım: Android Uygulama Kodu

Arduino kodu gibi, Android kodum da burada. Yine, kendi kendine belgelenmiştir, ancak işte kısa bir genel bakış.

Kullanıcıdan bir tarih alır ve o tarihte Merkür, Venüs ve Dünya'nın nerede olduğunu/olduğunu/olacağını hesaplar. Daha basit hale getirmek için gece yarısını varsayıyor, ancak belki yakında zaman desteği ekleyeceğim. Bu hesaplamaları benim kullandığımdan çok daha fazlasını yapabilen AstroLib adlı harika bir Java kitaplığı kullanarak yapıyor. Bu koordinatlara sahip olduğunda, gezegenlerin her biri için bluetooth modülüne sadece boylamı (gezegen yörüngelerinden bahsederken tipik olarak düşündüğünüz "konum") gönderir. Bu kadar basit!

Projeyi kendiniz oluşturmak istiyorsanız, önce telefonunuzu geliştirici moduna geçirmeniz gerekir. Bunun için talimatlar, telefonunuzun üreticisine, cihazın modeline, özel bir mod çalıştırıyorsanız vb.'ne bağlı olabilir; ancak genellikle, Ayarlar -> Telefon Hakkında'ya gidip "Yapı Numarası"na 7 kez dokunmak bunu yapmalıdır. Geliştirici modunu etkinleştirdiğinizi söyleyen bir tost bildirimi almalısınız. Şimdi Ayarlar -> Geliştirici Seçenekleri'ne gidin ve USB Hata Ayıklamayı açın. Şimdi bir şarj + veri USB kablosu kullanarak telefonunuzu bilgisayarınıza bağlayın.

Şimdi projeyi GitHub'dan indirin veya klonlayın. Yerel olarak edindikten sonra, Android Studio'da açın ve Çalıştır'a (üst araç çubuğundaki yeşil oynat düğmesi) basın. Listeden telefonunuzu seçin ve Tamam'a basın. Telefonunuzda, bağlı olduğunuz bilgisayara güvenip güvenmediğinizi soracaktır. "Evet"e basın (veya kendi güvenli makinenizse "bu bilgisayara her zaman güvenin"). Uygulama derlenmeli, telefonunuza yüklenmeli ve açılmalıdır.

Adım 12: Uygulamayı Kullanma

Uygulamanın kullanımı oldukça basittir.

  1. HC-05'i telefonunuzla henüz eşleştirmediyseniz, bunu Ayarlar -> Bluetooth'ta yapın.
  2. Sağ üst köşedeki seçenekler menüsünden "bağlan" a basın.
  3. Listeden cihazınızı seçin
  4. Birkaç saniye sonra, bağlandığına dair bir bildirim almalısınız. Değilse, Planetaryumun açık olduğunu ve yanmadığını kontrol edin.
  5. Bir tarih seçin. Ay, gün ve yıl birleşik seçicilerinde yukarı ve aşağı kaydırın ve her seferinde 100 yıl ileri veya geri atlamak için ok düğmelerini kullanın.
  6. Gönder'e basın!

Planetaryumun bu noktada gezegenlerini hareket ettirmeye başladığını görmelisiniz. Değilse, açık olduğundan emin olun.

Adım 13: Son Açıklamalar

İlk somut projem olduğu için çok şey öğrendiğimi söylemek yetersiz kalır. Cidden, bana kod revizyon bakımından, lehimlemeye, proje planlamaya, video düzenlemeye, 3D modellemeye, mikrodenetleyicilere kadar her şey hakkında tonlarca şey öğretti.

Mesele şu ki, USF'ye (Go Bulls!) gidiyorsanız ve bu tür şeylerle ilgileniyorsanız, MAKE Course'u alın. Okulunuz buna benzer bir şey sunuyorsa, alın. Okulda değilseniz veya benzer bir sınıfınız yoksa, bir şeyler yapın! Cidden, bu en zor adım. Fikir almak zordur. Ama bir kez bir fikriniz varsa, onunla koşun. "Ah, bu aptalca" veya "Ah, zamanım yok" deme. Bu fikri harika yapan şeyin ne olduğunu düşünmeye devam edin ve yapın.

Ayrıca, yakınınızda bir bilgisayar korsanı alanı olup olmadığını görmek için Google'da gezinin. Donanım ve yazılım projeleri yapmakla ilgileniyorsanız, ancak nereden başlayacağınızı bilmiyorsanız, burası başlamak için harika bir yer olacaktır.

Umarım bu Eğitilebilir Yazıyı beğenmişsinizdir!

Önerilen: