Proje Vitrin '14


25

Logo , Creative Commons lisansı CC-SA-BY-NC 3.0 altında lisanslı Arduino Topluluğu Logosunun bir türevidir.

Güncelleme: Kazananlar Açıklandı

Yarışmanın kazananları açıklandı. Lütfen ayrıntılar için Meta gönderiye bakın .

Arduino'nun 10 yılını kutlamak için, ilk Arduino Yığın Borsası'ndaki ilk etkinliği duyurmaktan gurur duyuyoruz .

Tahtalarınızı ve lehimleme ekipmanınızı çıkarın, IC'leri ve dirençleri kazın. İlk Arduino Stack Exchange yarışması sadece köşede. Arduinos kullanılarak yapılmış ilginç projeler arayacağız. Yarışma, siz ve diğer üyelerin üzerinde çalıştığınız projeler hakkında geri bildirim paylaşma, tartışma ve sunma amaçlı. Duyuru yayınına bakınız

Detaylar:

  • Ödül resmi bir Stack Exchange tişörtüdür
  • Kişi başına iki girişi sınırlayın. İkiden fazla sağlanırsa, yalnızca ilk ikisi dikkate alınacaktır.
  • Klonlar edilir izin verdi.
  • Göz önünde bulundurulacak projeler 29 Mart 2014 tarihine kadar saat 16: 00'da (UTC) kabul edilecektir . Arduino Günü 2014’te yaptıkları projeyi göstermek istemeniz durumunda soru hala açık kalacaktır.

Bu etkinlikle ilgili tartışma ve daha fazla bilgi için Meta postayı ziyaret edin .

Cevap biçimi

Yarışmaya giriş olarak en fazla iki proje (iki ayrı cevap olarak) gönderebilirsiniz. Tüm ekstra girişler silinecek. Girişler için aşağıdaki şablonu izlemeyi düşünün:

Proje Başlığı

Çok Kısa Açıklama

Açıklama

Projen nedir Bu ne işe yarıyor? Hangi sorunu çözer?

tasarlamak

Bu bölüme dahil edilecekler:

  • Şemalar ve diğer tasarım dokümantasyonu. Fritzing , yukarıdaki proje logosunda gösterildiği gibi breadboard şemalarını çizmek için iyi bir araçtır.
  • Projeyi oluşturmak için kullanılan bileşenler
  • Resimler veya video

Sonuç

Son düşünceler. Bu projeyi yapmaktan ne öğrendiniz? Baştan başlasaydın, farklı olarak ne yapardın?

Bu şablonu kullanmak istiyorsanız, aşağıdaki metni kopyalayıp yapıştırabilirsiniz.

# Project Title
**Very Brief Description**

# Description
What is your project? What does it do? What problem does it solve?

# Design
Things to include in this section:

- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video

# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?

Ödüller

İki ödül var! Kazanan, en fazla sayıda oy alan ve en fazla sayıda oy alan (kazananların sayısı sayılmayan) başvuru olacak ve bir Stack Exchange Tişört * kazanacak! İkinci seviye için de bir şeyler olacak. Yarışmaya, etkinlik düzenleyicilerinin takdirine bağlı olarak karar verilecektir.

* Bazı kısıtlamalar geçerli olabilir. Uluslararası nakliye birkaç hafta sürebilir.

Projelerimi nereye gönderirim?

Projelerinizi bu yazıya cevap olarak gönderin.


Bir "arduino" projesi olma niteliği tam olarak nedir ? Optiboot'u birçok yerde kullanıyorum, ancak "arduino" olarak göremiyorum, çünkü bu sadece arduino takım zincirinin kullandığı bir proje. Arduino-form-faktörü içerisinde bir tahta kullanmadan, arduino metin editörü kullanılarak projenin derlenmesini açıkça istemediğiniz sürece, "arduino" ile "arduino olmayan" arasında net bir yol tarif edemiyorum. Arduino editörü korkunç olduğu için tüm iyi projeleri muhtemelen diskalifiye eder ve tüm iyi kodlayıcılar uzun zaman önce kullanmayı bıraktılar.
Connor Wolf

@FakeName bu tartışmayı Meta Post'a
gönderelim

Yanıtlar:


14

Durum bilgisi olan görev kutusu

Bir GPS Eğer açmadan önce birkaç noktalar ziyaret yapar güç kutusu

Açıklama

Questbox'a benzer , ancak EEPROM'da az miktarda bilgi durumunu saklar , bu yüzden açılmadan önce iki veya üç farklı yeri ziyaret etmeniz gerekir.

tasarlamak

Gerekli donanım:

  • Arduino Uno
  • Geocache Sürüm 2'yi Ters Çevir (veya bir protoshield)
  • GlobalSat EM-406A GPS modülü
  • Bağlantı başlığı ve kablo ile 2 × 8 mavi LCD
  • Hitec HS-55 servo motor
  • Mandal için 4-40 itme çubuğu ve çatal (bazı modellerde bunun yerine Z-bükme çubuğu vardır)
  • 2 adet AA pil tutucu
  • Gömülü mavi LED ve 4 pinli kabloya sahip metalik düğme
  • Pololu alçak gerilim şalteri
  • Pololu 5 V destek regülatörü
  • EM-406A GPS modülü için JST konektörü
  • Ekran, servo ve buton konnektörleri için düz ve dik açılı başlık pimleri
  • Akım sınırlaması ve kontrast ayarlaması için iki direnç
  • Güç yumuşatma için iki küçük kondansatör
  • Ekran kontrast devresi için daha büyük kapasitör

Toplam donanım maliyeti: 137 $ + nakliye

Ek malzemeler:

  • Güzel bir kutu
  • Epoksi tutkal, ahşap parçaları, araçları kaplayacak

Montaj talimatlarını güneş saati sayfasında bulabilirsiniz (onlardan çoğu malzemeyi satın alabilirsiniz)

Durum bilgisi olan kodu yükleyeceğim ve buraya bir bağlantı göndereceğim, ne yazık ki zamanında donanıma ihtiyaç duymayacağım, yani bu sadece bir fikir :)

Şimdiye kadar yazılmış kod :

İlham:Orijinal görev kutusu

Sonuç

Pek çok bileşeni ve kütüphaneyi tümüyle birleştirmeyi öğrendim, test etmek için biraz seyahat etmem gerekecek :)

Bütçe, konsepti biraz değiştirerek biraz azaltılabilir:

  • Sayısal tuş takımı ile GPS'i değiştirme: 'oynatıcı' bir yere gitmek yerine bir kod tahmin etmek / elde etmek zorundadır
  • Polulu şalter ve regülatör, kapasitans kuplajlı bir mandal röle için değiştirilebilir

11

Eksik düşünen PC kullanıcısı için enerji tasarrufu

Bu aygıt, karanlık (ish) ve PC ekran koruyucumla senkronize olduğunda masa lambalarımı açar / kapatır.

Açıklama

Proje, ışığa duyarlı bir sensör, bir röle ve bilgisayarımdaki ekran koruyucuyu izleyen bazı akıllı kodların birleşiminden biraz daha fazlası. Gece karanlığında ve ekran koruyucu etkin olmadığında, masamın üzerindeki ışıkları açar. Ardından masamı bıraktığımda ekran koruyucu devreye girecek ve sırayla masa lambasının sönmesini sağlayacak. Gündüzleri yeterli ışık olduğunda, ışıklar hiç yanmaz. Çözülen sorun odadan çıktığımda ofisimdeki aydınlatmanın açık olmasından dolayı enerji israfını azaltmak.

tasarlamak

Çünkü mikrodenetleyicilerin / Arduino'nun gücü, faydalı bir proje oluşturmak için sadece biraz fazla donanım gerektirmektedir. Aynı şey, donanımın biraz daha fazla olduğu bu proje için de geçerli:

  • Bir Arduino
  • Harici bileşenleri bağlamak için bir çift vida kalkanı
  • Ortam ışığını ölçmek için dirençli serideki bir LDR
  • Elektrikle çalışan ışıkları açmak ve kapatmak için bir röle kartı
  • Kartın sıfırlanmasını ve kazara programlanmasını önlemek için GND'den RST'ye 10 μF kapasitör.

şematik

bu devreyi simüle et - CircuitLab kullanılarak oluşturulan şematik

Sonuç

Bilgisayarı USB seri bağlantısı üzerinden Arduino ile nasıl arayüz kuracağımı ve bilgisayarımdaki ekran koruyucusunun o anki durumunu nasıl okuyacağımı öğrendim. Eğer baştan başlarsam, gerçekten sadece tek bir dijital çıkışa ve tek bir analog girişe ihtiyaç duyduğum için daha küçük bir kontrol cihazı kullanırdım. Muhtemelen projeyi V-USB üzerine kur . Ancak Arduino, konseptin hızlı ve kolay bir şekilde kanıtlanması için mükemmeldir (PoC). (PoC zaten en az iki yıldır masamdaydı).


Final tahtanızın ve kurulumun fotoğraflarını görmek harika olurdu. Tepki süresi nasıl? Anında? Bir dakika sonra mı?
sachleen

@sachleen Bilgisayarımdaki ekran koruyucuyu seçen arka plan programı, ekran koruyucunun kapalı kaldığı her 30 saniyede bir (bilgisayarımda çalışırken) ve açıldığında her 5 saniyede bir çalışır. Bu hızı artırabilirim, ancak bu CPU yükünü ve bu güç kullanımıyla etkiliyor ... Arduino'nun sıfırlanmasını ve yanlışlıkla programlanmasını önlemek için takılı bir kapasitör de var.
jippie

alacakaranlıkta sachleen zamanla yavaş yavaş düşer, bu 30 saniye gerçekten bir sorun değil. Hiç kimse karanlıktaki 30 saniyenin üzerindeki farkı fark etmiyor. Farelerimi hareket ettirdikten veya klavyeme vurduğumdan 5 saniye sonra ışıklar döndüğünde. Işıkların karanlık ve aydınlık olduğu düşünülen hafif bir histerezis var. Işıkların her saniyede açılıp kapanmasını önlemek için harekete geçecek kadar karanlık oluncaya kadar.
jippie

10-15 saniye boyunca% 50 oranında kısmak için değiştirmelisiniz, bu yüzden tamamen karanlıkta değilsiniz ve size küçük bir "uyarı" veriyor
Anonymous Penguin

@AnnonomusPerson Bir SMPS'nin 100-250VAC girişi olan 240VAC tarafını değiştiriyorum. Olmayacak, ikincil taraf değiştirmek istememediğim için korkuyorum. Güzel fikir olsa da, belki bir şekilde akıllı küçük beyaz LED ekleyebilirsiniz.
jippie

8

Bence bu tür kurallara zar zor uyuyor ama yine de göndereceğimi düşündüğüm kadar ilginç.

Veri toplama amacıyla Yüksek Hassasiyetli, GPS Senkronize edilmiş zaman damgası üreteci.

Birden fazla bağımsız veri toplama sistemini senkronize etmenin kolay bir yolunu sağlamak için kullanılması amaçlanan oldukça ilginç bir proje.

Temel olarak, bir araştırma laboratuarında çalışıyorum ve genellikle, 50 fit kadar fiziksel olarak ayrılabilen çoklu bağımsız veri toplama sistemlerine sahip araçlarımız var. Her bir sistemden numunelerin alındığı zamanı ilişkilendirebilmemiz gerekir, bu da örnekleme zamanlarını çok hassas bir şekilde çözmek istiyorsanız zor olabilir. Bir USB veri toplama sistemi gibi bir şey kullanarak, yalnızca USB gecikmesi, edinimden edinime kadar değişebilen, yüzlerce milisaniyelik bilinmeyen gecikme süresi getirebilir.

Önceki çözüm, her yerde basit bir şekilde çalıştırılan, çok büyük bir kablo demeti gerektiren ve uçta bir tür acı veren 24 bit paralel bir sayaçtı.

Bu sistem , GPS uydularındaki atom saatlerine kilitlenen faz ve frekans olan rastgele frekans saatlerini sentezleyebilen özel bir zamanlama GPS modülü kullanır .

MCU, GPS veri mesajlarını bir araya getirmekle sorumludur (GPS verileri için mevcut bir protokol ayrıştırıcısını büyük ölçüde genişletmek ve optimize etmek zorunda kaldım). GPS, özel bir ikili protokol kullanacak şekilde yapılandırılmıştır ve hepsi yazdığım ayrıştırıcı tarafından ayrıştırılır.

Proje birkaç revizyondan geçmiştir (aşağıdaki resimde).

tasarlamak

Düzeltmeler! görüntü tanımını buraya girin
Rev 1: Asla işe yaramadı, çünkü başlangıçta çok daha pahalı bir GPS kullanan bir dPLL yazılımı kullanmayı umduğum için, sadece 1 PPS çıkışından daha yüksek frekanslı bir saat sentezliyordum. Muhtemelen çalışmasını sağlamak mümkün, ama zaman yatırımı işe yaramadı. (ve ben de bir kodlayıcı çok berbat)

Bir paralaks pervanesi MCU kullandı. İyi derlenmiş dillerin olmaması da önemli bir konuydu.


görüntü tanımını buraya girin
Rev 2: Bir ATmega2560'a kaydırıldı. Çalıştı, ilk devreden devralınan birçok funky tasarım yönü vardı. Öncelikle, ATmega2560'ta yeterli sayıda IO olmasına rağmen, 32-bit çıkış için vardiya kayıtlarının kullanılmaya devam edilmesi.

Optiboot'u çalıştıran ve aslında tamamen standart Arduino alet zincirini kullanarak programlanan ilk tahta, tahriş olmadan ve alet zincirini amaçlarıma daha iyi uyacak şekilde değiştirmeye başlamadan önce.


görüntü tanımını buraya girin
Rev 3: Ayrıca çalıştı. Gövdeli kablolama, bu kartın gerekli USB bağlantı noktalarının sayısını azaltmak için yerleşik bir USB hub içermesi nedeniyle (FTDI arayüzü 1 USB gerektirir ve GPS de bir USB arayüzüne sahiptir). Ne yazık ki, FTDI cihazı iyi çalışsa da, GPS düzgün şekilde sayılmazdı ve bu hub'ı başka bir yerde sorunsuz kullandım. Tuhaf.

Uygun bir USB hata ayıklayıcım yok, bu yüzden sorunu gidermeyi denemek yerine USB hub'ı tamamen düşürdüm. GPS usb'i zaten kurulum dışında pek kullanılmaz.


görüntü tanımını buraya girin
Rev 4: Yarı final ATmega2560 versiyonu. GPS durumu için bir LCD eklendi, LED'ler ve benzeri şeyler oldu. Ayrıca, güç olmadığında GPS durumunu korumak için olası süper kapasitörler için daha iyi ayak izleri.

Bu son Optiboot sürümüdür.

MStimeolduğu MSTOWveya Milisaniye-Time-Haftanın damgası dışarı çıkışı GPS verisi değerinin adıdır. Milisaniyede bir kez artan ve her hafta yuvarlanan 32 bitlik bir değişkendir. GPS standardının daha karanlık bir parçası.

ITOWGPS ile ilgili bir değerdir, 1PPS sinyaline karşılık gelen bir değerdir. İkisi arasındaki korelasyon LCD'ye tam olarak yansıtılmıyor, çünkü LCD'yi istediğim oranda güncellemek için CPU zamanım yok. Bu aslında, Xmega cihazlarına yükseltme sürecinde geliştirilen en önemli şeylerden biriydi.


görüntü tanımını buraya girin
Rev 5: Komple mimari anahtar. Şimdi bir ATxmega128A1U işlemci kullanıyor. Artık gerçekten "Arduino" değil, xmega işlemci serisinde birden fazla kesme seviyesine sahip olmak, kod yapısını büyük ölçüde iyileştirmeme izin verdi.

İki fırıldak teli benden bazı deneyler yapıyor, yönetim kurulu onlarsız da iyi çalışıyordu.

Dörtgözle beklemek:

Rev 6! görüntü tanımını buraya girin
Farklı LCD boyutları, GPS anteni bağlantısında daha fazla ESD koruması (bir sorun) kullanma yeteneği, süper kapasitörler yerine GPS saatini korumak için bir CR2032 pil kullanma yeteneği ekleyin.

Ayrıca, hata ayıklama ve durum LED'lerini daha iyi etiketleme

görüntü tanımını buraya girin
Ve bonus Nyan-Cat!

görüntü tanımını buraya girin

(Bu panolar şu an imalat için hazır. Onları aldığımda, gerçek tahtanın resimlerini ekleyeceğim.)


İki ATmega2560 anakartı arasında uzun süreli testler yaptım ve 72 saat içinde iki ünite arasındaki RMS zaman hatası ~ 20 us idi. Bu da iki tamamen bağımsız anten ile yapıldı. Tasarım hedefim <1 msn idi, bundan dolayı oldukça mutluyum.

Genel olarak, bunun Arduino'nun "gerçek" ürünler / sistemler için erken prototipleme için nasıl yararlı bir araç olabileceğini gösteren iyi bir iş çıkardığını düşünüyorum. Bunu en az çabayla çalışan bir ilk deneme sürümü almak için kullanıyorum ve fikrin işe yarayacağından emin olduğumda , çalışmayı tamamen özel ve amaca özel bir uygulamaya geçirmek için kullandım.


Tasarım dosyaları:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
("GPS Timestamp" dizin dizisinde).
(Not: Dosyalar Altium Designer'dandır. Kartal dosyaları değildir ).

Kaynak kodu:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Yine, "gpsTimeStamp" dizininde.

Bu boktan cep telefonu resimleri için üzgünüm.


Lütfen resim sayısını azaltır mısın? 3-4 fikri anlayabilmek için yeterli olmalıdır. Yavaş bağlantıların yüklenmesi oldukça uzun zaman alır.
asheeshr

7
@AsheeshR - Ben şiddetle katılmıyorum. Son döneme ait resimlerden birini düşürebilirim, ancak sistem tasarımının ilerlemesine sahip olmak bence oldukça değerli.
Connor Wolf

1
Serigrafi ile eğlenmek?
TheDoctor

Oooh, 3D görünüm PCB. Aww, Altium ve oldukça pahalı? : $ Bu projeleri görmek ya da başkalarının yaptığı projeleri görmek oldukça eğlenceli ..
Paul

7

Sonic Ray Gun

Çocuklar tarafından iki proje

Evde eğitimli iki çocukla çalışıyorum ve bir arduino ile çok eğleniyoruz. İlk projeleri, filmlerde gördüğünüz gibi, LCD geri sayım sayacı ve klasik bir "kırmızı veya mavi kabloyu kesiyor musunuz?" Şeklinde sahte bomba oldu. tür sorunu.

İkinci proje onlara toneMelody örneğini ve küçük bir konuşmacı göstererek başladı. Hızlı bir şekilde, eğer 15kHz'e kadar frekansı açarsanız, bu durum gençlere çok sinir bozucu geliyordu. Bir saat sonra tasarıma bir bardak, tuvalet kağıdı ve bir ataçtan yapılan bir yönlü sonik ışın tabancasıyla yapılmış bir anahtarla geliştirdiler.

Ne yazık ki resim yok.

Sonuç

Bir arduino ile gözetimsiz çocukları bırakmayın.


3
Bunu biraz daha açıklayabilir misiniz (kod, Fritzing, vb?)?
Anonim Penguen

7

(sahte) Arduino'da Linux

Geçenlerde Arduino TVout kütüphanesini kullanarak hızlıca oynamaya başladığım küçük bir kompozit LCD ekran aldım. Sonra ne geldi? Linux!

Açıklama

TV ekranımla ve TVout kütüphanemle uğraşırken, TV için hazır bir terminal işleyicisi olduğunu keşfettim. Çok geçmeden PS / 2 klavyeye bağlı bir TV terminali olarak kullanmayı denemeye başladım. Kullandığım PS / 2 kütüphanesinde bazı problemler vardı, bu yüzden Mega ADK'mdaki USB kütüphanesini ve USB klavyesini kullanmak için geçiş yaptım. Bu çok daha iyi çalıştı. Şimdi depolama için.

SD kart kalkanı Mega'mla uyumlu değil, bu yüzden tahtanın sonunda SPI'ye biraz tesadüfen bağladım. Dosyaları listeleme ve disk boyutunu bulma, boş alan, vb. Gibi birkaç görevi önceden yapmak için komut işleme yazdım. Tüm montaj hiçbir şekilde bitmedi, ancak yaptığım ilerlemeden memnunum.

Kod sonunda Github'a taşınacak, yorumları izleyin.

tasarlamak

fotoğrafı uzaklaştır

yukarı clse

Zorluklar

Girilen karakterleri şu anki komutu saklayan dizgeyle birleştirmekle ilgili sorun yaşadım çünkü doğru seçmiyordum. Bunu çözdüğümde, bazı tuşların ekrana rastgele çöp bastığı sorunu düzeltmem gerekiyordu. Bunun nedeni harf tanımlarından önce hafızanın okunmasıydı, bu yüzden birkaçı siler if.

Sonuç

Koddan çok memnunum. Bir kaç tane daha yardımcı program eklediğimde, onu Github'a koyacağım, bu yüzden yorumları izleyin. Genel olarak, çok eğlenceli bir projeydi. Stino'yu bu süreçte nasıl kullanacağımı öğrendim.


Bu ilginç geliyor. Yakında kodunuzu görmek isterim!
asheeshr


LCD'nin fiyatı çok mu yüksek?
Anonim Penguen


@AnnonomusPerson ben demonte etti çünkü çok hantaldı
TheDoctor

5

ShiftLCD

AVR tabanlı, Arduino uyumlu, 8x1 ila 20x4 Karakter LCD Ekranın arkasına monte edilen kart.

Açıklama

Bu panoyu ve özel kütüphaneyi, kullanımını ve LCD'yi kolaylaştırmak için tasarladım. Şu anda kullanımı oldukça kolaydır. 6 ila 3 arasında kullanılan çıkış pinlerinin sayısını azaltır. Ayrıca, ekranı çalıştırana daha fazla vardiya kaydı ekleyerek G / Ç genişletme seçeneğine de sahiptir. Kullanılan işlemci, kaydırma yazmacını kullandıktan sonra, dijital pimler 1 (PWM) ve 4 mevcut ve analog pim 2 (dijital pim 4 ile aynı pim) mevcut olan bir ATTiny45 veya ATTiny85'tir.

tasarlamak

Şematik İSG Parkı render Lehimlenmemiş kurulu

Zorluklar

Karşılaştığım öngörülemeyen zorluklardan biri de başladığımda vardiya yazmacını çalıştırmak için 0-2 numaralı dijital pimleri kullanmamdı, bunlar da programlama pimleriydi (MISO, MOSI, SCK). Böylece cihazı her programladığımda, LCD ekranın sıfırlanması için gücün kapatılması gereken bir sürü saçma mesaj alacaktı. Bu sorunu vardiyalı kayıt mandalı pimini bir programlama pimi olmayan dijital pim 3'e hareket ettirerek çözdüm. Bunu çözmek de benim için başka bir problemi daha çözdü, çünkü mandal pimini hareket ettirdiğimde PWM kullanımına sahip dijital pim 1'i açıp tahta ile daha fazla iş yapılmasını sağladı.

Sonuç

Bu, en havalı ürün veya fikir olmayabilir, ancak yine de kullanım alanı vardır. Doğrudan soruya cevap, “Bu projeyi yaparken ne öğrendin” baştan sona bir PCB panosunu nasıl tasarlayacağımı öğrendim. Farklı bir şey yapabilseydim, delikten ziyade yüzeye monte parçaları kullanmak olurdu, o zaman yine sadece bir prototip, bir kerelik tahtadır.


ATtiny'inizi nasıl programladınız? Hangi kod vardı? IDE? (Lütfen yorum yazın, yayınınızı düzenlemeyin. )
Anonymous Penguin

@AnnonomusPerson Yorumlarını kaldırmadan önce yaptığım şeyi gönderen kişiye benziyor, bu yüzden ATTiny'i programlamak için gereken şeyleri (Arduino IDE dosyaları ve programlama şeması) aldım. highlowtech.org/?p=1695
Jesse Laning

Neden yüzey montaj kullanıyorsunuz? Evde delikten lehimleme çok daha kolay? Bence SMD sadece üretim çalışmaları için mi, yoksa başka bir şey mi var?
Paul

5

Düğmeye basan robot.

Düğmelere basan dört tekerlekli sekiz kiloluk uzaktan kumandalı lazerle çekim robotu.

Açıklama

Bu projeyi geçen okul yılı boyunca yaptım. Robotik dersindeydim ve bir yarışmaya karar verdik. Her takım büyük bir butona ve diğer butonlara basma yoluna sahip bir robot yapar. Yıl sonunda, üç robotun birbirlerinin düğmelerine basmaya çalışacağı final yarışmasını yapardık.

Yıl sonuna kadar robotum yalnızca kısmen çalıştı. Robotun her kısmı bir noktada çalışıyordu, ancak kızarmış bir Arduino arasında, kızarmış motor sürücüleri, korkunç kod organizasyonu ve benim takımımda robot üzerinde toplam beş saatten fazla çalışan tek kişi olarak, ben tamamen işe yaramadı.

Neredeyse bir yıldır robotuma dokunmadım, bu yüzden tekrar çalışmasını istersem botu yeniden yazmam ve kodu tekrar yazmam gerektiğini biliyorum. Bir gün bunu yapmaya karar verebilirim, ama şimdilik daha az iddialı projeler üzerinde çalışacağım.

tasarlamak

Genel tasarım

görüntü tanımını buraya girin

Bilgi / elektrik akışı

+--------------------------+   +-------------------------------------------------+
|         Computer         |   |      Robot                                      |
|--------------------------|   |-------------------------------------------------|
|                          |   |                                                 |
| Keyboard +--> Processing |   |  Button +-------------+        Motor    Motor   |
|                          |   |                       |          ^       ^      |
|                    +     |   |                       |          |       |      |
|                    |     |   |  Batteries +-----+    |          +       +      |
|                    v     |   |                  |    |   +----> Motor Driver   |
|                          |   |                  v    v   +                     |
|               Bluetooth +-----> Bluetooth +--> Arduino Uno +--> Motor driver   |
|                          |   |                  +    +  +       +       +      |
+--------------------------+   |                  |    |  |       |       |      |
                               |                  |    |  |       v       v      |
                               |                  |    |  |    Motor     Motor   |
                               |                  |    |  |                      |
                               |                  |    |  |                      |
                               |                  |    |  +-----> Laser          |
                               |  +---------------|----|----+                    |
                               |  |       Arm     |    |    |                    |
                               |  |---------------|----|----|                    |
                               |  |     +---------+    v    |                    |
                               |  |     |      Motor Driver |                    |
                               |  |     v              +    |                    |
                               |  |  Servo             |    |                    |
                               |  |                    v    |                    |
                               |  |                  Motor  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

Bileşenler

kod

Kodumu çok iyi düzenlemedim, umarım bu doğru koddur.

Daha fazla resim

görüntü tanımını buraya girin görüntü tanımını buraya girin

Robotun yavaş, kolsuz, düğmesiz, lazersiz ve bluetoothsuz versiyonunun korkunç bir görüntüsü.

https://www.youtube.com/watch?v=Q7MvE7-Xb0E

Sonuç

Elektronikte kızartma konusunda gerçekten iyiyim.

Bu benim gerçek bir makine mağazasındaki ilk deneyimimdi. CNC freze tezgahı, manuel freze tezgahı, torna tezgahı ve şerit testere kullandım. Eğer böyle bir projeye tekrar başlasaydım, çok daha iyi belgeler yapardım, böylece bir yıl sonra ne halt ettiğimi anlayabilirdim.


1
İyi iş! Hiçbir şey deneyim kadar değerli değildir ve önemli olan, bir dahaki sefere nasıl daha iyi bir iş yapılacağını bilmenizdir.
jippie

5

Arduino için 4 Haneli LED ekran

4 adet 7 segmentli küçük LED pano, 3 pim ile yönetilebilir.

Açıklama

Arduino ile çalışmaya başladığımda, denediğim çeşitli sensörler tarafından toplanan değerleri göstermenin bir yolunu istedim, ancak bu değerleri Serialbir PC'ye vermek istemedim .

Bir projeden diğerine kolayca yeniden kullanabileceğim küçük bir tahta istedim ve bir breadboard çıkarmak istedim.

Bu anakart, küçük kütüphanesiyle birlikte, şu anda 4 basamaklı sayıların görüntülenmesine izin veriyor ve gösterim sırasında herhangi bir Arduino akımı beslemiyor (akım sadece panoya gösterilecek yeni değeri ilettiğinde kaynaklanmaktadır).

sayaçlı ekran kartı

tasarlamak

LED ekranımı çalıştırmak için bir MAX-7219 yongasını tekrar kullanmaya karar verdiğim için tasarım oldukça basit (bir kısmı elimde vardı).

Bu çip sayesinde, şematik çok basitti, ancak nasıl kullanılacağını doğru anlamak önemliydi; Neyse ki, veri sayfası oldukça açıktı.

Orijinal tasarım bir breadboard üzerinde yapıldı ve 4 adet tek LED 7 parçalı rakam kullandı ; ancak zevkime uygun çok fazla kablolama gerekiyordu (segmentleri 4 kişilik gruplar halinde birbirine bağlamamız gerekiyor). Ayrıca, 7 segmentli LED rakamlarla yaptığım ilk denememde bir tane kızarttım: 2 tane topraklama pimi vardı, ancak ikisini birden yerine GND'ye bağladım :-(

Sonra 4x basamaklı bir ekrana, ortak katoda , 4 basamak için zaten bağlı olan segment anotlarına gitmeye karar verdim : bu sadece 4 + 8 pin!

Yönetim Kurulu Şeması

Testlerim sırasında, yeniden kullanmaya karar verdiğim MAX-7219 ile çalışmak için kullanışlı bir Arduino kütüphanesi buldum . Benim yerleşik kendi kütüphanesini çok basit API ile, bunun üzerine.

Breadboarding sonrasında tasarımı daha kalıcı hale getirmenin zamanı gelmişti; elinde bir sürü striptiz vardı, ben de buna karar verdim.

Panomuzu tasarlarken kullandığım PC için kolay bir Stripboard tasarımcısı aradım ve buldum .

İlk stripboard tasarımı alan olarak optimize edilmedi ve uygulanmamasına karar verdim:

GÜÇLÜK TASARIMI # 1

Sonra maliyeti ve boyutu optimize etmek için tasarımı gözden geçirdim (sadece bir küçük 50x75mm stripboard); Bu daha önce bulduğum striptizci tasarımcısıyla kolaydı:

ŞABLON TASARIMI # 2

Kart hazır olduğunda, Arduino UNO ve Ultrasonik Sensör ile kontrol etmeye karar verdim:

RESİM

Sık sık garip, tutarsız görüntülenen değerlerim dışında çalışıyor gibiydi; Soruşturma sonrasında , ekran kartı tarafından tetiklenen gürültünün, sensöre müdahale eden gürültünün neden olduğunu gördüm . Sadece sensörün mevcut besleme pinlerine mümkün olduğunca yakın bir dekuplaj kapağı eklemem gerekiyordu ve bu mükemmel çalışıyordu (ekran kartında MAX-7219 yongası için dekuplaj kapakları olduğunu unutmayın).

Parça listesi:

  • 1 x LN5461AS: 4 basamaklı ortak katot 7-segment bloğu
  • 1 x MAX7219: çoğaltılmış LED sürücü çipi
  • 1 x IC desteği (24 pin)
  • 1 x 22K direnç
  • 1 x 10 uF elektrolitik başlık
  • 1 x 100nF kapağı
  • 1 x erkek pin başlığı (5 pin)
  • 1 x 90x50mm şerit
  • teller, lehim ...

Sonuç

Son elektronik deneylerimden 30 yıl sonra, Arduino ile tekrar virüs bulaştırdım ve bu çok basit olmasına rağmen, bana birkaç şey öğretti:

  • Kullanılan bileşenler için veri sayfalarını yorumlayabilir (MAX7219 ve LED ekran)
  • Striptiz tasarımı ile nasıl kullanılacağını ve etkili olacağını öğrenir
  • GND veya V + işaretli tüm pinlerin bağlanması gerekir: bağlanmak istediğinizi seçmediniz!
  • eğer devrenizi test ederken garip görünen bir şey varsa ve nedenini anlamıyorsanız: arama, gürültü olmalı, bir dekuplaj kapağı eklemeyi deneyin ve bunu yapmalı!
  • Arduino kütüphanesi oluşturmayı öğrenir (sadece taslak değil)

Bu projeye bugün tekrar başlayacak olsam, şunu yapardım:

  • striptiz tasarımını daha da optimize etmeye çalışın (muhtemelen boyutu biraz daha azaltabilirim)
  • tahtadaki düz pim başlıklarını dik açılı başlıklarla değiştirin, böylece Arduino'ya bağlanan teller kartın önünde daha fazla çıkıntı yapar

5

Radyo Frekanslı Dijital Duvar Saati (RF) Uzaktan Kumandası

Uzaktan kumandalı büyük (40x30cm / 16x12 ") 7 parçalı ekran duvar saati.

görüntü tanımını buraya girin

Açıklama

Bu proje , R / F uzaktan kumanda ile büyük (40x30cm / 16x12 ") 7-segment ekran dijital duvar saati bulunuyor. Aşağıdaki özelliklere sahiptir:

  • Geçerli saat ve tarihi (saat, dakika, saniye, gün, ay, yıl) iki formatta (büyük rakamlarda saat veya tarih) gösterir.
  • Geçerli sıcaklığı ° C cinsinden gösterir.
  • Sıfıra ulaştığında bir (sinir bozucu) alarm çalacak kullanıcı tanımlı bir geri sayım vardır.
  • Tüm fonksiyonlar uzaktan bir RF uzaktan kumanda ile kontrol edilir.
  • İşlevlerini kontrol etmek için küçük bir imleç tuş takımına sahiptir (uzaktan kumanda mevcut değilse).
  • Her ekran için bağımsız parlaklık kontrolü.
  • Bir jetonlu pil ile çalışan gerçek zamanlı saat IC sayesinde kapalıyken bile geçerli zamanı doğru tutmaya devam eder.

tasarlamak

Bu projenin en önemli yönleri şunlardı:

  • Tamamen Arduino ve AVR ATmega328 mikrodenetleyicisine dayanıyor.
  • Düğme pille çalışan DR1307 RTC sayesinde, kapalıyken bile mevcut zamanı korur.
  • Rakamlar asla çoğaltılmaz. Bunun yerine, her basamak, seçilen basamakları diğer basamaklarda görüntülenenden ve MCU’nun ne yaptığından bağımsız olarak tutan özel bir 8 bitlik seri kaydırma yazmacı IC’ye (74HC595) sahiptir.
  • Segmentler, MCU’nun veya vardiya kayıtlarınınkinden daha fazla olan mevcut tüketim nedeniyle Darlington dizileri tarafından desteklenmektedir.
  • Saat, kontrol panosundaki bir tuş takımı ve ayrıca bir RF uzaktan kumanda ile kontrol edilir. Telsiz iletişimi, bir çift ucuz 434MHz telsiz alıcısı ve verici tarafından gerçekleştirilir.
  • Proje, tek bir kontrol cihazının 12 tek basamağı yönetebildiği modüler bir tasarıma sahiptir. Kontrolör ayrıca sınırsız sayıda hane için genişletilebilir modülleri de kabul eder (maksimum hane sayısı, vardiya kayıtlarının daisy zincirlenmesi ve saat sinyallerinin zayıflaması nedeniyle zamanlama gecikmesiyle sınırlıdır).
  • Tasarım, bir dizi hazır 7 segmentli ekran rakamını veya LED'lerle yapılan özel rakamları destekler.

Aşağıda kontrolör ve 7 segmentli panolardan birinin şemaları verilmiştir:

görüntü tanımını buraya girin görüntü tanımını buraya girin

İşte tasarladığım, çizdiğim ve birleştirdiğim panoların bazı resimleri ve uzaktan kumanda:

görüntü tanımını buraya girin görüntü tanımını buraya girin görüntü tanımını buraya girin

Ve son olarak, saatin başka bir versiyonunun resmi. Bu bölümde 7 segmentli ekranları kendimi dikdörtgen LED'ler ve ayrık bileşenler kullanarak yapıyorum.

görüntü tanımını buraya girin

Sonuç

Bu proje bu aşamaya gelmek için çok zaman, çaba ve öğrenme aldı (öğrendiğim gibi asla bitmedi), ama çok eğlenceliydi. Öğrendiğim birkaç şey:

  1. Kontrol cihazınıza GPIO pinleri atamadan önce , projenizde kullanacağınız tüm kütüphaneleri inceleyin , böylece olası çatışmaları önlersiniz. VirtualWire zamanlayıcı ile ilişkili parlaklık kontrolü için aynı PWM pinini kullanmam şanssızdı, bu yüzden aynı anda parlaklık ve RF çalışmasını sağlamak için anakartı yamalamam gerekti.

  2. Sıkma KK molex ve mod konektörleri çok zaman alıyor!

  3. Lazerle kesilmiş akrilik parçalar gelecek. Sakar olsanız bile cihaza çok fazla kalite katarlar.


PCB'leri (dağlama ve delme) nasıl yaptınız?
sachleen

1
@sachleen Toner aktarma yöntemini ütü ile kullanıyorum. Bir lazer yazıcıda tahta tasarımını mürekkep püskürtmeli fotoğraf kağıdına yazdırıyorum, sonra tahtaya ütülüyorum, sonra da kartı FeCl'de oyuyorum. Doğru kağıt ve yazıcı ayarlarını bulmak biraz zaman alır. Delme için bir dremel matkap presi kullanıyorum , ancak yalnızca fenolik plakalar ve yüksek hızlı matkap uçları kullanıyorum. Fiberglas levhalar, genellikle daha pahalı ve kırılgan karbür matkap uçları gerektiren matkap uçlarında çok daha zordur.
Ricardo,

Bu LED'leri nereden aldın? Bende aynen öyle görünen bir tane var!
Şapkalı Adam

1
@TheGuywithTheHat Yeşil dikdörtgen olanlar? Brezilya'da buralar oldukça yaygın. Bunları çevrimiçi elektronik bileşenler mağazamızdan birinde aldım. İşte bazı bağlantılar: DigiKey'de , eBay'de . İşte onları aldığım yer .
Ricardo

5

TV Anten Döndürücü

IR uzaktan kumandalı anten dönüşü

TV anteninin yönünü ayarlamak için koltuktan çıkamaz mı? Yapsanız bile, bazen antene olan yakınlığınız alımı değiştirir. Anteni kanepeden ayarlayabilmek güzel olurdu. TV uzaktan kumandasını kullanma.

Bileşenler

Arduino Uno, IR alıcı, Step motorlu w / sürücü kartı, 1 "ID rulman, Swiffer paspas kolu, Plastik kutu,

TV'nin arkasında Arduino w / IR alıcısı önde Kutu ve rulman kapat Kaydırma kolu Bu iki düğme televizyonda zaten hiçbir şey yapmıyor

Açıklama

Anten direği olarak eski bir Swiffer paspas kolu kullanın. En sevdiğim çevrimiçi mağazadan paspas sapının sıktığı ve durduğu 1 inçlik bir ID yatağı aldım. Paspas sapının sığabileceği büyüklükte plastik kutuya bir delik açmıştım, ancak yatak için değil. 28BYJ-48 kademeli motorun şaftını sığdırmak için paspas sapının ucuna bir delik açın ve mahfazayı gösterildiği gibi kutuya yapıştırın. Paspas sapı aslında yatağa dayanır ve yatak plastik kutunun üstüne süper yapıştırılmıştır .

Motoru bir Uno'dan döndürmek için stepper.h kütüphanesini kullandı.

Kullanılmayan bir DVD oynatıcısını söküp IR alıcısını ondan kurtardım. Kumandayı olan herhangi bir tüketici cihazını parçalara ayırabilir ve IR alıcısını bu cihazdan çıkarabilirsiniz. IR alıcısı IRremote.h kütüphanesini kullanır. Seri monitörü kullanarak, anten motorunu çalıştırmak için kullanmak istediğim TV uzaktan kumandasındaki iki düğmeye karşılık gelen altıgen kodu yazdırdım. Biri sola, diğeri sağa döner.

Enerjiden tasarruf etmek için, her hareketten sonra bobinleri kapatmak için small_stepper.motorOff () işlevini kullanın.

Sonuç

Bu, karım için de faydalı olan eğlenceli bir projeydi. Özellikle anten daha fazla dönme ataletine sahipse, hareket halinde herhangi bir hızlanma / yavaşlama yapmadım.

Düzenleme: resim yana olduğu için üzgünüm! Bilgisayarımda sağ tarafta, neden yan yana çevrimiçi olduğunu bilmiyorum.


5

Vuruntu lambası

Masa çalındığında açılıp kapanan bir lamba. Halen alfa aşamasında, hala prototip, ancak var olan en yararlı Arduino projesi. Dahil corny şaka jeneratörü ... önceden kaydedilmiş vuruş vuruş şakalarından. Not: Kurallarda kazanamayacağımı biliyorum, ancak girmeyle ilgili bir kural yok ... Projemi de gösterebilirim.

Açıklama

Şimdiye kadar hemen hemen çoğunu açıkladım. Vurursunuz ve ışık yanar ve söner. Şu anda breadboard'dayım. Bir piezo elemanı kullanıyorumTitreşimli darbeleri tespit etmek için . Paralel olarak, Arduino Uno SMD'mi korumak için 1 megaohm'luk bir direnç var.

Küçük geçiş anahtarını ararken neredeyse tasarımımı lambamı masamdan (haha punny) çaldıktan sonra düşündüm. Tam değilim ... kuyu hünerli olduğu . Sadece masayı çalıp sonra da ışığın olması güzel. Ayrıca Arduino'nun iki pimi ile kontrol etmek için Güç Anahtarı Kuyruğu SSR (katı hal rölesi: gürültü yok) kullanıyorum.

tasarlamak

Fotoğraf Web kamerası monitörün üzerine asılı iken çekilmiş görüntü ... eek!

Fritzing diyagramı

Projeyi oluşturmak için kullanılan bileşenler:

  • Piezo öğesi (3,00 ABD doları)
  • Megaohm direnci (her biri 5pk'de 0.30 USD)
  • Arduino Uno SMD (yandan)
  • Güç Anahtarı Kuyruk SSR (~ $ 25.00 USD gemi ile birlikte
  • Breadboard ve jumper / ekstra kablo (~ 5,00 ABD doları, ancak eldeki maliyeti yoktu)

Bana maliyet: 3,30 ABD Doları + 0,02 ABD Doları (vergi) == Sadece 3,32 ABD Doları!

Sonuç

Genel olarak, basit bir proje ama aslında yararlı. Bu Arduino projelerimle mücadele ediyor: gerçekten kullanacağım bir şey yapabilir miyim ? Bir LED'in yanıp sönmesi, hayatta size tam olarak yardımcı olmaz. Eğlenceli, ama bu konuda.

Karşılaştığım en büyük sorun (ve hala devam ediyor) yeterince güçlü bir sinyal almamak. Elektrik sinyalleri hakkında çok şey öğrendim: Darbenin "zirvesini" nasıl bulacağımı, pimi rastgele bir aralıkta okumayı ve yüksek gerilimi kaçırmayı öğrendim. Daha hassas piezo elementi almaya çalışırdım. Daha büyük bir yardımcı olur. Devreyi voltajı çok fazla sınırlamayacak şekilde değiştirmeye çalışıyorum, ancak Arduino'yu koruyorum. Bir çeşit sigorta bu durumda yardımcı olabilir. Ayrıca direnç değerleri ile oynuyorum. Bunun için bir kapsamı olması çok yardımcı olurdu, ama sanırım hayır ...: P

Devreyi mükemmelleştirdikten sonra, ATtiny'li bir PCB'ye almak için çalışacağım ... ve hatta bazı kitler bile geliştireceğim. Yönetim kurulunu işlem sırasında riske atmadan öğeyi nasıl daha hassas hale getirebileceğime dair bulgularımı yayınlamaya çalışacağım.

Durum güncellemesi: Son zamanlarda çok meşguldüm. Çipi korurken sinyalin seyreltilmesini önlemek için megaohm rezistörünü çıkarmak için bir veya iki hafta içinde burada bir zener diyodu (4.3V) sipariş edeceğim. Sensörü daha hassas hale getirmek için gerekirse (zener ile birlikte) gerekirse basit bir voltaj amperi kurabilirim.


1
Diferansiyel bir şeye geçmek ve ADC kazanmak, piezodan daha fazla hassasiyet almanıza yardımcı olacaktır. Ve muhtemelen bir direnç yerine bir TV kullanarak.
Ignacio Vazquez-Abrams

Algılama veya kesme için ADC kullanıyor musunuz? Voltaj tepesinin ne kadar büyük olduğunu tespit etmek istediğinize dair bir fikriniz var mı?
jippie

@ jipie ADC tespiti için oldukça verimli bir kodum var: her 250 ms için bir döngü yapıyor ve zirveyi buluyor. Gecikme yok. Zirve için IIRC 14/1024 civarındadır (şimdi bunu dönüştürmek için çok tembel). Ben de AREF pimine bakmalıyım, ancak düşürüldüğünde sorun yaşayabilir - ~ 9V.
Anonim Penguen

Deneyin bu giriş tamponu olarak. Transistör, akımı yükselten bir yarım dalga doğrultucu / tepe detektörü olarak görev yapar. ADC ile tek bir tepe noktası tespit etmeye gerek yok, transistör / kondansatör sizin için zorlar. Yapılandırıldığı gibi çıkış voltajı bir 2.2V DC önyargıya sahiptir, ancak rezistif bölücüyü değiştirerek bunu tercih ettiğiniz herhangi bir şeye değiştirebilirsiniz. Bu şekilde 1V1 veya 2V56 bant aralığı referansını seçerek girişi daha hassas hale getirebilirsiniz. 10M direnci, kapasitörün yaklaşık bir saniye boyunca boşalmasını sağlar ve gerçekte benim DMM'm olmuştur.
jippie

4

MySensors

- Kendi düşük maliyetli kablosuz sensörlerinizi nasıl yaratacağınızı ve dünyaya nasıl bağlayacağınızı öğrenin.

http://www.mysensors.org

Biz buna "Nesnelerin İnterneti" diyoruz.

Açıklama

Arduino platformunu küçük bir telsiz alıcı-verici ile birleştirerek, düşük maliyetli kablosuz sensörlerin eğlenceli ve esnek bir dünyasına dönüştürdük.

Sensör iletişimi hakkındaki tüm azotlu detaylar, uygun bir yazılım kütüphanesinde paketlenmiştir, böylece onlar için endişelenmenize gerek kalmaz.

1, 2, 3 kadar kolaydır. Arduino + NRF24L01 +

  1. Parçaları bağlayın. 2. Verilen örnekleri indirin. 3. Dünyayı ölçmeye ve kontrol etmeye başlayın!

Sitede Arduino Kütüphanemiz kullanılarak sensör ağının otomatik olarak nasıl oluştuğu hakkında daha fazla bilgi edinin. Temel olarak bir yıldız ağı oluşturur ve yüz metreye ulaşabilir.

Sensör ağı

Ortasına, sensörlerinden bilgi toplayan bir Arduion veya Ahududu ağ geçidi yerleştiriyorsun. Ahududu Denetleyici

Arduino Geçidi

Tasarım ve şema

İşte evimin dışındaki bahçe ışığını kontrol etmek için yarattığım prototip hareket sensörlerinden biri. Hareket durumu, hareket algılandığında ışığı (z dalgasıyla) açan HA denetleyicime gönderilir. Bir ışık sensörü (resimde değil) yalnızca ışıkları gece açmayı sağlar.
görüntü tanımını buraya girin

Tüm yapım talimatlarını burada bulabilirsiniz: http://www.mysensors.org/build/

Ayrıca, bir sürü başka kablosuz sensör ve aktüatör için takip etmesi kolay kurulum talimatları da vardır. İşte bazı örnekler:

Mesafe Sensörü, Hareket sensörü, Röle aktüatörü, Nem, Işık, Basınç, Yağmur, Sıcaklık, ...

Sonuç

Proje hala başlangıç ​​bloklarında ve büyümekte olan Ev Otomasyonu kontrolörleri için eklentiler sağlamayı umuyoruz. Şu an listemizdeki ilk şey, sensör verileriniz için ücretsiz bir bulut depolama sağlayan bir DIY denetleyici sağlamaktır.

Merhaba

@ Mysensors.org görüşürüz

/ Henrik Ekblad (sensörler arasındaki haberleşmede kullanılan Açık Kaynak Arduino Kütüphanesi'nin yaratıcısı)

  • GÜNCELLEME 27/3. Örneği daha somutlaştırdı ve açık kaynaklı projeye olan üyeliğimi ekledi.

4
Arduino.SE'ye Hoşgeldiniz! Korkarım web siteniz vitrin kriterlerimize uymuyor. Arduino'nun pratik bir uygulamasını gösteren özel projeler arıyoruz (buradaki diğer örneklerde görüldüğü gibi). Belki inşa ettiğin bir sensör projesine örnek verebilirsin?
Peter Bloomfield

Tamam, belki noktayı özlüyorum;). Buradaki “özel proje”, Arduinos'u kendi kendini iyileştiren kablosuz sensör ağı oluşturmak için kullanıyoruz. Bunu arşivlemek için NRF24L01 + alıcı-verici için bir Açık Kaynak Arduino kütüphanesi oluşturduk.
hek

4
Bu, bir projeden ziyade bir ilana benziyor. Sesi değiştirin, belki de tek bir uygulamaya biraz daha spesifik hale getirin. Sanırım bu yüzden aşağı oy kullandın.
Cybergibbons

Ard.SE'ye Hoşgeldiniz! Profil web sitenize dayanarak, yukarıda tanıtılan sitelerde çalışıyor veya kendi siteniz var. Size bu ifşa SE politikası içinde Cevabınız. Lütfen bunu eklemek için düzenleyin. Ayrıca, bunu kullanarak bir örnek ekleyebilirsiniz?
Anonim Penguen

Bu (Açık Kaynak) MySensors kütüphanesini 6 aydır boş zamanlarımda geliştiriyorum. Başkalarının kütüphaneyi doğru kullanmasına yardımcı olmak için biz (son birkaç aydır projeye daha çok kişi katıldı) derleme talimatı sayfasını sadece 3 gün önce başlattık. Bu "Proje Vitrininde" hakkında geri bildirim almanın iyi bir Arduino projesi olacağını düşündüm. Projeye katılmamı hiçbir şekilde gizlemeye çalıştığımı sanmıyorum ve tanım bir reklam olarak algılanırsa özür dilerim. Proje için çok mutluyuz!
hek

4

Seri Kutu

Kutuda taşınabilir seri monitör

Açıklama

Bazen bir cihazın (Arduino veya başka bir şekilde) bazı hata ayıklama bilgilerini seri olarak göndermesi yararlı olabilir. Elinizde uygun bir seri girişi olan bir bilgisayarınız varsa, bu harika. Ancak, çeşitli nedenlerle her zaman durum böyle değildir.

Bu proje, sahadaki diğer cihazlara bağlayabileceğim taşınabilir bir Arduino destekli seri monitör oluşturarak bu sorunu çözme girişimim.

Varsayılan olarak, metni yalnızca geri kaydırma biçiminde görüntüler; yani metin alt satırda belirir ve daha fazlası geldiğinde yer açmak için her şey yukarı çıkar. Bu, her türlü jenerik cihazla çok düzgün çalışması gerektiği anlamına gelir. Bununla birlikte, ekranı daha hassas bir şekilde kontrol etmek için kaçış dizileri kullanmak da mümkün olacak, böylece aygıtlar yeteneklerinden yararlanmak üzere özel olarak programlanabilir.

tasarlamak

Tasarım şöyle bir kutuya hizalanmış 4 alfanümerik LCD ekrandan (her biri 16x2 karakter) oluşan bir setten oluşuyor:

Seri Kutusu tasarımı 3d mockup

Ekranlar ne yazık ki standart Hitachi HD44780 sürücüsü ile uyumlu olmayan Epson EAX16027AR's. Böylece onlar için kendi kütüphanemi yazmak zorunda kaldım .

Bu ekranları (örneğin büyük bir ekran yerine) kullanmayı seçtim, çünkü sadece etrafta yatarken ve onlarla ilginç bir şeyler yapmak istedim. Ayrıca bazı uygulamalar için her ekranı bağımsız olarak kontrol etmenin oldukça kullanışlı olacağını düşündüm (örneğin, her birinde farklı bilgiler göstermek).

Devre tasarımı açısından, ekranlar paralel olarak bağlanır ve her birine veri / komutları gerektiği gibi yönlendirmek için çip seçme pimleri kullanılır.

Bir ATMega328, TTL seviyeli bir hattan (doğrudan benzer bir MCU’nun TX’ine bağlantı için) veya isteğe bağlı olarak bir RS232 9-pin D-alt soketinden (seri bağlantı için çeşitli diğer sistemler). Ünitede ayrıca kontrast kadranı, ekranı temizlemek için bir düğme ve bir otomatik test modu başlatmak için bir düğme bulunur. Gelecekte, kullanıcının da geri kaydırma geçmişinde ilerlemesini sağlayan düğmeler eklemek istiyorum.

Aşağıda çok ön devre düzenini bulabilirsiniz (nedense güzel bir şekilde oynamaya Fritzing yaptırmakta çok sorun yaşadım!). LCD'lerin yeşil renkte gösterilen veri hatlarını çalıştırmak için kullanılan 8 bitlik bir SIPO kaydırma yazmacı içerir. Çip seçme çizgilerini turuncu da görebilirsiniz.

Ön devre düzeni

Şu anda, proje hala bir Uno (klon) tahtasından tahrik edilen prototip aşamasındadır. Aşağıda, bilgisayarımdan seri olarak geçen metni görüntüleyen bir fotoğrafını çalışırken görebilirsiniz.

Prototip eylem

Kaynak kodu

LCD kütüphanemi GitHub’da aşağıdaki linkte mevcut yapıyorum. Lütfen geliştirmenin erken bir aşamasında olduğunu unutmayın. Yakın gelecekte, çekirdek LiquidCrystal kütüphanesine çok daha benzer olmasını sağlamayı amaçlıyorum, böylece ikisi arasında geçiş yapmak daha kolay.

Seri Kutum prototipinin temel kodunu "örnekler" klasöründe bulabilirsiniz.

Sonuç

Projenin çok güzel bir şekilde geldiğini düşünüyorum ve prototipin çalışmasını sağlamaktan son derece memnun oldum. Asıl zorluğum her şeyi bir kutuya monte etmek olacak. Ekranlar için uygun delikler açmak için çoktan başladım, ancak bu tür bir konuda çok deneyimli değilim ve her şeyi sıraya koymak oldukça zor buluyorum.

Sonunda oraya gideceğim. Sadece işim bittiğinde çok hoş görünmeyebilir! :)


3

Isıtma kontrolörü

Nasıl olduğunu bilirsiniz - ısıtmayı belirli bir zamanda açmaya ayarladınız ve kaç gün geç saatlere kadar çalışıyorsunuz ve saatlerce tam deliğe biniyorsunuz, ya da birkaç günlüğüne gidip kapatmayı mı unuttunuz? Ya da eve erken gelmeniz ve evin soğuk olması gibi nadir bir durum mu? Bunu çözmenin basit yolunun, ısıtmamı kısa mesaj / sms ile açmamı sağlayacak bir cihaz oluşturmak olduğuna karar verdim. Sağlayabileceği esnekliği kaybetmemek için mevcut kontrol sistemine ek olarak olacaktır.

Proje birkaç ana bölümden oluşuyor: bir Arduino Uno klonu, bir Seeedstudio GSM kalkanı, DHT22 sıcaklık sensörü ve 25 amper SSR.

Nasıl çalışır:

Mevcut ısıtma kontrolleri 'Kapalı' olarak ayarlanmış ve yeni kontrolör bunları geçersiz kılmak için bağlanmış. Uno, üç farklı mesaja yanıt verecek şekilde programlanmıştır - Açık, Kapalı ve Sorgu. İkinci durumda, ünite DHT22'yi okuyacak ve gönderene geçerli sıcaklık ve ünitenin durumu ile cevap verecektir (açık veya kapalı). Komut Açık veya Kapalı ise, gerçekleştirilen eylemin onayı ile yanıt verecektir. Mesajlar harekete geçtiğinde silinirler; Özel mesaj yapısına uymayan mesajlar SIM kart hafızasında bırakılır ve istenirse daha sonra incelenebilir.

Üniteye gelen güç, beş voltluk üç amper anahtarlamalı güç kaynağı tarafından sağlanır. Arduino'daki güç pimleri, anakartın dahili 5v veri yolunu gösterdiği için, topluluğu bu güçlerle çalıştırmaya ve kalkanı Arduino'dan güç çekecek şekilde yapılandırmaya karar verdim.

Ünite üç durum ışığına sahiptir. Gücün olduğunu belirten bir yeşil, GSM kartının 'canlı' olduğunu belirten mavi bir, ısıtmanın durumunu gösteren kırmızı bir tane. Bunlar Arduino ve ekran üzerinde sağlanan durum LED'lerine ek olarak. Sıcaklığın üstesinden gelmek için 100nF kondansatöre sahip, ısıtmanın manuel olarak kontrol edilmesini sağlayan bir düğme anahtarı da vardır.

Sonraki:

Kodun çoğu, kalkanı etkilerini gerçekleştirmesi için yeterli zaman vermek üzere eski güzel gecikmeye () dayanır. Kodu, tahsis edilen süre içinde söyleneni yaptığını varsaymak yerine kalkandan onay beklemek için geliştirmeyi planlıyorum! 'Hala canlı' bir özellik de ekleyeceğim - sabit aralıklarla mavi LED'i kapatın, AT komutunu ekrana gönderin ve bir onayladığınızda LED'i tekrar açın. Kalkan yazılım kontrolü altındadır, bu nedenle yanıt vermezse, kapatıp tekrar açın.

Bütün takım uygun bir muhafaza içine monte edilmeli ve mevcut kontrol ünitesine bitişik olarak monte edilmelidir. Devre dışı bırakmak için ayrı bir anahtar ve kırmızı LED yerine kullanacağım içten aydınlatmalı bir düğme anahtarım var.

Uzun vadede bir RTC, 20 x 4 LCD ve birimin programlanmasına ve bir zaman anahtarı olarak işlev görmesine izin veren ek düğmeler eklemeyi planlıyorum.

Prototipleme çoktan başladı!

Sonuç.

Soğuk bir kışın dinlenme gününde uyanmak, ısıtmayı açmak için bir metin mesajı / sms göndermek, bir saatliğine geri gelmek ve tekrar uykuya dalmak için hafif bir çöküntü var! Ve bir gecede kapatmadığınızı fark ettiğinizde bunu yatağınızın rahatlığından yapabilirsiniz!

Denetleyici Görüntüsü 1 Denetleyici Görüntüsü 2

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.