สารบัญ:
- ขั้นตอนที่ 1: ส่วนผสม
- ขั้นตอนที่ 2: ฮาร์ดแวร์
- ขั้นตอนที่ 3: ซอฟต์แวร์
- ขั้นตอนที่ 4: การสร้างแบบจำลองและการพิมพ์ 3 มิติ
- ขั้นตอนที่ 5: การประกอบ
- ขั้นตอนที่ 6: การทดสอบขั้นสุดท้าย
วีดีโอ: TfCD - บวก: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
พลัสเป็นไฟอัจฉริยะแบบมินิมอล ซึ่งไม่เพียงแต่แจ้งเตือนผู้คนเกี่ยวกับสภาพอากาศ แต่ยังสร้างประสบการณ์ที่สนุกสนานให้กับผู้ใช้ด้วยการเปลี่ยนแปลงของสีของแสงโดยการหมุนเครื่องหมายบวก รูปร่างของมันทำให้ผู้ใช้มีโอกาสที่จะรวมโมดูลบวกหลายโมดูลหรือสร้างโคมไฟขนาดใหญ่ที่มีชิ้นส่วนบวกจำนวนมากที่เพื่อนวางไว้ โครงการไฟส่องสว่างนี้เป็นส่วนหนึ่งของหลักสูตร Advanced Concept Design (ACD) ที่มหาวิทยาลัย TU Delft และเทคโนโลยีที่นำไปใช้โดยการใช้ TfCD ในทางปฏิบัติเป็นแหล่งที่มาของแรงบันดาลใจ
ขั้นตอนที่ 1: ส่วนผสม
1 ราสเบอร์รี่ pi ศูนย์ w
1 Groove Adxl345 มาตรความเร่ง
4 Ws2812b LED
1 บอร์ดสร้างต้นแบบ
ตัวเครื่องพิมพ์ 3 มิติและตัดด้วยเลเซอร์
ขั้นตอนที่ 2: ฮาร์ดแวร์
ไฟ LED
LED Neopixel มี 4 พินชื่อ: +5V, GND, Data In และ Data out
- Pin 4 ของ raspberry pi เชื่อมต่อกับ +5V ของ LED ทั้งหมด
- Pin 6 ของ raspberry pi เชื่อมต่อกับ GND ของ LEDS. ทั้งหมด
- ข้อมูลในพินของ LED ตัวแรกเชื่อมต่อกับพิน 12 บนราสเบอร์รี่ pi
- พิน Data out ของ LED ตัวแรกเชื่อมต่อกับ Data ในส่วนที่สองและต่อไปเรื่อยๆ
โปรดดูแผนภาพการเดินสายไฟเพื่อความเข้าใจที่ดีขึ้น
มาตรความเร่ง
มาตรความเร่งมี 4 พินชื่อ: VCC, GND, SDA และ SCL
- Pin 1 ของ raspberry pi เชื่อมต่อกับ VCC
- Pin 3 ของ raspberry pi เชื่อมต่อกับ SCL
- Pin 5 ของ raspberry pi เชื่อมต่อกับ SDA
- Pin 9 ของ raspberry pi เชื่อมต่อกับ GND
สร้าง
- เพื่อความสะดวก ไฟ LED สามารถบัดกรีบนบอร์ดสร้างต้นแบบได้ เราได้ตัดสินใจตัดกระดานให้มีรูปร่างเป็นเครื่องหมายบวก เพื่อให้พอดีกับเคสที่ออกแบบ 3 มิติ
- เมื่อเราบัดกรีไฟ LED บนบอร์ดแล้ว เราจะบัดกรีสายจัมเปอร์เพื่อทำการเชื่อมต่อระหว่างส่วนหัวขนาด 0.1 นิ้วกับไฟ LED ขั้วต่อส่วนหัวจะใช้เพื่อลดการเชื่อมต่อราสเบอร์รี่ pi และนำกลับมาใช้ใหม่สำหรับโครงการในอนาคต
ขั้นตอนที่ 3: ซอฟต์แวร์
อิมเมจระบบปฏิบัติการ Raspberry Pi
ก่อนอื่นเราต้องทำให้ Raspberry Pi ใช้งานได้ ในการทำเช่นนี้เราทำตามขั้นตอนเหล่านี้:
- ดาวน์โหลด Raspbian เวอร์ชันล่าสุดได้จากที่นี่ คุณสามารถดาวน์โหลดได้โดยตรงหรือผ่านทาง torrents คุณจะต้องใช้โปรแกรมเขียนรูปภาพเพื่อเขียนระบบปฏิบัติการที่ดาวน์โหลดลงในการ์ด SD (การ์ด micro SD ในกรณีของรุ่น Raspberry Pi B+ และ Raspberry Pi Zero)
- ดังนั้นให้ดาวน์โหลด "win32 disk imager" จากที่นี่ ใส่การ์ด SD ลงในแล็ปท็อป/พีซี และเรียกใช้โปรแกรมเขียนรูปภาพ เมื่อเปิดขึ้นมา ให้เรียกดูและเลือกไฟล์รูปภาพ Raspbian ที่ดาวน์โหลดมา เลือกอุปกรณ์ที่ถูกต้อง นั่นคือไดรฟ์ที่เป็นตัวแทนของการ์ด SD หากไดรฟ์ (หรืออุปกรณ์) ที่เลือกแตกต่างจากการ์ด SD ไดรฟ์อื่นที่เลือกจะเสียหาย ดังนั้นจงระวัง
- หลังจากนั้นคลิกที่ปุ่ม "เขียน" ที่ด้านล่าง ตัวอย่างเช่น ดูภาพด้านล่าง โดยที่ไดรฟ์ SD การ์ด (หรือ micro SD) จะแสดงด้วยตัวอักษร "G:\" ขณะนี้ระบบปฏิบัติการพร้อมใช้งานตามปกติแล้ว อย่างไรก็ตาม ในบทช่วยสอนนี้ เราจะใช้ Raspberry Pi ในโหมดหัวขาด ซึ่งหมายความว่าไม่มีจอภาพและคีย์บอร์ดติดอยู่!
- หลังจากเบิร์นการ์ด SD อย่านำออกจากคอมพิวเตอร์ของคุณ! ใช้โปรแกรมแก้ไขข้อความเพื่อเปิดไฟล์ config.txt ที่อยู่ในการ์ด SD ไปที่ด้านล่างและเพิ่ม dtoverlay=dwc2เป็นบรรทัดสุดท้าย:
- บันทึกไฟล์ config.txt เป็นข้อความธรรมดาแล้วเปิด cmdline.txt หลังจาก rootwait (คำสุดท้ายในบรรทัดแรก) ให้เพิ่มช่องว่างแล้ว modules-load=dwc2, g_ether
- ตอนนี้เอาการ์ด SD ออกจากพีซีของคุณแล้วใส่ลงใน Raspberry Pi แล้วเชื่อมต่อกับพีซีของคุณโดยใช้สาย USB เมื่อระบบปฏิบัติการบูทขึ้นแล้ว คุณควรเห็นอุปกรณ์ Ethernet Gadget ใหม่ถูกค้นพบ
- คุณสามารถใช้ ssh [email protected] เพื่อเชื่อมต่อกับบอร์ดและควบคุมจากระยะไกล สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการทำงานแบบหัวขาด ไปที่นี่ ไดร์เวอร์ Neopixel
ไลบรารี rpi_ws281x เป็นคีย์ที่ทำให้สามารถใช้ NeoPixels กับ Raspberry Pi ได้
ขั้นแรกเราต้องติดตั้งเครื่องมือที่จำเป็นในการคอมไพล์ไลบรารี ในการรัน Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig ตอนนี้ให้รันคำสั่งเหล่านี้เพื่อดาวน์โหลดและคอมไพล์ไลบรารี:
git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons สุดท้ายหลังจากรวบรวมไลบรารีเรียบร้อยแล้ว เราสามารถติดตั้งสำหรับ python โดยใช้:
cd python && sudo python setup.py install ตอนนี้มีรหัสหลามที่ขับ LED โค้ดนี้ค่อนข้างง่ายพร้อมความคิดเห็นบางส่วนที่จะช่วยคุณได้ จากการนำเข้า neopixel * # การกำหนดค่า NeoPixel LED_PIN = 18 # พิน GPIO ของ Raspberry Pi เชื่อมต่อกับพิกเซล LED_BRIGHTNESS = 255 # ตั้งค่าเป็น 0 สำหรับความมืดที่สุดและ 255 สำหรับ LED_COUNT ที่สว่างที่สุด = 4 # จำนวนแถบพิกเซล LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, เท็จ, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # เริ่มต้นไลบรารี strip.begin() strip.setPixelColor(0, Color(255, 255, 255)) strip.show()
ADXL345 ไดร์เวอร์
เซ็นเซอร์มาตรความเร่งที่เราเลือกมีอินเทอร์เฟส I2C สำหรับสื่อสารกับโลกภายนอก โชคดีสำหรับเรา Raspberry Pi ยังมีอินเทอร์เฟซ I2C เราเพียงแค่ต้องเปิดใช้งานเพื่อใช้ในโค้ดของเราเอง
เรียกใช้เครื่องมือกำหนดค่า Raspbian โดยใช้ sudo raspi-config เมื่อเรียกใช้แล้ว ให้ไปที่ตัวเลือกการเชื่อมต่อ ตัวเลือกขั้นสูง จากนั้นเปิดใช้งาน I2C ติดตั้งโมดูลหลามที่เกี่ยวข้องเพื่อให้เราสามารถใช้อินเทอร์เฟซ I2C ในไพ ธ อนได้:
sudo apt-get install python-smbus i2c-tools รหัสหลามต่อไปนี้ช่วยให้เราสื่อสารกับเซ็นเซอร์มาตรความเร่งและอ่านค่าลงทะเบียนเพื่อจุดประสงค์ของเราเอง นำเข้า smbus นำเข้า struct # Accelerometer configurations bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (ที่อยู่, 45, 0x00) # ไปที่โหมดสแตนด์บาย bus.write_byte_data (ที่อยู่, 44, 0x06) # แบนด์วิดท์ 6.5Hz bus.write_byte_data(ที่อยู่, 45, 0x08) # ไปที่โหมดการวัด # อ่านข้อมูลจากเซ็นเซอร์ buf = bus.read_i2c_block_data(ที่อยู่, 50, 6) # แกะข้อมูลจาก int16_t ไปยัง python integer data = struct.unpack_from (">ฮะ", บัฟเฟอร์(bytearray(buf)), 0)
x = float(data[0]) * กำไร
y = float(data[1]) * ได้รับ
z = float(ข้อมูล[2]) * กำไร
เครื่องตรวจจับการเคลื่อนไหว
คุณลักษณะหนึ่งของแสงที่เราทำคือสามารถตรวจจับการเคลื่อนไหว (หรือไม่มี) เพื่อเข้าสู่โหมดโต้ตอบ (โดยที่แสงเปลี่ยนไปตามการหมุน) และโหมดพยากรณ์อากาศ (ซึ่งแสงเปลี่ยนไปตามการพยากรณ์อากาศ สำหรับวันนี้). รหัสต่อไปนี้ใช้ฟังก์ชันก่อนหน้าเพื่ออ่านค่าความเร่งสำหรับ 3 แกนและเตือนเราเมื่อมีการเคลื่อนไหว
เร่ง = getAcceleration ()
dx = abs(prevAccel[0] - accel[0])
dy = abs(prevAccel[1] - เร่ง[1])
dz = abs(prevAccel[2] - เร่ง[2])
ถ้า dx > moveThreshold หรือ dy To > moveThreshold หรือ dz > moveThreshold:
พิมพ์ 'ย้าย'
ย้าย = จริง
อื่น:
ย้าย = เท็จ
API อากาศ
ในการรับพยากรณ์อากาศ เราสามารถใช้ Yahoo Weather สิ่งนี้เกี่ยวข้องกับการพูดคุยกับ Yahoo Weather Rest API ซึ่งอาจค่อนข้างซับซ้อน โชคดีสำหรับเรา ส่วนที่ยากได้รับการดูแลในรูปแบบของโมดูล weather-api สำหรับ python แล้ว
- ก่อนอื่นเราต้องติดตั้งโมดูลนี้โดยใช้: sudo apt install python-pip && sudo pip install weather-api
- โปรดเยี่ยมชมเว็บไซต์ของผู้เขียนเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับโมดูลนี้
เมื่อติดตั้งโค้ดต่อไปนี้จะได้รับสภาพอากาศในขณะนี้
จากการนำเข้าสภาพอากาศ Weatherweather = Weather()
ที่ตั้ง = weather.lookup_by_location('dublin')
สภาพ = location.condition()
พิมพ์(เงื่อนไข.ข้อความ())
วางมันทั้งหมดเข้าด้วยกัน
รหัสทั้งหมดสำหรับโครงการที่เชื่อมต่อส่วนต่างๆ ข้างต้นมีอยู่ที่นี่
เริ่มต้นสคริปต์ python โดยอัตโนมัติเมื่อบูตเครื่อง
เพื่อให้สามารถใส่ raspberry pi ลงในกล่องและเรียกใช้โค้ดของเราทุกครั้งที่เราเชื่อมต่อกับแหล่งจ่ายไฟ เราต้องตรวจสอบให้แน่ใจว่าโค้ดเริ่มทำงานโดยอัตโนมัติระหว่างการบู๊ต ในการดำเนินการนี้ เราใช้เครื่องมือที่เรียกว่า cron
- ก่อนอื่นให้เรียกใช้เครื่องมือ cron โดยใช้: sudo crontab -e
-
ขั้นตอนก่อนหน้านี้จะเปิดไฟล์การกำหนดค่าซึ่งเราเพิ่มบรรทัดต่อไปนี้:
@reboot หลาม /home/pi/light.py &
ขั้นตอนที่ 4: การสร้างแบบจำลองและการพิมพ์ 3 มิติ
โมเดล 3 มิติของ Plus ได้รับการสร้างใน Solidworks และบันทึกเป็นรูปแบบ. Stl จากนั้นสำหรับการพิมพ์โมเดล 3 มิติ ไฟล์. Stl จะถูกนำเข้าในซอฟต์แวร์ Cura แต่ละด้านของเครื่องหมายบวกใช้เวลา 2:30 น. ในการผลิต ดังนั้น full Plus แต่ละครั้งจึงใช้เวลาประมาณ 5 ชั่วโมงในการพิมพ์ และสำหรับด้านที่โปร่งใส ลูกแก้วก็ถูกตัดด้วยเลเซอร์
ขั้นตอนที่ 5: การประกอบ
ด้วยชิ้นส่วนที่พิมพ์ 3 มิติ อุปกรณ์อิเล็กทรอนิกส์และซอฟต์แวร์อยู่ในมือ ในที่สุด เราก็สามารถประกอบผลิตภัณฑ์ขั้นสุดท้ายได้
- แผ่นด้านบนและด้านล่างที่พิมพ์ 3 มิติ เราพบว่าโปร่งใสกว่าที่คาดไว้ ชั้นของอลูมิเนียมฟอยล์ช่วยแก้ปัญหาแสงรั่วได้
- อย่างไรก็ตาม แผ่นเหล่านี้สามารถนำไฟฟ้าได้และอาจทำให้เกิดการลัดวงจรภายในวงจรที่ไม่มีการป้องกันของเรา ดังนั้นกระดานไวท์บอร์ดอีกชั้นจึงติดกาวอยู่ด้านบน
- ส่วนลูกแก้วแบบกระจายติดกาวที่แผ่นด้านข้างด้านใดด้านหนึ่ง
- มีการเจาะรูในแผงพิมพ์ 3 มิติด้านใดด้านหนึ่ง เพื่อให้เราสามารถผ่านสายไฟได้
- เมื่อเสียบสายไฟเข้าไปในรูแล้ว เราก็บัดกรีมันเข้ากับบอร์ดสร้างต้นแบบของเรา
- เราแนบเซ็นเซอร์กับราสเบอร์รี่ pi แล้วเสียบเข้ากับขั้วต่อ
- เราแนบ 2 ชิ้นเข้าด้วยกันเพื่อให้ได้ผลิตภัณฑ์ขั้นสุดท้ายของเรา
- คุณสามารถเลือกกาว 2 ชิ้นเพื่อให้การเชื่อมต่อถาวรมากขึ้น อย่างไรก็ตาม โปรดทราบว่าอาจเป็นเรื่องยากที่จะเข้าไปในกล่องหลังจากที่ปิดแล้ว หากคุณต้องการเปลี่ยนรหัสในภายหลัง
แนะนำ:
บันทึกและกู้คืนค่าที่ตั้งไว้ล่วงหน้าด้วย NFC (TfCD): 4 ขั้นตอน
บันทึกและกู้คืนค่าที่ตั้งไว้ล่วงหน้าด้วย NFC (TfCD): เราต้องการทดสอบว่ามันทำงานอย่างไรเพื่อปรับค่าหรือการตั้งค่าบางอย่างและเรียกคืนการตั้งค่านี้ในภายหลัง สำหรับการทดลองนี้ เราใช้แท็ก NFC เพื่ออ่านแล้วบันทึกค่าไว้ ภายหลังสามารถสแกนแท็กอีกครั้งและส่งค่ากลับเพื่อเรียกคืนใบรับรอง
แผงไฟแบบกำหนดเองที่สวมใส่ได้ (หลักสูตรสำรวจเทคโนโลยี - TfCD - Tu Delft): 12 ขั้นตอน (พร้อมรูปภาพ)
แผงไฟแบบกำหนดเองที่สวมใส่ได้ (หลักสูตรสำรวจเทคโนโลยี - TfCD - Tu Delft): ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีสร้างภาพของคุณเองที่เรืองแสงได้ซึ่งคุณสามารถสวมใส่ได้! ทำได้โดยใช้เทคโนโลยี EL ที่หุ้มด้วยสติกเกอร์ไวนิลและติดแถบไว้เพื่อให้คุณสามารถสวมใส่ได้รอบแขน คุณยังสามารถเปลี่ยนส่วนต่างๆ ของ p
การตรวจจับวัตถุด้วยภาพด้วยกล้อง (TfCD): 15 ขั้นตอน (พร้อมรูปภาพ)
การตรวจจับวัตถุด้วยภาพด้วยกล้อง (TfCD): บริการทางปัญญาที่สามารถจดจำอารมณ์ ใบหน้าของผู้คน หรือวัตถุง่ายๆ ได้ในขณะนี้ยังอยู่ในช่วงเริ่มต้นของการพัฒนา แต่ด้วยการเรียนรู้ของเครื่อง เทคโนโลยีนี้มีการพัฒนามากขึ้นเรื่อยๆ เราสามารถคาดหวังว่าจะได้เห็นความมหัศจรรย์นี้มากขึ้นใน
DIY สวนโรตารี่ (TfCD): 12 ขั้นตอน (พร้อมรูปภาพ)
DIY สวนโรตารี่ (TfCD): สวัสดี! เราได้รวบรวมบทช่วยสอนเล็กๆ น้อยๆ เกี่ยวกับวิธีการสร้างสวนโรตารี่ขนาดเล็กของคุณเอง ซึ่งในความเห็นของเราอาจเป็นตัวแทนของการทำสวนแห่งอนาคต ด้วยการใช้ไฟฟ้าและพื้นที่ที่ลดลง เทคโนโลยีนี้จึงเหมาะสำหรับ
DeskMagic - การสร้างแอปสำหรับชุดหูฟัง Aryzon AR (TfCD): 22 ขั้นตอน
DeskMagic - การสร้างแอปสำหรับชุดหูฟัง Aryzon AR (TfCD): ในคำแนะนำนี้ เราจะดำเนินการทีละขั้นตอนผ่านกระบวนการสร้างแอปพลิเคชัน Augmented Reality (AR) อย่างง่ายสำหรับชุดหูฟัง Aryzon AR ไม่จำเป็นต้องมีการเข้ารหัสหรือประสบการณ์อื่น ๆ แม้ว่าแอปจะค่อนข้างพื้นฐาน แต่ก็เป็นวิธีที่สนุกและง่ายในการเ