Arduino Magic Clock: 16 Steps (with Pictures)

Arduino Magic Clock: 16 Steps (with Pictures)

Isi kandungan:

Anonim

Bagaimana jika jam boleh memberitahu anda lebih daripada sekadar masa? Dalam Pengajaran ini kami akan membuat jam yang, dengan hanya sekilas, dapat memberitahu seseorang di mana anda berada dan hanya untuk memasak perkara-perkara di atas suhu persekitaran anda. Baiklah, ambil Arduino anda dan lawati permulaan:)

Perkara yang anda perlukan untuk Pengajaran ini:

  • Arduino
  • Breadboard
  • Wayar
  • Kayu (Balsa atau kadbod)
  • Servo
  • Pengesan suhu
  • Resistor
  • Glue panas
  • Glitter
  • Kertas

Bekalan:

Langkah 1: Reka Bentuk Jam Prototaip

Mulailah reka bentuk anda dengan menuliskan tempat-tempat yang anda paling mungkin pada siang hari. Ini akan menjadi beberapa jawatan pertama pada jam, kemudian menambah beberapa orang yang menyeronokkan untuk menjadikan jam anda unik. Saya menambah "Bahaya Mortal" dan "Hilang" kepada jam saya. Sekarang, fikirkan 5 perkataan untuk menggambarkan suhu, dari super sejuk hingga super panas. Saya menggunakan "pembekuan", "sejuk", "betul", "hangat" dan "perut".

Seterusnya, saya menyusun prototaip saya dalam Illustrator. Sekiranya anda ingin menggunakan templat saya, sila bebas memuat turun fail yang dilampirkan. Saya memotong prototaip kertas dengan pisau Xacto dan mengesan bulatan luar ke sekeping kayu. Jam saya akan mempunyai diameter kira-kira 12 inci. Jika pencetak anda tidak dapat mengendalikan muka jam keseluruhan dalam satu perjalanan, hanya pita dua bahagian gambar bersama-sama dan tandakan kedudukan lubang anda.

Langkah 2: Potong Wajah Jam Cat

Gunakan X-acto atau melihat untuk memotong profil luar jam anda dan 3/4 "gerudi bit untuk memotong lubang-lubang saya kemudian menggunakan pelukis pita ke bahagian bahagian atas dan semburan dicat biru. Saya membalikkan garis pita dan semburan dicat bahagian bawah perak. Walaupun semuanya kering, gunakan pisau X-acto untuk memotong lokasi kedudukan untuk jam anda.

Langkah 3: Hiaskan Wajah Jam

Sekarang bahawa kedudukan kami telah dipotong, flip mereka, sapu pada gam, pusatkan mereka ke muka jam dan tekan mereka.

Saya mungkin mendapat sedikit minat pada bahagian ini, tetapi saya fikir "anda tahu apa yang akan menjadikan jam ini lebih ajaib ….. perhiasan!" Jadi saya berlari manik-manik gam di sekitar tepi kedudukan jam dan kemudian menaburkan sejumlah besar glitter di atas. Sebaik sahaja anda melepaskannya, ia akan meninggalkan sempadan bersinar bagus di sekitar huruf anda.

Langkah 4: Menambah Servo Motor

Saya perlu menyesuaikan saiz lubang di tengah-tengah jam untuk menampung servo, gerudi dan fail membuat kerja pendek proses ini. Seterusnya, gam panas di dalam servo motor. Sangat penting untuk menjaga servo di 90 darjah ke muka depan supaya mekanisme jam anda tidak akan mengikis pada muka jam. Saya memegang servo dalam kedudukan yang betul sehingga gam kering.

Langkah 5: Sambungan LED

Kami akan perlu untuk memperluaskan kaki LED supaya mereka boleh dengan mudah memasuki papan roti kami. Untuk melakukan ini kita akan memutar wayar bersama-sama dan kemudian menyambung elektrik dengan solder. Mulailah dengan menanggalkan kedua-dua hujung wayar dengan penyesu sejagat. Selesaikan twist wayar bersama-sama untuk membentuk kunci mekanikal yang kuat, anda sepatutnya dapat menarik kabel secara perlahan-lahan tanpa mereka berpisah. Jangan teragak-agak untuk menggunakan tang untuk membantu mendapatkan beberapa lagi kelainan. Kemudian gunakan besi dan pateri wayar bersama-sama.

Langkah 6: Tambah LED ke Jam

Dengan semua soldered LED membolehkan mereka menambah jam ke belakang. Saya membongkok pendahulu di pangkalan 90 darjah LED dan menggunakan pistol gam panas mengamankan mereka di tengah-tengah lima cutout suhu.

Langkah 7: Bahagian Pendawaian LED Bahagian 1

Menggunakan pita kayu double saya mengikatkan Arduino dan papan roti di belakang jam. Untuk memulakan pendawaian LED, saya meletakkan semua wayar tanah (wayar hijau) ke dalam ruang negatif papan roti. Kemudian saya memasang semua wayar kuasa agar masuk ke papan roti.

Langkah 8: Pendawaian LED Bahagian 2

Sekarang tambah dawai lain dari semua LED positif membawa kepada Arduino. Saya menggunakan pin 4 hingga 8 untuk ini, tetapi anda boleh menggunakan mana-mana pin yang anda inginkan.

Langkah 9: Servo Motor Wiring

Mulakan dengan memasang kabel kuasa servo ke pin 5V pada Arduino. Kemudian pasangkan dawai hitam ke GND dan kabel isyarat (mungkin anda putih atau oren bergantung pada servo anda) ke dalam pin dengan keupayaan PWM, saya menggunakan pin 3. Sebaik sahaja anda memasang servo anda dan plug anda di LED menambah wayar membentuk Arduino GND ke landasan kereta api yang digunakan oleh semua LED.

Langkah 10: Menambah Sensor Suhu

Sensor suhu ini berfungsi dengan menukar voltan bergantung pada suhu di dalam bilik, sangat mirip dengan cara sensor cahaya akan menukar voltan berdasarkan berapa banyak cahaya di dalam bilik. Untuk menghidupkan sensor suhu bermula dengan meletakkan wayar dari kaki tengah, yang isyarat, kepada pin A0. Dalam litar saya wayar isyarat adalah oren.

Kemudian anda akan mahu menambah kuasa dan tanah kepada sensor. Ini memerlukan sedikit pengubahsuaian kepada litar motor servo. Daripada memasang kuasa servo terus ke pin 5V pada Arduino, jalankan wayar dari kuasa 5V ke papan roti dan kemudian pasang kedua-dua sensor suhu dan servo ke baris yang sama. Jika litar anda kelihatan sama dengan yang di bawah anda berada di landasan yang betul.

Langkah 11: Pasang Tangan Jam

Sekarang bahawa semua litar untuk projek ini dilakukan membolehkan flip sepanjang jam dan bekerja di muka. Untuk membuat jam tangan saya bermula dengan memotong jam tangan dari jam lama yang saya dapati. Pakai cermin mata keselamatan anda semasa melakukan hal ini sahaja:) Kemudian ambil senjata gam panas anda dan letakkan manik gam tipis pada lampiran motor servo, dan kemudian pasangkan tangan jam dengan cepat.

Langkah 12: Pengekodan Bahagian 1

Kami memulakan pengekodan kami dengan permulaan standard tetapi sedikit lebih besar dari 5 LED, Servo, dan sensor suhu. Di samping itu, kami membuat pemboleh ubah pemegang tempat untuk kedudukan jam servo dan pembolehubah suhu yang saya panggil awalTemp. Perhatikan bahawa ini dilabelkan sebagai terapung dan mengandungi nombor dengan titik perpuluhan, ini akan memberi kita lebih banyak resolusi pada pengukuran suhu

#include Servo myservo; int clockPos = 0; int tempSensorPin = A0; const float initialTemp = 20.0; int tempLED1 = 4; int tempLED2 = 5; int tempLED3 = 6; int tempLED4 = 7; int tempLED5 = 8;

Selain banyak menubuhkan pinMod, kita perlu melampirkan servo yang kita sambungkan ke Arduino ke perisiannya termasuk perpustakaan. Saya telah melampirkan servo untuk pin tiga jadi menggunakan fungsi myservo.attach (3) akan membiarkan Arduino tahu mana pin itu harus PWM.

void setup () {Serial.begin (9600); myservo.attach (3);

Langkah 13: Pengekodan Bahagian 2

Untuk membuat kawalan jam tangan lebih mudah, kami akan memprogramkan Arduino untuk melabel kedudukan yang mungkin pada jam (misalnya: kerja, perjalanan dan lain-lain) dengan nombor dari 0 hingga 6. Dengan menggunakan perintah Serial.parseInt () membuat kerja pendek memahami nombor yang kami hantar ke Arduino.Untuk mencetuskan gerak tangan yang sebenarnya, kami periksa untuk melihat apakah kekunci masukkan telah dipukul, ingat yang tidak kelihatan " n" yang akan dihantar, kami kini akan memeriksa akhir mesej kami dan jika didapati kami akan menulis kedudukan baru untuk servo.

jika (Serial.available ()> 0) {int clockPos = Serial.parseInt (); jika (Serial.read () == ' n') {myservo.write (clockPos * 25 + ((clockPos + 1) * 3)); kelewatan (200); }}

Matematik yang saya gunakan untuk mendapatkan sudut kedudukan jam turun mengambil banyak tweaking tetapi turun untuk mengalikan nombor yang kita masukkan (clockPos) sebanyak 25 dan kemudian memikirkan offset yang betul untuk mendapatkan anak panah menunjuk dekat ke pusat kedudukan logo pada muka jam. Untuk saya saya menambah satu dan kemudian didarab dengan tiga untuk mendapatkan offset yang baik. Dijalankan melalui matematik dengan beberapa nombor nyata untuk menunjukkan kepada anda bagaimana cara ini berfungsi.

Servo Position Math

Menggunakan kedudukan jam saya menganggap saya mahu jadi menunjukkan bahawa saya "Perjalanan". Ini akan diwakili oleh nombor 2, di mana 1 adalah "Bahaya Mortal" dan 0 adalah "Kerja".

Jadi jam kamiPos = 2 Oleh itu:

Servo Sudut = (2 * 25) + ((2 + 1) * 3)

Servo Angle = 59 darjah

Kepada Arduino apabila ia menyelesaikan matematik baris menulis servo kelihatan seperti ini sekarang, yang tepatnya kita inginkan.

myservo.write (59);

Langkah 14: Pengekodan Bahagian 3

Dalam blok kod berikutnya kita akan kembali ke gelung utama dan analog membaca sensor suhu, kelewatan yang singkat memastikan bahawa nilai mempunyai masa untuk menyelesaikan. Kemudian untuk menukar voltan dibaca ke suhu kita membahagikan nombor yang kita peroleh dari ADC dengan nilai maksimum 1024 dan darab dengan 5V. Ini memberi kita nilai sensor suhu dalam volt. Untuk mendapatkan darjah yang kita tolak dengan.5 dan kemudian darabkan semuanya dengan 100. Whew! Itu rumit tapi kami hampir selesai.

int tempVal = analogRead (tempSensorPin); kelewatan (10); float temp = (((tempVal / 1024.0) * 5) -. 5) * 100; Serial.println (temp);

Untuk menamatkan pengekodan sensor suhu kita akan membuat kes suis untuk setiap lampu LED menggunakan banyak kod dan fungsi yang sama yang digunakan sebelum ini. Satu tambahan yang akan kita buat adalah memetakan suhu di dalam bilik ke nombor dari 0 hingga 4. Ini akan membolehkan kita dengan mudah menggunakan kes suis untuk mengawal LED.

int switchcase = map (temp, 12, 28, 0, 4); Serial.println (suis);

Langkah 15: Muat Naik & Ujian

Phew! Itu setakat ini kod paling mencabar yang kami tulis setakat ini. Sekarang mari muat naik dan uji jam kami.

Langkah 16: Nikmati Jam Baru Anda!

KAMU LAKUKAN!!!! Gantung jam anda dengan bangga di tempat yang boleh dilihat oleh semua orang. Bukan sahaja anda menyelesaikan projek yang hebat tetapi anda belajar begitu banyak.