Giftduino: Set Kado Arduino Ultimat untuk Hobbyis dan Pendidik
Komponen dan Perlengkapan
- Arduino UNO × 1
- Sensor efek Hall - A1302 × 1
- SparkFun Mini Speaker - PC Mount 12mm 2.048kHz × 1
- SparkFun Graphic LCD 84x48 - Nokia 5110 × 1
Aplikasi dan Layanan Online
Tentang Proyek Ini
Untuk proyek ini, kami menggunakan dua komponen yang cukup baru pada circuito.io: sensor efek Hall dan LCD Grafis Nokia.
Sensor efek Hall bereaksi terhadap medan magnet. Untuk mengaktifkannya, perlu ada perubahan medan magnet di sekitarnya. Jadi seperti yang Anda duga, kami menggunakan magnet. Magnet ditempatkan pada tutup kotak hadiah.
Setiap kali tutup dibuka, sensor efek Hall diaktifkan dan memberikan sinyal untuk layar dan speaker piezo memutar giliran mereka. Berikut adalah penjelasan yang bagus tentang sensor efek Hall dan cara kerjanya.
Langkah Pertama - Kumpulkan Komponen
Di link circuito magis ini kami telah mem-preselect komponen yang kami gunakan dalam proyek. Setelah mengklik generate, Anda akan melihat semua bagian yang Anda butuhkan, termasuk periferal seperti resistor, kapasitor, dll.
Catat bahwa dengan circuito.io Anda dapat membuat banyak kombinasi berbeda untuk proyek ini dengan komponen yang Anda miliki.
Berikut adalah beberapa kombinasi lain yang kami pikirkan untuk proyek ini:
- Ganti speaker piezo dengan LED
- Ganti sensor efek hall dengan Pengukur Jarak Ultrasonik
- Ganti adaptor dinding dengan baterai 9V
- Ganti layar Nokia dengan LCD 16x2
Langkah Kedua - Penyambungan
Jika Anda mengklik Generate pada link magis di atas dan menggulir ke bawah dalam balasan, Anda akan mencapai skema penyaluran. Ikuti panduan langkah demi langkah yang akan menunjukkan kepada Anda bagaimana cara merakit elektronika Anda. Ini mungkin terlihat rumit, tetapi jika Anda mengikuti panduan satu langkah pada satu waktu, ini sangat sederhana!
Langkah Ketiga - Kode
Jika Anda menggulir ke bawah sekali lagi dalam balasan circuito.io, Anda akan mencapai bagian kode . Di bagian ini Anda harus mengunduh kode dari circuito.io dan mengekstraknya ke komputer Anda.
Selanjutnya, Anda perlu membuka kode dengan Arduino IDE dan mengunggahnya ke Arduino Anda.
kode dari circuito.io adalah kode contoh. Ini mengintegrasikan semua komponen dan perpustakaannya. Kode ini akan membantu Anda menguji apakah penyambungan Anda benar.
Setelah Anda selesai dengan bagian ini, Anda dapat menyalin-tempel kode di akhir tutorial ini ke tab firmware.ino dalam kode yang Anda peroleh dari circuito.io.
Di dalam kode Anda akan melihat komentar yang menjelaskan setiap bagian dan fungsinya, jadi Anda dapat membuat perubahan pada nilai misalnya, Anda dapat mengubah nada yang diputar ketika kotak dibuka, atau seni piksel yang muncul. Jangan lupa untuk mengunggah kode baru ke Arduino Anda setelah selesai.
Anda bekerja bagus! Sekarang kita akan melanjutkan ke pembuatan kotak hadiah
Membuat Kotak
Kotak yang kami buat adalah kombinasi bagian cetak 3D dan kardus PVC tetapi Anda bisa sangat kreatif di sini dan menggunakan bahan berbeda untuk memberi penampilan yang sepenuhnya berbeda.
Misalnya Anda dapat menggunakan kayu dan kaca, Anda dapat membuat kotak lebih besar atau lebih kecil, menghiasnya, membuatnya bulat, membuatnya dalam warna apa pun yang Anda inginkan. Ini tergantung pada Anda.
Jika Anda ingin membuat kotak seperti milik kami, Anda memiliki file .STL di sini untuk diunduh.
Rangkaian - Menggabungkan Semua Satu
Setelah Anda memiliki semua bagian yang siap, saatnya untuk menggabungkan semuanya.
- Letakkan Arduino dengan shield di dalam kotak.
- Tempel magnet pada tutup kotak.
- Masukkan kawat baja fleksibel untuk menghubungkan tutup dan badan kotak
Selamat! Anda telah membangun kotak hadiah sempurna sendiri.
Beritahu kami jika Anda membuat satu dengan mengklik "Saya membuat ini" atau kirimkan kami foto dan video proyek Anda di halaman Facebook kami.
Kode
Kode GiftduinoArduino
#include "Arduino.h" #include "HallA1302.h" #include "AnalogReader.h" #include "Adafruit_GFX.h" #include "Adafruit_PCD8544.h" #include "TimerFreeTone.h" #include "Speaker.h" #define HALLA_PIN_VOUT A3 #define NOKIALCD_PIN_DC 4 #define NOKIALCD_PIN_CS 2 #define NOKIALCD_PIN_RST 3 #define PIEZOSPEAKER_PIN_SIG 5 //define Nokia LCD contrast and dimentions(in pixels) #define LCD_CONTRAST 70 #define LCD_SIZE_COL 84 #define LCD_SIZE_ROW 48 unsigned int piezoSpeakerHoorayLength = 6; // amount of notes in melody unsigned int piezoSpeakerHoorayMelody[] = {NOTE_C4, NOTE_E4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5}; // list of notes. List length must match HoorayLength! unsigned int piezoSpeakerHoorayNoteDurations[] = {8 , 8 , 8 , 4 , 8 , 4 }; // note durations; 4 = quarter note, 8 = eighth note, etc. List length must match HoorayLength! HallA1302 hallA(HALLA_PIN_VOUT); Adafruit_PCD8544 nokiaLcd(NOKIALCD_PIN_DC, NOKIALCD_PIN_CS, NOKIALCD_PIN_RST); Speaker piezoSpeaker(PIEZOSPEAKER_PIN_SIG); /* This code sets up the essentials for your circuit to work. It runs first every time your circuit is powered with electricity. */ void setup() { // Setup Serial which is useful for debugging // Use the Serial Monitor to view printed messages Serial.begin(9600); Serial.println("start"); //Calibrate sensor //hallA.calibrate(); //Initialize Nokia instance nokiaLcd.begin(LCD_SIZE_COL, LCD_SIZE_ROW); nokiaLcd.setContrast(LCD_CONTRAST); //Adjust display contrast } /* This code is the main logic of your circuit. It defines the interaction between the components you selected. After setup, it runs over and over again, in an eternal loop. */ void loop() { //Get Measurment from hall sensor. Depending on the magnet pole polarity the sensor will return positive or negative values. int hallAVal = hallA.read(); Serial.println(hallAVal); //Check if the box was opened if (abs(hallAVal - 512) < 50) { delay(500);//wait 0.5 sec nokiaLcd.clearDisplay(); //Erase & clear display buffer nokiaLcd.setRotation(2); nokiaLcd.setTextColor(BLACK); //Set text color to black, background is white by default nokiaLcd.setTextSize(2); //set text size nokiaLcd.setTextSize(1); //set text size nokiaLcd.print(" Surprise !"); nokiaLcd.setTextSize(2); //set text size nokiaLcd.drawCircle(37, 15, 3, BLACK); nokiaLcd.drawCircle(41, 15, 3, BLACK); nokiaLcd.drawRect(25, 22, 30, 20, BLACK); nokiaLcd.drawRect(22, 18, 36, 5, BLACK); nokiaLcd.drawRect(37, 22, 5, 20, BLACK); nokiaLcd.display(); //display on screen // The Speaker will play the Hooray tune piezoSpeaker.playMelody(piezoSpeakerHoorayLength, piezoSpeakerHoorayMelody, piezoSpeakerHoorayNoteDurations); delay(10000); //wait 10sec } }
Bagian dan Penutup Khusus
Frame
Top
Port USB