สารบัญ:

Arduino Led/Strips RGB Bluetooth (Arduino + App Inventor): 5 ขั้นตอน
Arduino Led/Strips RGB Bluetooth (Arduino + App Inventor): 5 ขั้นตอน

วีดีโอ: Arduino Led/Strips RGB Bluetooth (Arduino + App Inventor): 5 ขั้นตอน

วีดีโอ: Arduino Led/Strips RGB Bluetooth (Arduino + App Inventor): 5 ขั้นตอน
วีดีโอ: Bluetooth LED strip arduino control Android App 2024, พฤศจิกายน
Anonim
Arduino Led/Strips RGB Bluetooth (นักประดิษฐ์แอพ Arduino +)
Arduino Led/Strips RGB Bluetooth (นักประดิษฐ์แอพ Arduino +)
Arduino Led/Strips RGB Bluetooth (นักประดิษฐ์แอพ Arduino +)
Arduino Led/Strips RGB Bluetooth (นักประดิษฐ์แอพ Arduino +)
Arduino Led/Strips RGB Bluetooth (นักประดิษฐ์แอพ Arduino +)
Arduino Led/Strips RGB Bluetooth (นักประดิษฐ์แอพ Arduino +)

ในบทช่วยสอนนี้ ฉันจะแสดงวิธีใช้ App Inventor และเชื่อมต่อกับ Arduino โดยใช้ Bluetooth

ขั้นตอนที่ 1: สิ่งที่คุณต้องการและแผนผัง

สิ่งที่คุณต้องการและแผนผัง
สิ่งที่คุณต้องการและแผนผัง
สิ่งที่คุณต้องการและแผนผัง
สิ่งที่คุณต้องการและแผนผัง
สิ่งที่คุณต้องการและแผนผัง
สิ่งที่คุณต้องการและแผนผัง

นี่คือรายการตามปกติไม่มีอะไรเปลี่ยนแปลงหากคุณมาที่นี่เพื่อสคริปต์เพียงแค่เลื่อนมัน

  1. การเชื่อมต่ออินเทอร์เน็ต
  2. โทรศัพท์ Android (แน่นอน)
  3. สมัครฟรี (ไม่ใช่โปรโมชั่น) App Inventor
  4. Arduino + โมดูลบลูทูธ
  5. LED/แถบ RGB
  6. ตัวต้านทาน 100/200/330

ขั้นตอนที่ 2: การประกาศและตั้งค่ารหัส Arduino

ขั้นแรกให้ประกาศตัวแปร พอร์ตตัวเลข ฯลฯ (แทนที่ " ด้วย <)

#include "SoftwareSerial.h"

#include "Wire.h" SoftwareSerial BT(10, 11);

ฉันใช้พอร์ต 7 และ 8 เป็น RX TX โปรดจำไว้ว่าหากคุณต้องการเชื่อมต่อโมดูลบลูทูธ ตรวจสอบให้แน่ใจว่าโมดูล pin RX เชื่อมต่อกับพิน TX

int LED_RED = 3;

int LED_GREEN = 5; int LED_BLUE = 6; ข้อมูลสตริง = ""; สตริง data_Previous = "255.255.255"; สตริงบน = "LON"; String OFF = "LOFF"; สถานะบูลีน = เท็จ;

สคริปต์ต่อไปคือเพื่อให้แน่ใจว่าพินของ RGB LED/Stips ไปที่พิน PWM

การตั้งค่าเป็นโมฆะ ()

{ โหมดพิน (LED_RED, เอาต์พุต); pinMode (LED_GREEN, pinMode (LED_BLUE, OUTPUT); Serial.begin(9600); BT.begin(9600); data.reserve(30); }

อย่างที่คุณเห็นฉันตั้งชื่อพอร์ตสำหรับบลูทู ธ เป็น BT ดังนั้นให้ประกาศเป็น Serial ตามปกติตรวจสอบให้แน่ใจว่า boudrate เหมือนกับการกำหนดค่าบนโมดูล (ค่าเริ่มต้นคือ 9600)

ขั้นตอนที่ 3: รหัส Arduino (รหัสหลัก)

ภายในวงเป็นโมฆะ

ในขณะที่(BT.available())

{ ถ่าน ReadChar = (ถ่าน) BT.read (); Serial.println("เชื่อมต่อแล้ว"); ถ้า (ReadChar == '+') { state = true; } อื่น ๆ { data += ReadChar; } }

สคริปต์สำหรับตรวจสอบโมดูลบลูทู ธ เชื่อมต่อหรือไม่หากเชื่อมต่อจะได้รับข้อมูลและบันทึกลงใน ReadChar

ถ้า (รัฐ)

{ Serial.print("ข้อมูล:"); Serial.print(ข้อมูล); Serial.print("ข้อมูลเบื้องต้น:"); Serial.print(data_Previous); ถ้า (data==ON) { data = data_Previous; Data_LED(); } else if (data==OFF) { data = "0.0.0"; Data_LED(); } อื่น ๆ { Data_LED(); data_Previous = ข้อมูล; } data = ""; รัฐ = เท็จ; }

นี่เป็นส่วนสุดท้ายของ void loop ซึ่งเป็นสถานะ if เพื่อให้แน่ใจว่าข้อมูลจะสมบูรณ์หากไม่มีการเรียกใช้ภายใน

ไฟ LED ข้อมูลฟังก์ชัน

int seperator1 = data.indexOf('-');

int seperator2 = data.indexOf('-', seperator1+1); int seperator3 = data.indexOf('-', seperator2+1);

ส่วนนี้เป็นรหัสหลักเพราะได้รับหนึ่งสตริงจะต้องรู้ว่าตัวคั่นอยู่ที่ใด เป็นไปไม่ได้ที่ค่าของ RGB ที่ต่ำกว่า 50 โดยใช้ indexOf มันจะค้นหาจำนวนของถ่านที่เราค้นหาด้วยสิ่งนี้ เราสามารถรู้ได้ว่าตัวเลขใดที่จะเริ่มต้นฟังก์ชันสตริงย่อย

สตริง R = data.substring(0, seperator1);

สตริง G = data.substring (seperator1+1, seperator2); สตริง B = data.substring (seperator2+1, seperator3);

หลังจากได้รับตำแหน่งของแต่ละค่าแล้ว ฟังก์ชัน subString จะแบ่งตัวเลขแต่ละจำนวนไปยังตัวแปรแต่ละตัว ตัวคั่นจะเพิ่มขึ้นเพื่อให้แน่ใจว่าไม่ได้อ่านค่าก่อนหน้านั้น

ขั้นตอนที่ 4: App Inventor

App Inventor
App Inventor
App Inventor
App Inventor

บริการนี้จะทำให้ผู้เริ่มต้น (เช่นฉัน) ง่ายขึ้นในการทำให้แอป Android เพียงแค่ใช้ตรรกะ อดทน และอินเทอร์เน็ต

ขั้นแรกให้สร้าง GUI. อย่างง่าย

เริ่มไสหรือสร้างภาพเลย์เอาต์ มีสองรุ่นที่ผมทำสีดำเป็นตัวแรกและสีขาวเป็นอันดับสอง

เปิด MIT APP ครั้งที่ 2 หรือคลิกที่นี่

  1. ขั้นตอนนี้คือคลิก Create apps! ที่มุมขวา
  2. เริ่มโครงการใหม่
  3. พิมพ์ชื่อ
  4. เริ่มออกแบบ

หากคุณใช้แหล่งที่มาของฉัน ให้คลิก โครงการ และเลือกนำเข้า aia

บทนำ

ในบริการนี้ คุณต้องมีตรรกะเพราะเนื้อหาแต่ละรายการมีสีและคำอธิบายของตัวเอง เพียงแค่ค้นหาหากไม่เข้าใจ ไม่ยากหากคุณคุ้นเคยกับสคริปต์/การเข้ารหัส

หลักคือวงล้อสีและไคลเอนต์บลูทู ธ นี่คือคำอธิบาย

วงล้อสี

  1. วงล้อสีรับค่าโดยตรวจจับนิ้วที่สัมผัส
  2. เคอร์เซอร์จะตามนิ้ว จำว่าเคอร์เซอร์บางครั้งไม่ตรงแนวกับเป้าหมาย
  3. เคอร์เซอร์จะได้รับค่า X และ Y และ
  4. ค่านี้จะถูกใช้โดยฟังก์ชันของ getBackgroundPixelColour โดยพื้นฐานแล้วจะเหมือนกับตัวเลือกสีในแอปอื่นๆ
  5. มี 3 ค่า (แดง เขียว น้ำเงิน) แต่ละค่าแยกตามจำนวนรายการ (เริ่มจาก 1)
  6. นั่นคือวิธีง่ายๆ ในการทำวงล้อสี

บลูทู ธ

  1. หลังจากได้ค่าแล้วส่งโดยการเพิ่ม - ให้แต่ละตัวละครแล้วบวก + ท้ายสุดโดยใช้ funcion ของ join
  2. ส่งไปที่ซีเรียล

ขั้นตอนที่ 5: บทสรุป

ขออภัยสำหรับภาษาอังกฤษที่ไม่ดีของฉัน ฉันกำลังทดสอบและพบปัญหากับ RGB LED ของฉัน (ไดโอดสีแดงไม่สว่างถึงเหตุการณ์ที่ฉันใช้ 100R) ฉันจะสร้าง RGB Strip หากมี ฉันลองใช้เครื่องบินเวอร์ชัน 3trd เพื่อสร้างฟีเจอร์เพิ่มเติม เช่น ไฟปาร์ตี้ ไฟปาร์ตี้แบบกำหนดเอง และปรับปรุงบางอย่าง

ถ้ามันใช้งานได้จริงถ้าไม่แก้ไขฉันด้วย แฮปปี้ โค้ดดิ้ง ^^

แนะนำ: