สารบัญ:
- ขั้นตอนที่ 1: เริ่มต้นใช้งาน ATTiny & Tools & Materials
- ขั้นตอนที่ 2: ฮาร์ดแวร์
- ขั้นตอนที่ 3: ซอฟต์แวร์
วีดีโอ: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
สวัสดี
เป็นเวลานานแล้วที่ฉันโพสต์คำสั่งสุดท้ายของฉัน ตอนนี้มีหลายสิ่งหลายอย่างเกิดขึ้นในหัวของฉัน แต่ฉันจัดการบันทึก "ขั้นตอนแรก" ของฉันด้วยชิป ATTiny-Series ในคำแนะนำสั้น ๆ นี้สำหรับคุณ
ฉันสั่งซื้อตัวอย่าง ATTINY85 เพียงเพราะว่าต้องการทดสอบ:-) (ทุกคนชอบที่จะทดสอบสิ่งต่างๆ ใช่ไหม) หลังจากนั้นฉันก็เริ่มวาดไอเดียบางอย่างลงในสมุดบันทึก พูดตามตรง สิ่งแรกที่ฉันทำคือไฟ LED กะพริบซึ่งเป็นการเริ่มต้นที่ดีเสมอเพื่อตรวจสอบว่าการตั้งค่า/ชุดเครื่องมือของคุณทำงานหรือไม่ ฉันยังลองใช้ตัวบันทึกอุณหภูมิและความชื้นด้วย DHT22 และ SoftwareSerial นั่นเป็นเรื่องที่ยุ่งยากเพราะไลบรารี DHT นั้นใช้สำหรับนาฬิกา 16Mhz เป็นหลัก (หากคุณวางแผนที่จะทำอย่างนั้น ให้ตรวจสอบวิธีปรับสเกลนาฬิกาภายในล่วงหน้า) แต่ฉันตัดสินใจที่จะแสดงบางสิ่งที่สนุกกว่าให้คุณดู BTW: ฉันอัปโหลดภาพวาดของฉันให้คุณ มันไม่ใช่ Rembrandt แต่มันจะแสดงให้คุณเห็นว่าฉันได้ไอเดียโง่ ๆ (จริงๆ) นี้บนกระดาษได้อย่างไร: -NS.
ฉันใช้เฉพาะสิ่งที่ฉันโกหกเพื่อให้โครงการนี้ถูกที่สุด (สำหรับฉัน) ผลลัพธ์ของการผจญภัยเล็ก ๆ นี้คือ "หุ่นยนต์ lightfollower" ตัวเล็ก ๆ ที่ดีในราคาประมาณ 10-15$ (3$ สำหรับฉัน:-P)
ดังนั้นหากคุณสนใจ ATTINY ด้วยตัวเอง โปรดอ่านเพิ่มเติม
BTW: ขอโทษสำหรับภาษาอังกฤษที่ไม่ดีของฉัน (ฉันไม่ใช่เจ้าของภาษา)
ขั้นตอนที่ 1: เริ่มต้นใช้งาน ATTiny & Tools & Materials
สิ่งที่คุณจะต้องเริ่มต้น:
- ชิป ATTiny85
- Arduino UNO หรือเทียบเท่า
- กระดานอักษรไขว้ด้วยสายจัมเปอร์หรือโปรแกรมเมอร์ ATTINY หรือสร้างโล่โปรแกรมเมอร์สำหรับ Arduino ด้วยตัวเอง (ตรวจสอบรูปภาพที่แนบมามีแผนผังจาก avdweb.nl) ฉันยังทำสิ่งนี้และฉันก็พอใจกับมันมาก การปรับเปลี่ยนเพียงอย่างเดียวที่ฉันทำคือเพิ่มซ็อกเก็ตสำหรับ ATTinyx4 Series (ดูรูปและไดอะแกรม pinout)
- Arduino IDE (รับที่นี่)
- hardwarefiles สำหรับ ArduinoIDE (ดาวน์โหลดและติดตั้ง)
Info-Link to the playgrounddirect ลิงก์ไปยังไฟล์ github ที่ฉันใช้
- โหลด Arduino เป็น ISP ร่างบน UNO (นี่จะเป็นโปรแกรมเมอร์ของคุณ)
- ทำตามคำแนะนำนี้ (https://highlowtech.org/) หรือคำแนะนำนี้ (โดย ardutronix) และลองใช้ภาพร่าง "กะพริบตา" (แก้ไขหมายเลข PIN ใช้รูปภาพ ATTINY เป็นข้อมูลอ้างอิง! คุณจะต้องมีไฟ LED ATTINY แบบ preflashed และตัวต้านทาน ~ 220Ohm สำหรับสิ่งนั้น)
ตั้งค่าเขียงหั่นขนมขนาดเล็กเพื่อตรวจสอบทุกอย่าง หากคุณทำทุกอย่างถูกต้อง ไฟ LED จะกะพริบและคุณพร้อมที่จะไป
เครื่องมือ
- หัวแร้ง- บัดกรีบางส่วน- เครื่องตัดลวดขนาดเล็ก- เดรเมลหรือเครื่องมือโรตารี่อื่นๆ (สำหรับตัด PCB เท่านั้น!)- กาวร้อนบางตัว- แหนบ- สายไฟ
วัสดุ
- สร้างต้นแบบ PCB (~4cmx6cm จะทำ)- 2x LDR- 5x 10k Resistor (2x สำหรับ LDRs และ 2x สำหรับทรานซิสเตอร์ BE, 1x LED) - 1x 330Ohm Resistor (1x NEOPIXELS)- 2x LDR- 1x LED (สีของของคุณ ตัวเลือก แทนที่จะเป็นล้อล้อเลื่อน)- 3x NEOPIXEL WS2812- 2x ทรานซิสเตอร์ (BD137 หรือใกล้เคียง)- 2x Diode (1N4001 หรือใกล้เคียง)- 2x micromotor (เช่นจาก Hubsan micro-quadcopter)- 1x ATTINY85 + อุปกรณ์เสริม (แนะนำ) 8PIN ซ็อกเก็ต IC- 1x 1s LIPO (ฉันใช้ 140Ah จากเฮลิคอปเตอร์ RC เก่า) - พินเฮดเดอร์ / ซ็อกเก็ตบางตัว - Shrinktube (ตัวเรือน LDR)
มาดำเนินการสร้างฮาร์ดแวร์กัน…
ขั้นตอนที่ 2: ฮาร์ดแวร์
หากคุณดูแผนผังที่ฉันแนบมา การติดตั้งฮาร์ดแวร์นั้นค่อนข้างง่าย ดังนั้น หากคุณสามารถอ่านแผนผังและใช้หัวแร้งได้ นั่นเป็นเคล็ดลับเพียงครึ่งเดียว ดูรูปภาพด้วย ฉันเพิ่มบันทึกย่อให้คุณ
ฉันไม่ได้มีแผนสำหรับการตัด PCB คุณมีอิสระในการออกแบบของคุณเอง (มีความคิดสร้างสรรค์และแสดงให้เราเห็น Tiny Bots ของคุณ) การจัดวางส่วนประกอบอิเล็กทรอนิกส์ทั้งหมดนั้นขึ้นอยู่กับคุณเช่นกัน คำแนะนำบางอย่างจากด้านข้างของฉัน:
พยายามจัดตำแหน่งมอเตอร์ให้แม่นยำ (ดูมุม!) เราใช้เฉพาะเพลามอเตอร์แทนล้อเท่านั้น (สิ่งนี้จะใช้พลังงานน้อยลง) ฉันแนะนำให้วางมอเตอร์ไว้ใต้แบตเตอรี่ (น้ำหนัก) และใช้ LDR ที่ด้านหน้า (ทำมุม 45 °) ที่จับคู่กับ LED (ฉันกำลังพยายามใช้ชุดค่าผสมนี้เพื่อหลีกเลี่ยงอุปสรรคต่อไป จำเป็นต้องมีการทดสอบ)
นอกจากนี้ ฉันแนะนำให้ทำจัมเปอร์เปิด/ปิดเล็กน้อย เพื่อไม่ให้แบตเตอรี่สูญหายง่าย
หากมีอะไรไม่ชัดเจนหรือมีคำถาม ถามมาได้เลยนะครับ มันไม่สมเหตุสมผลเลยที่จะทำวิทยานิพนธ์จากโครงการเล็กๆ นี้
ขั้นตอนที่ 3: ซอฟต์แวร์
อันดับแรก ดาวน์โหลดและติดตั้ง ADAFRUIT Neopixel Library
นี่คือรหัสของฉันพร้อมคำอธิบายที่สำคัญ (ฉันยังเพิ่มไฟล์สเก็ตช์ด้วย) ฉันไม่ได้แสดงความคิดเห็นทุกขั้นตอนเพราะฉันคิดว่ามันไม่จำเป็น
อัปโหลดภาพสเก็ตช์ไปยัง ATTiny85 แล้วสนุกไปกับของเล่นชิ้นใหม่ของคุณ
แนวคิดสำหรับฟังก์ชั่น "บุคลิกภาพ" + อาจเป็นตัวอย่างโค้ด:-)
หากมีคำถามใด ๆ อย่าลังเลที่จะถาม
ฉันหวังว่าคุณจะสนุกกับการสอนสั้น ๆ ของฉันและการเดินทางเล็ก ๆ น้อย ๆ สู่โลกของ ATTINY
/* ATTINY85-Rata หุ่นยนต์ ATTINY85 แบบง่ายขับเคลื่อนด้วยแสง เวอร์ชัน 2.0 โดย Auer Markus */
#รวม
#รวม
//มอเตอร์
#define LMOTOR 0 #define RMOTOR 1 // LEDs #define PIXELPIN 2 #define NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3
// อีโมอื่นๆ = 0; ลอยลำ; บูลีนอีโมสเตต; oldmillis ยาว; //กำหนด NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel(NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
การตั้งค่าเป็นโมฆะ ()
{ //นาฬิกาหรูอย่างอื่นคุณจะพบกับปัญหาเวลา (neopixel lib เขียนขึ้นสำหรับ 16MHz) #if กำหนดไว้ (_AVR_ATtiny85_) ถ้า (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif
//PINMODE โหมดพิน (LMOTOR, OUTPUT); โหมดพิน (RMOTOR, OUTPUT); โหมดพิน (LLDR, อินพุต); โหมดพิน (LLDR, อินพุต); //เริ่มต้นพิกเซล PIXEL.begin(); PIXEL.show(); ล่าช้า (500); //startsequence สำหรับ (int i=0;i
วงเป็นโมฆะ ()
{ if(lightfollow() == 1) { left(); } อื่น if(lightfollow() == 2) { right(); } else if(lightfollow() == 0) { forward(); } อารมณ์ (); }
int lightfollow() {
มูลค่าสุทธิ = 14; ผลลัพธ์ int = 0; ลอยไปทางซ้าย = 0; ลอยขวา = 0; ตัวอย่าง int = 1; // อ่าน LDR สำหรับ (int j = 0; j<samples; j++){
ซ้าย = ซ้าย + analogRead (LLDR); ขวา = ขวา + (analogRead(RLDR)*calib);
}
//คำนวณผลลัพธ์ (แสงมาจากทิศทางใด)
if((ซ้าย/ตัวอย่าง) > ((ขวา/ตัวอย่าง)+treshold)) {ผลลัพธ์ = 2;}
อื่น if((ซ้าย/ตัวอย่าง) < ((ขวา/ตัวอย่าง)-treshold)) {ผลลัพธ์ = 1;}
อย่างอื่น {ผลลัพธ์ = 0;}
ส่งคืนผลลัพธ์; } โมฆะไปข้างหน้า () {// ส่งต่อ analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.show(); }
เป็นโมฆะซ้าย () {
//ซ้าย analogWrite (LMOTOR, 150); analogWrite (RMOTOR, 255); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); // PIXEL.setPixelColor(1, PIXEL. Color(75, 0, 0)); PIXEL.setPixelColor(2, PIXEL. Color(0, 100, 0)); PIXEL.show(); }
ถือเป็นโมฆะขวา () {
//ขวา analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor(0, PIXEL. Color(0, 100, 0)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.show(); }
//นี่สำหรับการทดลองเพิ่มเติม พยายามทำให้คนนี้มีบุคลิกเล็กน้อย:-) ฉันกำลังทดสอบสิ่งที่สามารถทำได้ แต่ยังไม่มีความคิดที่ดี
โมฆะอารมณ์ () { int emotimer = 2500; ระยะเวลา int = สุ่ม (250, 750); ถ้า (มิลลิส () - oldmillis > emotimer) { oldmillis = millis(); อีโม = สุ่ม (1, 4); } if (มิลลิส() - oldmillis > ระยะเวลา) { emostate = !emostate; } ถ้า (emostate == จริง) { สวิตช์ (emo) { กรณีที่ 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show(); หยุดพัก; กรณีที่ 2: PIXEL.setPixelColor(1, PIXEL. Color((255), (0), (0))); PIXEL.show(); หยุดพัก; กรณีที่ 3: PIXEL.setPixelColor(1, PIXEL. Color((0), (255), (0))); PIXEL.show(); หยุดพัก; ค่าเริ่มต้น: PIXEL.setPixelColor(1, PIXEL. Color(สุ่ม(0, 255), สุ่ม(0, 255), สุ่ม(0, 255))); PIXEL.show(); หยุดพัก; } } อื่น ๆ { PIXEL.setPixelColor(1, PIXEL. Color(25, 0, 0)); PIXEL.show(); } }
แนะนำ:
Muscle Powered Flappy Bird: 9 ขั้นตอน (พร้อมรูปภาพ)
Muscle Powered Flappy Bird: คุณอาจจำได้เมื่อ Flappy Bird ยึดครองโลกโดยพายุ ในที่สุดก็กลายเป็นที่นิยมอย่างมาก ผู้สร้างจึงลบมันออกจาก App Store เพื่อหลีกเลี่ยงการเผยแพร่ที่ไม่ต้องการ นี่คือ Flappy Bird อย่างที่คุณไม่เคยเห็นมาก่อน โดยการรวมองค์ประกอบบางส่วนจากชั้นวาง
Arduino Powered Painting Robot: 11 ขั้นตอน (พร้อมรูปภาพ)
Arduino Powered Painting Robot: คุณเคยสงสัยหรือไม่ว่าหุ่นยนต์สามารถสร้างภาพวาดและงานศิลปะที่น่าหลงใหลได้หรือไม่? ในโครงการนี้ ฉันพยายามทำให้สิ่งนั้นเป็นจริงด้วย Arduino Powered Painting Robot วัตถุประสงค์คือเพื่อให้หุ่นยนต์สามารถสร้างภาพวาดได้ด้วยตัวเองและใช้รีฟ
DIY Lipo Powered Mouse: 6 ขั้นตอน
DIY Lipo Powered Mouse: ในโครงการ Modify it เราจะปรับเปลี่ยนเมาส์ไร้สายที่ใช้แบตเตอรี่ aa และเปลี่ยนเป็นเมาส์ไร้สายแบบชาร์จ usb ฉันต้องการทำโปรเจ็กต์นี้เพราะแบตเตอรี่ aa มีอายุการใช้งานไม่นานเกินไปสำหรับฉัน และแบตเตอรี่หมดอย่างรวดเร็ว ผมจึงเลือก
ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker: 6 ขั้นตอน
ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker: เรารู้ว่าเราสามารถตายได้ตลอดเวลา แม้ว่าฉันจะตายได้ในขณะที่เขียนโพสต์นี้ ฉันเอง คุณ เราทุกคนต่างก็เป็นมนุษย์ปุถุชน โลกทั้งใบสั่นสะเทือนเพราะการระบาดของ COVID19 เรารู้วิธีป้องกันสิ่งนี้ แต่เดี๋ยวก่อน! เรารู้วิธีอธิษฐานและทำไมต้องอธิษฐาน เราทำ
Arduino Powered Multimeter: 8 ขั้นตอน (พร้อมรูปภาพ)
Arduino Powered Multimeter: ในโครงการนี้ คุณจะต้องสร้างโวลต์มิเตอร์และโอห์มมิเตอร์โดยใช้ฟังก์ชัน digitalRead ของ Arduino คุณจะสามารถอ่านค่าได้เกือบทุกมิลลิวินาที ซึ่งแม่นยำกว่ามัลติมิเตอร์ทั่วไปมาก สุดท้าย ข้อมูลสามารถเข้าถึงได้จาก