Etalase Proyek '14

25

Logo ini merupakan turunan dari Logo Komunitas Arduino yang dilisensikan di bawah lisensi Creative Commons CC-SA-BY-NC 3.0

Pembaruan: Pemenang Diumumkan

Pemenang kontes telah diumumkan. Silakan lihat posting Meta untuk detailnya .

Untuk merayakan 10 tahun Arduino , kami dengan bangga mengumumkan acara pertama di Arduino Stack Exchange.

Keluarkan papan dan peralatan solder Anda, gali IC dan resistor. Kontes Arduino Stack Exchange pertama hanya di tikungan. Kami akan mencari proyek menarik yang dibangun menggunakan Arduinos. Kontes ini bertujuan untuk berbagi, membahas, dan memberikan umpan balik tentang proyek yang sedang Anda dan anggota lain kerjakan. Lihat posting pengumuman

Detail:

  • Hadiahnya adalah kaos resmi Stack Exchange
  • Batasi dua entri per orang. Jika lebih dari dua disediakan, hanya dua yang pertama yang akan dipertimbangkan.
  • Klon yang diperbolehkan.
  • Proyek untuk dipertimbangkan akan diterima hingga 29 Maret 2014 pukul 4:00 UTC. Pertanyaan itu akan tetap terbuka seandainya seseorang ingin memamerkan proyek yang mereka buat pada Hari Arduino 2014.

Kunjungi pos Meta untuk diskusi tentang acara ini dan informasi lebih lanjut.

Format Jawaban

Anda dapat memposting hingga dua proyek (sebagai dua jawaban terpisah) sebagai entri untuk kontes. Semua entri tambahan akan dihapus. Pertimbangkan mengikuti templat berikut untuk entri:

Judul Proyek

Deskripsi Sangat Singkat

Deskripsi

Apa proyekmu? Apa fungsinya? Masalah apa yang dipecahkannya?

Desain

Hal-hal untuk dimasukkan dalam bagian ini:

  • Skema dan dokumentasi desain lainnya. Fritzing adalah alat yang baik untuk menggambar skema papan tempat memotong roti seperti yang ditunjukkan pada logo proyek di atas.
  • Komponen yang digunakan untuk membangun proyek
  • Gambar atau video

Kesimpulan

Pikiran terakhir. Apa yang Anda pelajari dari melakukan proyek ini? Apa yang akan Anda lakukan secara berbeda jika Anda harus memulai dari awal?

Anda dapat menyalin / menempelkan teks berikut jika Anda ingin menggunakan templat ini.

# 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?

Hadiah

Ada dua hadiah! Pemenangnya adalah pengiriman mendapatkan jumlah upvote maksimum (downvotes tidak masuk hitungan) dan akan mendapatkan T-shirt Stack Exchange *! Akan ada sesuatu untuk runner-up juga. Runner-up akan diputuskan atas kebijakan penyelenggara acara.

* Pembatasan tertentu mungkin berlaku. Pengiriman internasional dapat memakan waktu beberapa minggu.

Di mana saya menyerahkan proyek saya?

Posting proyek Anda sebagai jawaban untuk posting ini.

sachleen
sumber
Apa sebenarnya kualifikasi untuk menjadi proyek "arduino"? Saya menggunakan optiboot di banyak tempat, tetapi saya tidak dapat melihatnya sebagai "arduino", karena itu hanya proyek yang menggunakan toolchain arduino. Kurang menggunakan papan di arduino-form-factor, saya tidak bisa melihat cara yang jelas untuk menggambarkan antara "arduino" dan "non-arduino", kecuali jika Anda secara eksplisit mengharuskan proyek dikompilasi menggunakan arduino text-editor, dan itu mungkin akan mendiskualifikasi semua proyek yang layak karena editor arduino mengerikan, dan semua coders yang baik berhenti menggunakannya sejak lama.
Connor Wolf
@FakeName mari kita bahas diskusi ini ke Meta Post
sachleen

Jawaban:

14

Kotak pencarian stateful

Sebuah GPS kotak bertenaga yang membuat Anda mengunjungi beberapa tempat sebelum pembukaan

Deskripsi

Ini mirip dengan kotak pencarian , tetapi menyimpan sedikit informasi di EEPROM , jadi Anda harus mengunjungi dua atau tiga tempat berbeda sebelum dibuka.

Desain

Perangkat keras yang dibutuhkan:

  • Arduino Uno
  • Membalikkan Geocache Versi 2 (atau protoshield)
  • Modul GPS GlobalSat EM-406A
  • LCD 2 × 8 biru dengan konektor header dan kabel
  • Hitec HS-55 motor servo
  • 4-40 push rod dan clevis untuk kait (beberapa versi menyediakan batang Z-bend)
  • 2 tempat baterai AA
  • Tombol tekan logam dengan LED biru tertanam dan kabel 4-pin
  • Saklar tegangan rendah Pololu
  • Pololu 5 V boost regulator
  • Konektor JST untuk modul GPS EM-406A
  • Pin header lurus dan sudut kanan untuk konektor display, servo, dan tombol
  • Dua resistor untuk pembatas arus dan penyesuaian kontras tampilan
  • Dua kapasitor kecil untuk perataan daya
  • kapasitor yang lebih besar untuk rangkaian kontras tampilan

Total biaya perangkat keras: $ 137 + ongkos kirim

Materi tambahan:

  • Kotak yang bagus
  • Lem epoksi, kayu untuk menutupi potongan, alat

Anda dapat menemukan instruksi pemasangan di halaman jam matahari (Anda dapat membeli sebagian besar materi dari mereka)

Saya akan mengunggah kode negara dan memposting tautan di sini, sayangnya saya tidak akan mendapatkan semua perangkat keras yang dibutuhkan tepat waktu, jadi ini hanya ide :)

Kode yang ditulis sejauh ini :

Inspirasi:Kotak pencarian asli

Kesimpulan

Mempelajari cara mengintegrasikan banyak komponen dan pustaka semua ke negara lain, saya harus melakukan perjalanan sedikit untuk mengujinya :)

Anggaran dapat dipotong sedikit mengubah konsep sedikit:

sampai sekarang
sumber
11

Penghemat energi untuk pengguna PC yang linglung

Perangkat ini mengaktifkan / menonaktifkan lampu meja saya ketika gelap (ish) dan sinkron dengan screensaver PC saya.

Deskripsi

Proyek ini sedikit lebih dari kombinasi sensor peka cahaya, relay dan beberapa kode pintar yang memonitor screensaver di PC saya. Ketika senja dan ketika screen saver tidak aktif, itu menyalakan lampu di atas meja saya. Ketika saya kemudian meninggalkan meja saya, screensaver akan aktif, yang pada gilirannya akan memicu lampu meja dimatikan. Ketika ada cukup cahaya di siang hari, lampu tidak dinyalakan sama sekali. Masalah yang dipecahkan adalah mengurangi pemborosan energi karena pencahayaan di kantor saya dinyalakan ketika saya meninggalkan ruangan.

Desain

Karena kekuatan mikrokontroler / Arduino hanya diperlukan sedikit perangkat keras tambahan untuk membuat proyek yang bermanfaat. Hal yang sama berlaku untuk proyek ini di mana perangkat kerasnya sedikit lebih dari:

  • Arduino
  • Beberapa perisai sekrup untuk menghubungkan komponen eksternal
  • Sebuah LDR secara seri dengan sebuah resistor untuk mengukur cahaya ambient
  • Kartu relai untuk menghidupkan dan mematikan lampu bertenaga listrik
  • Kapasitor 10 μF dari GND ke RST untuk mencegah board dari reset dan secara tidak sengaja diprogram.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Kesimpulan

Saya belajar cara antarmuka PC melalui tautan serial USB dengan Arduino dan cara membaca keadaan screensaver saat ini di PC saya. Jika saya akan memulai dari awal, saya akan menggunakan pengontrol yang jauh lebih kecil karena saya benar-benar hanya membutuhkan satu output digital dan satu input analog. Mungkin mendasarkan proyek pada V-USB . Namun Arduino sangat baik untuk proof of concept (PoC) yang cepat dan mudah. (PoC sudah ada di meja saya setidaknya selama dua tahun).

jippie
sumber
Ini akan keren untuk melihat gambar-gambar dari papan akhir Anda dan pengaturan Seperti apa respons waktu itu? Instan? Setelah satu menit?
sachleen
@sachleen Daemon di PC saya yang meng-polling screensaver berjalan setiap 30 detik ketika screensaver mati (ketika saya sedang mengerjakan PC saya) dan setiap 5 detik ketika dihidupkan. Saya dapat meningkatkan kecepatan itu, tetapi itu mempengaruhi beban CPU dan dengan penggunaan daya itu ... Ada juga kapasitor yang dipasang untuk mencegah Arduino mengatur ulang dan secara tidak sengaja diprogram.
jippie
@ Sachleen saat senja turun perlahan dari waktu ke waktu, 30 detik ini tidak terlalu menjadi masalah. Tidak ada yang memperhatikan perbedaan dalam kegelapan lebih dari 30 detik. Dalam 5 detik setelah menggerakkan mouse saya atau memukul keyboard saya ketika saya mengembalikan lampu menyala. Ada sedikit histeresis di antara apa yang dianggap gelap dan terang, untuk mencegah lampu menyala / mati setiap begitu banyak detik ketika matahari terbenam menjadi cukup gelap untuk diaktifkan.
jippie
Anda harus memodifikasinya untuk meredupkannya pada 50% selama 10-15 detik sehingga Anda tidak benar-benar dalam kegelapan dan itu memberi Anda sedikit "peringatan"
Penguin Anonim
@AnnonomusPerson Saya mengganti sisi 240VAC dari SMPS yang merupakan input 100-250VAC. Tidak akan terjadi, saya khawatir karena saya tidak ingin berganti sisi kedua. Ide bagus, mungkin saya bisa menambahkan LED putih kecil yang pintar.
jippie
8

Saya pikir jenis ini hampir tidak sesuai dengan aturan, tetapi cukup menarik bahwa saya pikir saya akan mempostingnya.

Generator cap waktu Presisi Tinggi, Disinkronkan GPS untuk keperluan akuisisi data.

Ini adalah proyek yang agak menarik yang dimaksudkan untuk digunakan untuk menyediakan cara mudah menyinkronkan beberapa sistem akuisisi data independen.

Pada dasarnya, saya bekerja di laboratorium penelitian, dan kami sering memiliki instrumen yang memiliki beberapa sistem akuisisi data independen, yang dapat dipisahkan secara fisik hingga 50 kaki. Kita harus dapat mengkorelasikan waktu pengambilan sampel dari masing-masing sistem, yang bisa sulit jika Anda ingin menyelesaikan waktu pengambilan sampel dengan tingkat presisi yang tinggi. Menggunakan sesuatu seperti sistem akuisisi data USB, hanya latensi USB yang dapat memperkenalkan beberapa ratus milidetik dari latensi yang tidak diketahui, yang dapat bervariasi dari akuisisi hingga akuisisi.

Solusi sebelumnya adalah penghitung paralel 24-bit yang hanya digunakan di mana-mana, membutuhkan kabel yang sangat besar, dan agak menyebalkan.

Sistem ini menggunakan modul waktu GPS khusus yang dapat mensintesis jam frekuensi sewenang-wenang, yaitu fase dan frekuensi yang dikunci ke jam atom di satelit GPS.

MCU bertanggung jawab untuk mengikat bersama pesan data GPS (saya harus memperluas dan mengoptimalkan parser protokol yang ada untuk data GPS). GPS dikonfigurasi untuk menggunakan protokol biner berpemilik, dan semuanya diurai oleh parser yang saya tulis.

Proyek ini telah melalui sejumlah revisi (gambar di bawah).

Desain

Revisi! masukkan deskripsi gambar di sini
Rev 1: Tidak pernah berfungsi, karena pada awalnya saya berharap untuk menggunakan perangkat lunak dPLL dari GPS yang jauh lebih murah, untuk mensintesis jam frekuensi yang lebih tinggi hanya dari output 1 PPS. Mungkin memungkinkan untuk membuatnya bekerja, tetapi investasi waktu membuatnya tidak bermanfaat. (Dan aku seorang pembuat kode yang terlalu jelek)

Digunakan baling-baling paralaks MCU. Kurangnya bahasa yang dikompilasi yang layak adalah masalah besar juga.


masukkan deskripsi gambar di sini
Rev 2: Bergeser ke ATmega2560. Bekerja, memiliki banyak aspek desain yang funky diwarisi dari rev pertama. Terutama, penggunaan terus register geser untuk output 32-bit, meskipun jumlah IO yang lebih dari cukup pada ATmega2560.

Papan pertama yang menjalankan Optiboot, dan sebenarnya diprogram sepenuhnya menggunakan toolchain Arduino standar, sebelum saya merasa jengkel dengannya dan mulai memodifikasi toolchain agar lebih sesuai dengan tujuan saya.


masukkan deskripsi gambar di sini
Wahyu 3: Juga bekerja. Wiring bodged adalah karena papan ini menggabungkan hub USB bawaan untuk mengurangi jumlah port USB yang diperlukan (antarmuka FTDI membutuhkan 1 USB, dan GPS juga memiliki antarmuka USB). Sayangnya, GPS tidak mau disebutkan dengan benar, meskipun perangkat FTDI berfungsi dengan baik, dan saya telah menggunakan hub ini di tempat lain tanpa masalah. Aneh.

Saya tidak memiliki debugger USB yang tepat, jadi saya hanya menjatuhkan hub USB sepenuhnya, daripada mencoba untuk memperbaiki masalah. GPS usb tidak terlalu banyak digunakan di luar pengaturan.


masukkan deskripsi gambar di sini
Rev 4: Versi ATmega2560 semi final. Menambahkan LCD untuk status GPS, mengutak-atik LED dan sebagainya. Juga, jejak kaki yang lebih baik untuk kapasitor super yang mungkin untuk mempertahankan status GPS saat tidak diaktifkan.

Ini adalah versi Optiboot terakhir.

MStimeadalah MSTOW, atau Millisecond-Time-Of-Week, yang merupakan nama nilai data GPS yang dikeluarkan pada timestamp out. Ini adalah variabel 32-bit yang bertambah satu kali per miliseond, dan bergulir setiap minggu. Ini adalah bagian yang lebih tidak jelas dari standar GPS.

ITOWadalah nilai terkait GPS lainnya, yang merupakan nilai yang sesuai dengan sinyal 1PPS. Korelasi antara keduanya tidak tercermin dengan baik pada LCD, karena saya tidak punya waktu CPU untuk memperbarui LCD pada tingkat yang saya inginkan. Ini sebenarnya adalah salah satu hal utama yang ditingkatkan dalam peningkatan ke perangkat Xmega.


masukkan deskripsi gambar di sini
Rev 5: Switch arsitektur lengkap. Sekarang menggunakan prosesor ATxmega128A1U. Tidak benar-benar "Arduino" sama sekali lagi, tetapi kemampuan untuk memiliki beberapa level interupsi pada seri prosesor xmega memungkinkan saya untuk secara signifikan meningkatkan struktur kode.

Dua kabel bodge berasal dari saya melakukan beberapa eksperimen, papan bekerja dengan baik tanpa mereka.

Sedang mencari:

Wahyu 6! masukkan deskripsi gambar di sini
Tambahkan kemampuan untuk menggunakan ukuran LCD yang berbeda, lebih banyak perlindungan ESD pada koneksi antena GPS (yang merupakan masalah), kemampuan untuk menggunakan baterai CR2032 untuk mempertahankan jam GPS daripada kapasitor super.

Juga, pelabelan yang lebih baik untuk debug dan LED status.

masukkan deskripsi gambar di sini
Dan bonus Nyan-Cat!

masukkan deskripsi gambar di sini

(Papan ini sedang keluar untuk pembuatan sekarang. Ketika saya mendapatkannya, saya akan menambahkan gambar dari papan asli.)


Saya melakukan beberapa pengujian jangka panjang antara dua papan ATmega2560, dan lebih dari 72 jam, kesalahan waktu RMS antara kedua unit adalah ~ 20 uS. Ini juga dengan dua antena yang sepenuhnya independen. Tujuan desain saya adalah <1 ms, jadi saya sangat senang dengan itu.

Secara keseluruhan, saya pikir ini melakukan pekerjaan dengan baik yang menggambarkan bagaimana Arduino dapat menjadi alat yang berguna untuk membuat prototipe awal untuk produk / sistem "nyata". Saya menggunakannya untuk menjalankan versi uji awal dengan upaya minimal, dan ketika saya yakin idenya akan berhasil, saya benar-benar memasukkan pekerjaan untuk bermigrasi ke implementasi yang sepenuhnya khusus dan khusus untuk penerapan.


File desain:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(Dalam seri direktori "GPS Timestamp").
(Catatan: File berasal dari Altium Designer. Ini bukan file elang).

Kode sumber:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Sekali lagi, dalam rangkaian direktori "gpsTimeStamp".

Maaf untuk gambar ponsel jelek.

Connor Wolf
sumber
Bisakah Anda mengurangi jumlah gambar? 3-4 harus cukup untuk menyampaikan ide. Butuh waktu yang cukup lama untuk memuat koneksi yang lambat.
asheeshr
7
@ AsheeshR - Saya sangat tidak setuju. Saya bisa menjatuhkan salah satu gambar dari rev terakhir, tetapi memiliki perkembangan desain sistem saya pikir cukup berharga.
Connor Wolf
1
Bersenang-senang dengan silkscreen?
TheDoctor
Oooh, tampilan 3D PCB. Aww, ini Altium dan cukup mahal? : $ Cukup menyenangkan untuk melihat proyek ini, atau untuk melihat proyek apa pun yang dilakukan orang lain ..
Paul
7

Sonic Ray Gun

Dua proyek oleh anak-anak

Saya bekerja dengan beberapa anak berpendidikan di rumah dan kami bersenang-senang dengan Arduino. Proyek pertama mereka adalah bom palsu, seperti yang Anda lihat di film, dengan penghitung waktu mundur LCD dan klasik "apakah Anda memotong kabel merah atau biru?" jenis masalah.

Proyek dua dimulai dengan menunjukkan kepada mereka contoh toneMelody dan speaker kecil. Yang cepat mengetahui bahwa jika Anda mengubah frekuensi hingga 15kHz itu agak mengganggu remaja. Satu jam kemudian mereka telah memperbaiki desain dengan cangkir, tisu toilet, dan sakelar yang terbuat dari penjepit kertas yang membuat senjata sinar sonik terarah.

Sayangnya tidak ada gambar.

Kesimpulan

Jangan biarkan anak-anak tanpa pengawasan dengan arduino.

Salix alba
sumber
3
Bisakah Anda menjelaskannya lebih banyak (kode, Fritzing, dll?)
Penguin Anonim
7

(palsu) Linux di Arduino

Saya baru-baru ini memperoleh layar LCD komposit kecil, yang dengan cepat saya mulai bermain dengan menggunakan perpustakaan Arduino TVout. Apa yang terjadi selanjutnya? Linux!

Deskripsi

Saat bermain-main dengan layar TV saya dan perpustakaan TVout, saya menemukan ada pengendali terminal premade untuk TV. Saya segera mulai bereksperimen dengan menggunakannya sebagai terminal TV yang dihubungkan ke keyboard PS / 2. Ada beberapa masalah dengan perpustakaan PS / 2 yang saya gunakan, jadi saya mentransisikannya untuk menggunakan perpustakaan USB pada Mega ADK saya bersama dengan keyboard USB. Itu bekerja jauh lebih baik. Sekarang untuk penyimpanan.

Perisai kartu SD saya tidak kompatibel dengan Mega saya, jadi saya menyambungkannya dengan agak serampangan ke SPI di ujung papan. Saya menulis perintah penanganan untuk membentuk beberapa tugas seperti mendaftarkan file dan menemukan ukuran disk, ruang kosong, dll. Seluruh perakitan belum selesai, tetapi saya senang dengan kemajuan yang saya buat.

Kode akhirnya akan dipindahkan ke Github, perhatikan komentar.

Desain

diperbesar keluar pic

layar clse up

Tantangan

Saya memiliki banyak kesulitan untuk menggabungkan karakter yang dimasukkan ke string yang menyimpan perintah saat ini karena saya tidak melakukan casting dengan benar. Setelah saya mengetahui hal itu, saya juga perlu memperbaiki masalah di mana beberapa tombol mencetak sampah acak ke layar. Ini disebabkan oleh pembacaan memori sebelum definisi huruf, sehingga beberapa ifdari mereka membersihkannya.

Kesimpulan

Saya sangat puas dengan kode tersebut. Setelah saya menambahkan beberapa utilitas ke dalamnya, saya akan meletakkannya di Github, jadi perhatikan komentarnya. Secara keseluruhan, itu adalah proyek yang sangat menyenangkan. Saya belajar cara menggunakan Stino dalam prosesnya.

Dokter
sumber
Ini terdengar menarik. Saya benar-benar ingin melihat kode Anda segera!
asheeshr
Kode!! Kode!! github.com/red-green/fakeLinuxonArduino
TheDoctor
Apakah LCD harganya sangat mahal?
Penguin Anonim
@AnnonomusPerson hanya $ 17: amazon.com/3-5-Inch-TFT-Monitor-Automobile/dp/B0045IIZKU/…
TheDoctor
@AnnonomusPerson saya membongkar karena terlalu besar
TheDoctor
5

ShiftLCD

Berbasis AVR, kompatibel dengan Arduino, papan yang dipasang di belakang Layar LCD 8x1 hingga 20x4 Karakter.

Deskripsi

Saya hanya merancang papan ini dan perpustakaan khusus untuk membuatnya lebih mudah digunakan dan LCD. Padahal mereka cukup mudah digunakan saat ini. Ini mengurangi jumlah pin output yang digunakan dari 6 menjadi 3. Ini juga memiliki opsi untuk memperluas I / O dengan menambahkan lebih banyak register geser ke salah satu yang mendorong tampilan. Prosesor yang digunakan adalah ATTiny45 atau ATTiny85 yang, setelah menggunakan shift register, pin digital 1 (PWM) dan 4 tersedia dan pin analog 2 (pin sama dengan pin digital 4) tersedia.

Desain

Skema OSH Park menyajikan Papan Tidak Lelang

Tantangan

Satu tantangan tak terduga yang saya hadapi adalah ketika saya mulai menggunakan pin digital 0-2 untuk menjalankan register geser, ini juga merupakan pin pemrograman (MISO, MOSI, SCK). Jadi setiap kali saya memprogram ulang perangkat, LCD akan dikirim banyak pesan omong kosong di mana daya harus dimatikan untuk mengatur ulang layar. Saya memecahkan masalah ini dengan memindahkan register geser latch pin ke digital pin 3 yang bukan pin pemrograman. Memecahkan ini juga memecahkan masalah lain bagi saya karena ketika saya memindahkan pin kait itu membuka pin digital 1 yang memiliki penggunaan PWM, memungkinkan lebih banyak hal yang harus dilakukan dengan papan tulis.

Kesimpulan

Memang ini mungkin bukan produk atau ide paling keren, ia masih memiliki kegunaannya. Jawab pertanyaan secara langsung, "Apa yang Anda pelajari dari melakukan proyek ini" Saya belajar bagaimana mendesain dari awal hingga menyelesaikan papan PCB. Jika saya bisa melakukan sesuatu yang berbeda itu akan menggunakan permukaan mount bukan melalui lubang, sekali lagi itu hanya prototipe, papan satu kali.

Jesse Laning
sumber
Bagaimana Anda memprogram ATtiny Anda? Kode apa yang terlibat? IDE? (Harap komentar saja, jangan edit posting Anda. )
Anonymous Penguin
@AnnonomusPerson Sepertinya orang yang memposting apa yang saya lakukan sebelumnya menghapus komentar mereka, jadi di sinilah saya mendapatkan hal-hal yang diperlukan (file Arduino IDE dan skema pemrograman) untuk memprogram ATTiny. highlowtech.org/?p=1695
Jesse Laning
Mengapa menggunakan surface mount? Menyolder melalui lubang di rumah jauh lebih mudah? Saya pikir SMD hanya untuk menjalankan produksi, atau ada sesuatu yang lain untuk itu?
Paul
5

Robot yang menekan tombol.

Robot penembak laser kontrol jarak jauh seberat empat pon yang menekan tombol.

Deskripsi

Saya membuat proyek ini selama tahun ajaran terakhir. Saya berada di kelas robotika, dan kami memutuskan untuk berkompetisi. Setiap tim akan membuat robot yang memiliki tombol besar dan cara menekan tombol lainnya. Pada akhir tahun, kami akan mengadakan kontes terakhir, di mana ketiga robot akan mencoba menekan tombol masing-masing.

Pada akhir tahun, robot saya hanya berfungsi sebagian. Setiap bagian dari robot pada titik tertentu telah berfungsi, tetapi antara Arduino goreng, pengendara motor goreng, organisasi kode yang mengerikan, dan saya menjadi satu-satunya orang di tim saya yang bekerja pada robot untuk total lebih dari lima jam, saya tidak bisa membuatnya bekerja sepenuhnya.

Saya belum menyentuh robot saya selama hampir satu tahun, jadi saya tahu bahwa jika saya ingin membuatnya bekerja lagi saya harus memperbaiki bot dan menulis ulang kode. Saya mungkin memutuskan untuk melakukan itu suatu hari nanti, tetapi untuk sekarang saya akan bekerja pada proyek yang kurang ambisius.

Desain

Desain keseluruhan

masukkan deskripsi gambar di sini

Informasi / aliran listrik

+--------------------------+   +-------------------------------------------------+
|         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  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

Komponen

  • Arduino Uno, (digoreng)
  • Angkutan:
  • Tombol mudah
  • Lengan:
    • Servo , (rotasi kontinu)
    • Pengemudi motor , (digoreng)
    • Motor, (12v, ditemukan di tumpukan sampah guru)
    • Penghapus
    • Counterweight, (kantong kertas buatan sendiri diisi dengan uang)
  • 2 paket baterai , (isi ulang 12V, 1300mAh, Ni-MH)
  • 2 papan tempat memotong roti tanpa solder
  • Laser, (5 mW)
  • Bluetooth:
  • Banyak kabel
  • Banyak potongan logam dan kaca plexiglass, (ditemukan di toko mesin guru)

Kode

Saya tidak mengatur kode saya dengan baik, jadi saya berharap ini adalah kode yang tepat.

Lebih banyak gambar

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Video mengerikan dari robot versi lambat, tanpa senjata, tanpa tombol, tanpa laser, dan tanpa bluetooth.

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

Kesimpulan

Saya sangat pandai menggoreng elektronik.

Ini adalah pengalaman pertama saya di toko mesin yang sebenarnya. Saya harus menggunakan mesin penggilingan CNC, mesin penggilingan manual, bubut, dan bandsaw. Jika saya memulai proyek seperti ini lagi, saya akan membuat dokumentasi yang lebih baik, sehingga saya bisa mengetahui apa yang saya lakukan setahun kemudian.

The Guy with The Hat
sumber
1
Kerja bagus! Tidak ada yang lebih berharga dari pengalaman dan yang penting adalah bahwa Anda sekarang tahu bagaimana melakukan pekerjaan yang lebih baik di lain waktu.
jippie
5

Tampilan LED 4-Digit untuk Arduino

Papan kecil dengan 4 digit 7-segmen LED, dikelola melalui 3 pin.

Deskripsi

Ketika saya mulai bekerja dengan Arduino, saya ingin cara menampilkan nilai yang dikumpulkan oleh berbagai sensor yang saya coba, tetapi saya tidak ingin menampilkan nilai-nilai ini Serialke PC.

Saya ingin papan kecil yang saya dapat dengan mudah digunakan kembali dari satu proyek ke proyek lain dan saya ingin menyimpan papan tempat memotong roti.

Papan ini, bersama dengan perpustakaan kecilnya, saat ini memungkinkan tampilan angka 4-digit dan tidak sumber arus Arduino selama tampilan (saat ini hanya bersumber ketika berkomunikasi ke papan nilai baru untuk ditampilkan mulai sekarang).

papan display dengan penghitung

Desain

Desainnya agak sederhana karena saya memutuskan untuk menggunakan kembali MAX-7219 chip untuk menggerakkan layar LED saya (saya punya beberapa di antaranya).

Berkat chip ini, skematisnya sangat sederhana, tetapi penting untuk memahami dengan benar cara menggunakannya; untungnya, itu datasheet- nya cukup jelas.

Desain aslinya dilakukan pada papan tempat memotong roti dan digunakan 4 digit 7-segmen LED tunggal ; tetapi membutuhkan kabel terlalu banyak untuk seleraku (perlu menghubungkan segmen dengan kelompok 4). Juga, selama percobaan pertama saya dengan 7-digit digit LED, saya telah menggoreng satu: ia memiliki 2 pin Ground, tapi saya hanya menghubungkan satu ke GND alih-alih keduanya :-(

Lalu saya memutuskan untuk menggunakan tampilan segmen 4x7, katoda umum , dengan segmen anoda sudah terhubung untuk 4 digit: itu hanya 4 + 8 pin!

Skema Dewan

Selama pengujian, saya telah menemukan perpustakaan Arduino yang berguna untuk bekerja dengan MAX-7219 yang saya putuskan untuk digunakan kembali. Saya telah membangun perpustakaan saya sendiri di atasnya, dengan API yang sangat sederhana.

Setelah papan tempat memotong roti, tiba saatnya untuk membuat desain lebih permanen; karena saya memiliki banyak stripboards di tangan, saya memutuskan untuk melakukannya.

Saya mencari dan menemukan perancang Stripboard mudah untuk PC yang telah saya gunakan untuk mendesain papan saya.

Desain stripboard pertama tidak dioptimalkan dalam hal ruang dan saya memutuskan untuk tidak mengimplementasikannya:

DESAIN STRIPBOARD # 1

Kemudian saya telah meninjau desain untuk mengoptimalkan biaya dan ukuran (hanya satu stripboard 50x75mm kecil); itu mudah dengan desainer stripboard yang saya temukan sebelumnya:

DESAIN STRIPBOARD # 2

Setelah papan siap, saya memutuskan untuk memeriksanya dengan Arduino UNO dan Sensor Ultrasonik:

GAMBAR

Tampaknya berfungsi kecuali saya sering memiliki nilai-nilai yang aneh dan tidak konsisten ditampilkan; setelah diselidiki, saya menemukan itu disebabkan oleh noise yang dipicu oleh papan display , noise yang mengganggu sensor. Saya hanya perlu menambahkan topi decoupling sedekat mungkin dengan pin pasokan sensor dan bekerja dengan baik (perhatikan bahwa papan display sudah memiliki topi decoupling untuk chip MAX-7219).

Daftar bagian:

  • 1 x LN5461AS: katoda umum blok 7-segmen 4 digit
  • 1 x MAX7219: chip driver LED multipleks
  • 1 x dukungan IC (24 pin)
  • 1 x 22K resistor
  • Tutup elektrolit 1 x 10uF
  • 1 x 100nF tutup
  • 1 x header pin pria (5 pin)
  • 1 x 90x50mm stripboard
  • kabel, solder ...

Kesimpulan

30 tahun setelah percobaan elektronik terakhir saya, saya bisa mendapatkan virus lagi dengan Arduino dan dengan proyek pertama ini yang, walaupun agak sederhana, mengajarkan saya beberapa hal:

  • menafsirkan lembar data untuk komponen yang digunakan (MAX7219 dan tampilan LED)
  • belajar cara menggunakan dan menjadi efektif dengan desain stripboard
  • semua pin bertanda GND atau V + harus terhubung: Anda tidak memilih yang Anda ingin hubungkan!
  • jika ada sesuatu yang tampak aneh ketika Anda menguji sirkuit Anda dan Anda tidak mengerti mengapa: jangan mencari, itu pasti berisik, cobalah untuk menambahkan topi decoupling dan itu harus dilakukan!
  • belajar cara membuat perpustakaan Arduino (bukan hanya sketsa)

Jika saya memulai proyek ini lagi hari ini, saya akan:

  • coba untuk mengoptimalkan desain stripboard lebih lanjut (mungkin saya bisa mengurangi ukuran sedikit lebih jauh)
  • ganti header pin lurus di papan dengan header siku-siku sehingga kabel yang terhubung ke Arduino lebih menonjol di depan papan
jfpoilpret
sumber
5

Jam Dinding Digital dengan Remote Control Frekuensi Radio (RF)

Jam dinding display 7-segmen besar (40x30cm / 16x12 ") dengan remote control R / F.

masukkan deskripsi gambar di sini

Deskripsi

Proyek ini menampilkan jam dinding digital tampilan 7-segmen (40x30cm / 16x12 ") besar dengan remote control R / F. Ini memiliki fitur berikut:

  • Ini menunjukkan waktu dan tanggal saat ini (jam, menit, detik, hari, bulan, tahun) dalam dua format (jam atau tanggal dalam digit besar).
  • Ini menunjukkan suhu saat ini dalam ° C.
  • Memiliki hitungan mundur yang ditentukan pengguna yang akan membunyikan alarm (menjengkelkan) ketika mencapai nol.
  • Semua fungsi dikendalikan dari jarak jauh oleh remote control RF.
  • Memiliki tombol kursor kecil untuk mengontrol fungsinya (ketika kendali jarak jauh tidak tersedia).
  • Kontrol kecerahan tidak tergantung pada setiap baris tampilan.
  • Ini terus menjaga waktu saat ini secara akurat bahkan ketika mati, berkat IC waktu nyata didukung oleh baterai sel koin.

Desain

Aspek utama dari proyek ini adalah sebagai berikut:

  • Ini sepenuhnya didasarkan pada mikrokontroler Arduino dan AVR ATmega328.
  • Itu membuat waktu saat ini bahkan ketika mati, berkat DR1307 RTC yang ditenagai oleh baterai sel koin.
  • Digit tidak pernah multiplexing. Sebagai gantinya, setiap digit memiliki IC register geser seri 8-bit khusus (74HC595) yang membuat segmen terpilih tetap independen dari apa yang ditampilkan pada digit lainnya dan apa yang sedang dilakukan MCU.
  • Segmen ditenagai oleh array Darlington karena konsumsi saat ini yang melebihi MCU atau register geser.
  • Jam dikontrol oleh tombol pada papan pengontrol dan juga dengan remote control RF. Komunikasi radio dilakukan oleh sepasang penerima dan pemancar radio 434MHz yang murah.
  • Proyek ini memiliki desain modular di mana pengontrol tunggal dapat mengelola hingga 12 digit tunggal. Pengontrol juga menerima modul yang dapat diupgrade untuk jumlah digit yang tidak terbatas (jumlah digit maksimum dibatasi oleh penundaan waktu karena rantai daisy register geser dan pelemahan sinyal clock mereka).
  • Desain ini mendukung sejumlah digit tampilan 7 segmen yang siap pakai atau digit khusus yang dibuat dengan LED.

Di bawah ini adalah skema untuk pengontrol dan salah satu papan 7-segmen:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Berikut adalah beberapa gambar papan yang saya rancang, tempel, dan kumpulkan, dan remote control:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Dan akhirnya, inilah gambar dari versi jam yang lain. Di sini, saya membuat 7-segment display dengan menggunakan LED persegi panjang dan komponen diskrit.

masukkan deskripsi gambar di sini

Kesimpulan

Proyek ini menghabiskan banyak waktu, tenaga, dan pembelajaran untuk mencapai tahap ini (tidak pernah selesai, seperti yang telah saya pelajari), tetapi itu sangat menyenangkan. Beberapa hal yang saya pelajari:

  1. Pelajari semua lib yang akan Anda gunakan dalam proyek Anda sebelum Anda menetapkan pin GPIO di controller Anda sehingga Anda menghindari potensi konflik. Saya kurang beruntung menggunakan pin PWM yang sama untuk kontrol kecerahan yang terkait dengan timer VirtualWire, jadi saya harus menambal papan untuk mendapatkan kecerahan dan RF bekerja pada saat yang sama.

  2. Crimping KK molex dan konektor modu membutuhkan BANYAK WAKTU !!

  3. Potongan laser akrilik adalah masa depan. Mereka menambahkan banyak kualitas ke perangkat bahkan jika Anda canggung.

Ricardo
sumber
Bagaimana Anda membuat PCB (etsa dan pengeboran)?
sachleen
1
@sachleen Saya menggunakan metode transfer toner dengan menyetrika. Saya mencetak desain papan ke kertas foto ink jet di printer laser, kemudian saya setrika ke papan, lalu saya etsa papan di FeCl. Butuh beberapa saat untuk menemukan pengaturan kertas dan printer yang tepat. Saya menggunakan mesin bor dremel untuk pengeboran, tetapi saya hanya menggunakan papan fenolik dan bor kecepatan tinggi. Papan fiberglass jauh lebih keras pada mata bor, biasanya membutuhkan mata bor bor yang lebih mahal dan rapuh.
Ricardo
Di mana Anda mendapatkan LED itu? Saya memiliki beberapa yang terlihat persis seperti itu!
The Guy with The Hat
1
@TheGuywithTheHat Yang persegi panjang hijau? Itu sangat umum di Brasil. Saya mendapatkannya di salah satu toko komponen elektronik online kami. Berikut ini beberapa tautan: di DigiKey , di eBay . Di sinilah saya mendapatkannya .
Ricardo
5

Rotator Antena TV

Rotasi antena remote control IR

Tidak dapat turun dari sofa untuk menyesuaikan arah antena TV? Dan bahkan jika Anda melakukannya, terkadang kedekatan Anda dengan antena mengubah penerimaan. Alangkah baiknya untuk dapat menyesuaikan antena dari sofa. Menggunakan remote TV.

Komponen

Arduino Uno, penerima IR, motor Stepper dengan papan driver, 1 "ID bearing, Swiffer mop handle, kotak plastik,

di belakang TV Arduino dengan penerima IR di depan Tutup kotak dan bantalan Pegangan yang lebih pendek Kedua tombol ini tidak melakukan apa pun di TV

Deskripsi

Gunakan pegangan Swiffer tua sebagai pos antena. Mendapat 1 "bantalan ID dari toko online favorit saya, yang hanya dipegang dan ditekan oleh gag pel. Saya mengebor sebuah lubang ke dalam kotak plastik yang cukup besar untuk pegangan pel agar bisa masuk, tetapi tidak untuk bantalan. Saya mengebor persegi panjang. lubang ke ujung gagang pel agar sesuai dengan poros motor stepper 28BYJ-48, dan menjebak alat ke dalam kotak seperti yang ditunjukkan.Tangan pel benar-benar bertumpu pada bantalan, dan bantalan super terpaku pada bagian atas kotak plastik .

Menggunakan perpustakaan stepper.h untuk memutar motor dari Uno.

Saya membongkar pemutar DVD yang tidak digunakan dan menyelamatkan penerima IR darinya. Anda dapat membongkar alat konsumen yang memiliki remote dan menggunakan penerima IR darinya, itu akan berfungsi. Penerima IR menggunakan perpustakaan IRremote.h. Menggunakan monitor serial, saya mencetak kode hex yang sesuai dengan dua tombol pada remote TV yang ingin saya gunakan untuk mengoperasikan motor antena. Satu untuk memutar kiri, satu untuk kanan.

Untuk menghemat energi, gunakan fungsi small_stepper.motorOff () untuk mematikan kumparan setelah setiap gerakan.

Kesimpulan

Ini adalah proyek yang menyenangkan yang juga berguna bagi istri saya. Saya tidak menerapkan akselerasi / deselerasi dalam gerakan, yang mungkin bagus, terutama jika antena memiliki inersia rotasi lebih.

Sunting: maaf tentang gambar yang menyamping! Itu tepat di atas komputer saya, saya tidak tahu mengapa itu online.

pengguna851
sumber
5

Lampu Knock-knock

Lampu yang menyala / mati saat meja dihidupkan. Saat ini dalam fase alpha, masih membuat prototipe, tapi saya pikir itu proyek Arduino yang paling berguna yang ada. Termasuk generator lelucon norak ... dari lelucon ketukan yang direkam sebelumnya. Catatan: Saya tahu saya tidak bisa menang dalam aturan, tetapi tidak ada aturan tentang masuk ... Saya juga bisa memamerkan proyek saya.

Deskripsi

Sejauh ini saya sudah cukup banyak menjelaskannya. Anda mengetuk, dan lampu menyala dan mati. Saya saat ini di papan tempat memotong roti. Saya menggunakan elemen piezo untuk mendeteksi ketukan dengan getaran. Secara paralel, saya memiliki resistor 1 megaohm untuk melindungi Arduino Uno SMD saya.

Saya memikirkan desain ini setelah hampir mengetuk (haha punny) lampu saya dari meja saya sambil mencari sakelar sakelar kecil. Aku tidak benar-benar ... cekatan . Menyenangkan mengetuk meja dan menyalakan lampu. Saya juga menggunakan Power Switch Tail SSR (solid state relay: no noise) untuk mengendalikannya dengan dua pin Arduino saya.

Desain

Foto Gambar diambil dengan kamera web menggantung di monitor ... eek!

Diagram Fritzing

Komponen yang digunakan untuk membangun proyek:

  • Elemen piezo ($ 3,00 USD)
  • Megaohm resistor ($ 0,30 USD masing-masing dalam 5pk)
  • Arduino Uno SMD (di tangan)
  • Power Switch Tail SSR (~ $ 25.00 USD dengan kapal, tetapi ada di tangan sehingga tidak ada biaya)
  • Papan tempat memotong roti dan jumper / kawat ekstra (~ $ 5,00 USD, tetapi ada di tangan sehingga tidak ada biaya)

Biaya untuk saya: $ 3,30 USD + $ 0,02 USD (pajak) == Hanya $ 3,32!

Kesimpulan

Secara keseluruhan, ini adalah proyek sederhana tetapi sebenarnya bermanfaat. Itu adalah perjuangan dengan proyek Arduino saya: dapatkah saya membangun sesuatu yang benar-benar akan saya gunakan ? Berkedip LED tidak akan membantu Anda dalam hidup. Ini menyenangkan, tapi hanya itu saja.

Masalah terbesar yang saya hadapi (dan sepertinya masih) adalah tidak mendapatkan sinyal yang cukup kuat. Saya belajar banyak tentang sinyal-sinyal listrik: Saya menemukan cara untuk menemukan "puncak" pulsa dan tidak hanya membaca pin pada interval acak dan kehilangan tegangan yang lebih tinggi. Saya akan mencoba mendapatkan elemen piezo yang lebih sensitif. Yang lebih besar akan membantu. Saya mencoba untuk memodifikasi sirkuit saya untuk tidak membatasi tegangan, tetapi melindungi Arduino. Semacam sekering akan membantu dalam situasi ini. Saya juga bermain-main dengan nilai-nilai resistor. Akan sangat membantu untuk memiliki ruang lingkup untuk ini, tapi saya rasa tidak ...: P

Setelah saya menyempurnakan sirkuit, saya akan bekerja untuk mendapatkannya di PCB dengan ATtiny ... dan bahkan mungkin mengembangkan beberapa kit. Saya akan mencoba untuk mempublikasikan temuan saya tentang bagaimana membuat elemen lebih sensitif tanpa membahayakan papan saya dalam proses.

Pembaruan status: Saya sangat sibuk baru-baru ini. Saya akan memesan dioda zener (4.3V) di sini dalam satu atau dua minggu untuk menghapus megaohm resistor untuk mencegah pengenceran sinyal sambil melindungi chip. Saya dapat membangun amp tegangan sederhana di sini jika diperlukan (bersama zener) untuk mencoba membuat sensor lebih sensitif.

Penguin Anonim
sumber
1
Pindah ke sesuatu dengan diferensial dan dapatkan ADC akan membantu Anda mendapatkan lebih banyak kepekaan dari piezo. Dan mungkin menggunakan TV bukan resistor.
Ignacio Vazquez-Abrams
Apakah Anda menggunakan ADC untuk deteksi atau interupsi? Adakah gagasan seberapa besar puncak tegangan yang ingin Anda deteksi?
jippie
@ jipie ADC untuk deteksi, saya memiliki kode yang cukup efisien: itu loop dan menemukan puncak untuk setiap 250 ms. Tidak ada penundaan Untuk puncaknya, IIRC sekitar 14/1024 (terlalu malas untuk mengubahnya sekarang). Saya harus melihat ke pin AREF juga, tapi mungkin ada masalah dengan itu jika dibatalkan dapat membuat ~ 9V.
Penguin Anonim
Coba ini sebagai buffer input. Transistor bertindak sebagai penyearah setengah puncak / pendeteksi puncak gelombang saat ini. Tidak perlu mendeteksi puncak tunggal dengan ADC, transistor / kapasitor akan membentangkannya untuk Anda. Seperti yang dikonfigurasikan, tegangan output memiliki bias DC 2.2V, tetapi Anda dapat mengubahnya ke apa pun yang Anda suka dengan mengubah pembagi resistif. Dengan begitu Anda dapat membuat input lebih sensitif dengan memilih referensi celah pita 1V1 atau 2V56. 10M resistor memastikan kapasitor keluar lebih dari satu detik dan pada kenyataannya DMM saya.
jippie
4

MySensor

- Pelajari cara membuat sensor nirkabel berbiaya rendah Anda sendiri dan sambungkan ke dunia.

http://www.mysensors.org

Kami menyebutnya "Internet of Your Things"

Deskripsi

Kami telah menggabungkan platform Arduino dengan transceiver radio kecil menjadi dunia yang menyenangkan, fleksibel dengan sensor nirkabel berbiaya rendah.

Semua detail seluk beluk tentang komunikasi sensor telah dikemas ke dalam perpustakaan perangkat lunak yang nyaman sehingga Anda tidak perlu khawatir tentang hal itu.

Semudah 1, 2, 3. Arduino + NRF24L01 +

  1. Hubungkan bagian-bagiannya. 2. Unduh contoh yang disediakan. 3. Mulai mengukur dan mengendalikan dunia!

Baca lebih lanjut tentang bagaimana jaringan sensor terbentuk secara otomatis menggunakan Perpustakaan Arduino kami di situs. Ini pada dasarnya membentuk jaringan bintang dan dapat mencapai ratusan meter.

Jaringan sensor

Di tengah Anda menempatkan gateway Arduion atau Raspberry yang mengumpulkan informasi dari sensor Anda. Pengontrol Raspberry

Gerbang Arduino

Desain dan skema

Ini adalah salah satu sensor gerak prototipe yang saya buat untuk mengontrol lampu taman di luar rumah saya. Status gerakan dikirim ke pengontrol HA saya yang menyalakan cahaya (melalui gelombang-z) ketika gerakan telah terdeteksi. Sebuah sensor cahaya (bukan pada gambar) memastikan hanya untuk menyalakan lampu di malam hari.
masukkan deskripsi gambar di sini

Anda akan menemukan semua instruksi pembuatan di sini: http://www.mysensors.org/build/

Situs lain juga ada petunjuk membangun yang mudah diikuti untuk sekelompok sensor nirkabel dan aktuator lainnya. Berikut ini beberapa contohnya:

Sensor Jarak, Sensor gerak, Relay aktuator, Kelembaban, Cahaya, Tekanan, Hujan, Suhu, ...

Kesimpulan

Proyek ini masih dalam blok awal dan kami berharap dapat menyediakan plugin untuk daftar pengendali Otomasi Rumah yang terus bertambah. Hal pertama yang ada di daftar kami sekarang adalah untuk menyediakan pengontrol DIY yang menyediakan penyimpanan cloud gratis untuk data sensor Anda.

Halo

Sampai jumpa @ mysensors.org

/ Henrik Ekblad (pencipta Open Source Arduino Library digunakan untuk komunikasi antar sensor)

  • PEMBARUAN 27/3. Membuat contoh lebih konkret dan menambahkan afiliasi saya dengan proyek open source.
hek
sumber
4
Selamat datang di Arduino.SE! Saya khawatir situs web Anda tidak sesuai dengan kriteria showcase kami. Kami sedang mencari proyek tertentu yang menunjukkan aplikasi praktis Arduino (seperti yang terlihat dalam contoh lain di sini). Mungkin Anda bisa memberikan contoh proyek sensor yang Anda buat?
Peter Bloomfield
Ok, mungkin saya kehilangan intinya;). "Proyek spesifik" di sini adalah bahwa kami menggunakan Arduino untuk membuat jaringan sensor nirkabel yang dapat menyembuhkan sendiri. Untuk mengarsipkan ini, kami telah membuat perpustakaan Open Source Arduino untuk transceiver NRF24L01 +.
hek
4
Ini lebih mirip iklan daripada proyek. Ubah nada, mungkin buat sedikit lebih spesifik untuk satu aplikasi. Saya menduga itu sebabnya Anda mendapat suara turun.
Cybergibbons
Selamat datang di Ard.SE! Berdasarkan situs web profil Anda, Anda bekerja di atau memiliki situs yang dipromosikan di atas. Adalah kebijakan SE bahwa Anda mengungkapkan hal ini dalam jawaban Anda. Harap edit untuk memasukkan itu. Juga, dapatkah Anda menambahkan contoh penggunaan ini?
Penguin Anonim
Saya telah mengembangkan perpustakaan MySensor (Sumber Terbuka) ini selama 6 bulan terakhir di waktu senggang saya. Untuk membantu orang lain menggunakan perpustakaan dengan benar, kami (lebih banyak orang telah bergabung dengan proyek beberapa bulan terakhir) meluncurkan halaman instruksi-bangun 3 hari yang lalu. Saya pikir ini akan menjadi proyek Arduino yang bagus untuk mendapatkan umpan balik dalam "Project Showcase" ini. Saya rasa saya tidak berusaha menyembunyikan partisipasi saya dalam proyek ini dengan cara apa pun dan saya minta maaf jika uraiannya dianggap sebagai iklan. Kami sangat senang dengan proyek ini!
hek
4

Kotak Serial

Monitor serial portabel dalam sebuah kotak

Deskripsi

Terkadang berguna untuk perangkat (Arduino atau lainnya) untuk menampilkan beberapa informasi debug melalui serial. Itu bagus jika Anda memiliki komputer dengan input serial yang sesuai. Namun, itu tidak selalu terjadi karena berbagai alasan.

Proyek ini adalah upaya saya untuk mengatasi masalah itu dengan membuat monitor serial bertenaga Arduino portabel, yang dapat saya sambungkan ke perangkat lain di lapangan.

Secara default, itu hanya akan menampilkan teks dalam format scrollback; yaitu teks muncul di baris terbawah, dan semuanya bergulir untuk memberi ruang ketika lebih banyak datang. Ini berarti itu harus bekerja dengan sangat rapi dengan semua jenis perangkat generik. Namun, juga dimungkinkan untuk menggunakan urutan pelarian untuk mengontrol tampilan secara lebih tepat, sehingga perangkat juga dapat diprogram secara khusus untuk memanfaatkan kemampuannya.

Desain

Desain terdiri dari satu set 4 tampilan LCD alfanumerik (masing-masing 16x2 karakter), disejajarkan dalam kotak seperti ini:

Maket 3d dari desain Kotak Seri

Layarnya adalah milik Epson EAX16027AR, yang sayangnya tidak kompatibel dengan driver standar Hitachi HD44780. Karena itu, saya harus menulis perpustakaan sendiri untuk mereka.

Saya memilih untuk menggunakan pajangan ini (daripada misalnya satu pajangan besar) terutama karena saya baru saja meletakkannya di sekitar, dan ingin melakukan sesuatu yang menarik dengannya. Saya juga berpikir akan sangat berguna untuk dapat mengontrol setiap tampilan secara independen untuk beberapa aplikasi (mis. Menampilkan informasi yang berbeda pada masing-masing).

Dalam hal desain sirkuit, display terhubung secara paralel, dengan pin pilih chip yang digunakan untuk mengarahkan data / perintah ke masing-masing sesuai kebutuhan.

ATMega328 akan menjadi otak unit akhir, dengan data serial yang berasal dari garis level TTL (untuk menghubungkan langsung ke TX dari MCU serupa), atau secara opsional dari soket sub-D RS232 9-pin (untuk menghubungkan ke berbagai sistem lainnya). Unit ini juga akan memiliki tombol kontras, tombol untuk membersihkan tampilan, dan tombol untuk memulai mode swa-uji. Di masa depan, saya ingin menambahkan tombol yang memungkinkan pengguna bergerak melalui riwayat scrollback juga.

Di bawah ini adalah tata letak sirkuit yang sangat awal (saya punya banyak kesulitan membuat Fritzing bermain dengan baik untuk beberapa alasan!) Ini termasuk register geser SIPO 8-bit untuk mengarahkan jalur data LCD, yang ditunjukkan dengan warna hijau. Anda juga dapat melihat garis pilih chip dalam warna oranye.

Tata letak sirkuit awal

Saat ini, proyek masih dalam tahap prototipe kerja, didorong dari papan Uno (klon). Di bawah, Anda dapat melihat foto itu beraksi, menampilkan teks yang dikirimkan melalui serial dari komputer saya.

Prototipe sedang beraksi

Kode sumber

Saya membuat perpustakaan LCD saya tersedia di GitHub di tautan di bawah ini. Harap dicatat bahwa ini pada tahap awal dalam pengembangan. Dalam waktu dekat, saya bermaksud membuatnya lebih mirip dengan perpustakaan LiquidCrystal inti sehingga lebih mudah untuk transisi antara keduanya.

Anda dapat menemukan beberapa kode dasar untuk prototipe Kotak Seri saya di folder "contoh".

Kesimpulan

Saya pikir proyek ini berjalan dengan sangat baik, dan saya sangat senang mendapatkan prototipe berfungsi. Tantangan utama saya adalah memasang semuanya dalam sebuah kotak. Saya sudah mulai memotong lubang yang cocok untuk pajangan, tetapi saya tidak terlalu berpengalaman dalam hal semacam itu, dan saya merasa cukup sulit untuk mengatur semuanya.

Saya akan sampai di sana pada akhirnya. Itu mungkin tidak terlihat sangat cantik pada saat saya selesai! :)

Peter Bloomfield
sumber
3

Pengontrol Pemanasan

Anda tahu bagaimana keadaannya - Anda mengatur agar pemanas menyala pada waktu tertentu dan berapa hari Anda bekerja lembur dan sudah membosankan selama berjam-jam, atau Anda pergi selama beberapa hari dan lupa mematikannya? Atau kesempatan langka bahwa Anda pulang lebih awal dan rumah itu dingin? Saya memutuskan bahwa cara sederhana untuk menyiasatinya adalah dengan membangun perangkat yang memungkinkan saya untuk menghidupkan atau mematikan pemanasan saya melalui pesan teks / sms. Ini akan menjadi tambahan untuk sistem kontrol yang ada agar tidak kehilangan fleksibilitas yang dapat diberikan.

Proyek ini terdiri dari beberapa bagian utama: klon Arduino Uno, perisai Seeedstudio GSM, sensor suhu DHT22 dan SSR 25 amp.

Bagaimana itu bekerja:

Kontrol pemanas yang ada disetel ke 'Mati' dan pengendali baru dihubungkan dengan kabel untuk menimpanya. Uno diprogram untuk merespons tiga pesan berbeda - Hidup, Mati, dan Kueri. Dalam kasus yang terakhir unit akan membaca DHT22 dan membalas pengirim dengan suhu saat ini dan status unit (on atau off). Jika perintahnya Hidup atau Mati maka itu akan merespons dengan konfirmasi tindakan yang dilakukan. Setelah pesan ditindaklanjuti, pesan itu dihapus; pesan apa pun yang tidak sesuai dengan struktur pesan tertentu dibiarkan dalam memori kartu SIM dan dapat diperiksa kemudian jika diinginkan.

Daya ke unit disuplai oleh catu daya mode switch tiga amp lima volt. Karena pin daya pada Arduino hanya mengekspos bus 5v internal dewan, saya memutuskan untuk memberi daya pada ansambel melalui ini dan mengkonfigurasi perisai untuk menarik daya dari Arduino.

Unit ini memiliki tiga LED status. Satu hijau untuk menunjukkan bahwa ada kekuatan, yang biru untuk menunjukkan bahwa papan GSM 'hidup' dan yang merah untuk menunjukkan status pemanasan. Ini selain status LED yang disediakan pada Arduino dan perisai. Ada juga saklar tombol yang memungkinkan kontrol pemanas secara manual, dengan kapasitor 100nF untuk menangani debounce.

Berikutnya:

Sebagian besar kode bergantung pada penundaan lama yang baik () untuk memberi perisai cukup waktu untuk melakukan aksinya. Saya berencana untuk meningkatkan kode sehingga menunggu konfirmasi dari perisai daripada berasumsi bahwa ia telah melakukan apa yang diperintahkan dalam waktu yang dialokasikan! Saya juga akan menambahkan fitur 'masih hidup' - pada interval tetap mematikan LED biru, mengirim perintah AT ke perisai dan pada pemberitahuan nyalakan lagi LED. Perisai berada di bawah kendali perangkat lunak sehingga jika gagal merespons maka matikan dan hidupkan kembali.

Keseluruhan ansambel harus dipasang di selungkup yang sesuai dan dipasang berdekatan dengan pengontrol yang ada. Saya memiliki sakelar tombol tekan yang menyala secara internal yang akan saya gunakan alih-alih sakelar terpisah dan LED merah untuk menangani penggantian.

Jangka panjang saya berencana untuk menambahkan RTC, LCD 20 x 4 dan tombol push tambahan untuk memungkinkan unit diprogram dan bertindak sebagai saklar waktu juga.

Prototyping sudah dimulai!

Kesimpulan.

Ada sesuatu yang agak dekaden tentang bangun di hari istirahat musim dingin, mengirim pesan teks / sms untuk menghidupkan pemanas, dan berguling dan kembali tidur selama satu jam! Dan ketika Anda menyadari bahwa Anda belum mematikannya di malam hari Anda dapat melakukannya dari kenyamanan tempat tidur Anda!

Gambar Pengontrol 1 Gambar Pengontrol 2

DavidA
sumber