Агуулгын хүснэгт:
Видео: Arduino дижитал луужингийн төсөл: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Сайн уу? Энэхүү зааварчилгаанд та Arduino болон Processing IDE ашиглан дижитал луужин хэрхэн хийх талаар олж мэдэх болно. Энэ бол маш энгийн боловч сонирхолтой бөгөөд дажгүй харагдаж буй Arduino төсөл юм.
Та энэ хичээлийн демо жишээг дээрх видеоноос үзэх боломжтой. Та ийм сонирхолтой видеонуудыг миний YouTube суваг дээрээс, мөн HowToMechatronics.com вэбсайтаас электроникийн олон төсөл, хичээлүүдийг олж авах боломжтой.
Алхам 1: Шаардлагатай эд анги
Энэхүү төслийн хувьд танд дэлхийн соронзон орныг хэмжих Arduino самбар, MEMS соронзон хэмжүүр хэрэгтэй болно. Би MC5883L 3 - Axis Magnetometer агуулсан GY - 80 таслах самбарыг ашиглах болно.
Төслийн эх кодыг үргэлжлүүлэхийн өмнө танд MEMS соронз хэмжигч хэрхэн ажилладаг, I2C Харилцааны тусламжтайгаар GY - 80 таслагч самбарыг хэрхэн холбох, ашиглах талаар илүү дэлгэрэнгүй мэдээлэл хэрэгтэй бол та миний тусгай хичээлүүдийг шалгаж болно.
Алхам 2: Arduino эх код
Бидний хийх ёстой хамгийн эхний зүйл бол соронзон хэмжигчээс өгөгдлийг уншиж, боловсруулах IDE руу илгээх ноорог зургийг Arduino самбар дээр байршуулах явдал юм. Энд Arduino эх код байна:
/ * Arduino Compass * * Дежан Неделковский, * www. HowToMechatronics.com * */
#оруулах // I2C Arduino номын сан
#magnetometer_mX0 0x03 -ийг тодорхойлох
#магнитометр_mX1 0x04 #нарийвчлалтай соронз хэмжигч_mZ0 0x05 #нарийвчлалтай соронз хэмжигч_mZ1 0x06 #тодорхойлох магнитометр_mY0 0x07 #нарийвчлалтай соронзон хэмжүүр_mY1 0x08
int mX0, mX1, mX_out;
int mY0, mY1, mY_out; int mZ0, mZ1, mZ_out;
float heading, headingDegrees, headingFiltered, declination;
хөвөх Xm, Ym, Zm;
HMC5883 -ийн 0x1E // I2C 7 битийн хаягийг тодорхойлох
хүчингүй тохиргоо () {
// Цуваа ба I2C харилцааг эхлүүлэх Serial.begin (115200); Wire.begin (); саатал (100); Утас.beginTransmission (Magnetometer); Wire.write (0x02); // Wire.write горимын бүртгэлийг сонгох (0x00); // Тасралтгүй хэмжих горим Wire.endTransmission (); }
void loop () {
// ---- X-Axis Wire.beginTrmission (Magnetometer); // төхөөрөмж рүү дамжуулах Wire.write (Magnetometer_mX1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); if (Wire.available () <= 1) {mX0 = Wire.read (); } Wire.beginTrmission (Magnetometer); // төхөөрөмж рүү дамжуулах Wire.write (Magnetometer_mX0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); if (Wire.available () <= 1) {mX1 = Wire.read (); }
// ---- Y тэнхлэг
Wire.beginTransmission (Magnetometer); // төхөөрөмж рүү дамжуулах Wire.write (Magnetometer_mY1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); if (Wire.available () <= 1) {mY0 = Wire.read (); } Wire.beginTrmission (Magnetometer); // төхөөрөмж рүү дамжуулах Wire.write (Magnetometer_mY0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); if (Wire.available () <= 1) {mY1 = Wire.read (); } // ---- Z-Axis Wire.beginTrmission (Magnetometer); // төхөөрөмж рүү дамжуулах Wire.write (Magnetometer_mZ1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); if (Wire.available () <= 1) {mZ0 = Wire.read (); } Wire.beginTrmission (Magnetometer); // төхөөрөмж рүү дамжуулах Wire.write (Magnetometer_mZ0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); if (Wire.available () <= 1) {mZ1 = Wire.read (); } // ---- X тэнхлэг mX1 = mX1 << 8; mX_out = mX0+mX1; // Түүхий өгөгдөл // Өгөгдлийн хүснэгтээс: 0.92 mG/оронтой Xm = mX_out*0.00092; // Гауссын нэгж //* Дэлхийн соронзон орон 0.25-0.65 Гауссын хооронд хэлбэлздэг тул эдгээр утгыг ойролцоогоор авах шаардлагатай болно.
// ---- Y тэнхлэг
mY1 = mY1 << 8; mY_out = mY0+mY1; Ym = mY_out*0.00092;
// ---- Z тэнхлэг
mZ1 = mZ1 <0.073 рад хазайлт = 0.073; гарчиг += хазайлт; // (<0 гарчиг) толгой += 2*PI байвал тэмдгүүдийг хүндэтгэх үед залруулга хийх;
// Хазайлтын өнцгийг нэмсэний улмаас залруулга хийх
хэрэв (толгой> 2*PI) гарчиг -= 2*PI;
headDegrees = гарчиг * 180/PI; // Зэрэглэлийн нэгжийн гарчиг
// Гаралтын өнцгийг тэгшлэх / Бага нэвтрүүлэх шүүлтүүр
headFiltered = headFiltered*0.85 + headDegrees*0.15;
// Гарчигын утгыг Цуваа портоор дамжуулан IDE боловсруулж байна
Serial.println (гарчиг Шүүлтүүртэй);
саатал (50); }
Алхам 3: IDE эх кодыг боловсруулж байна
Өмнөх Arduino ноорогыг байршуулсны дараа бид өгөгдлийг Processing IDE руу хүлээн авч, Digital Compass зурах хэрэгтэй. Луужин нь арын дэвсгэр зураг, сумны тогтмол дүрс, луужингийн биеийн эргэх дүрсээс бүрдэнэ. Тиймээс Arduino -той тооцоолсон дэлхийн соронзон орны утгыг луужин эргүүлэхэд ашигладаг.
Энд Processing IDE -ийн эх код байна:
/ * Arduino Compass * * Dejan Nedelkovski, * www. HowToMechatronics.com * */ импорт боловсруулах.сериал. *; java.awt.event. KeyEvent импортлох; java.io. IOException импортлох;
Цуваа myPort;
PI дүрс imgCompass; PImage imgCompassArrow; PI зургийн суурь;
String өгөгдөл = "";
хөвөх гарчиг;
хүчингүй тохиргоо () {
хэмжээ (1920, 1080, P3D); гөлгөр (); imgCompass = loadImage ("Compass.png"); imgCompassArrow = loadImage ("CompassArrow.png"); дэвсгэр = loadImage ("Background.png"); myPort = шинэ цуваа (энэ нь "COM4", 115200); // myPort.bufferUntil ('\ n') цуваа холболтыг эхлүүлнэ; }
хүчингүй сугалаа () {
зураг (дэвсгэр, 0, 0); // Арын зургийг pushMatrix () ачаална; орчуулах (өргөн/2, өндөр/2, 0); // Координатын системийг дэлгэцийн төв рүү хөрвүүлдэг бөгөөд ингэснээр эргэлт яг төвд эргэдэгZ (радиан (толгой))); // Луужинг Z -тэнхлэгийн дүрсний эргэн тойронд эргүүлнэ (imgCompass, -960, -540); // Луужингийн зургийг ачаалдаг бөгөөд координатын системийг нүүлгэн шилжүүлэх үед дүрсийг -960x, -540y (дэлгэцийн тал хэмжээтэй) popMatrix () болгож тохируулах шаардлагатай болдог; // Координатын системийг анхны байрлал руу буцаана 0, 0, 0 зураг (imgCompassArrow, 0, 0); // popMatrix () функцын textSize (30) функцээс болж rotateZ () функцэд нөлөөлдөггүй CompassArrow зургийг ачаална; текст ("Гарчиг:" + гарчиг, 40, 40); // Гарчгийн утгыг дэлгэц дээр хэвлэнэ
саатал (40);
}
// Цуваа портоос өгөгдлийг уншиж эхэлдэг
void serialEvent (Serial myPort) {data = myPort.readStringUntil ('\ n'); // Цуваа портоос өгөгдлийг уншиж String хувьсагчийн "өгөгдөл" -д оруулдаг. гарчиг = хөвөх (өгөгдөл); // String утгыг Float утга болгон хөрвүүлэх}
Энэ төсөл танд таалагдана гэж найдаж байна. Хэрэв тийм бол та миний вэбсайтад зочилж илүү сонирхолтой төслүүдийг үзэх боломжтой.
Зөвлөмж болгож буй:
Arduino 7 сегментийн дэлгэцийн дижитал Ludo шоо төсөл: 3 алхам
Arduino 7 сегментийн дэлгэцийн төсөл бүхий дижитал людо шоо: Энэхүү төсөлд 7 товчлууртай дэлгэц нь товчлуур дарах бүрт 1-6 хүртэлх тоог санамсаргүй байдлаар харуулдаг. Энэ бол хүн бүрийн хийх дуртай төслүүдийн нэг юм. 7 сегментийн дэлгэцтэй хэрхэн ажиллах талаар энд дарж үзнэ үү: -7 сегмент
Дасан зохицох луужингийн бүс: 9 алхам
Дасан зохицох луужингийн бүс: Хойд зүг рүү чичирдэг Arduino хөдөлгүүртэй бүс. Хүний ойлголт зөвхөн бидний биологийн мэдрэхүйгээр хязгаарлагддаг байсан, гэхдээ бид үүнийг өөрчилж чадвал яах вэ? Байгальд соронзон орон, барометрийн даралт, орчныг мэдрэх чадвартай амьтад байдаг
ESPcopter ба Visuino - Луужингийн чиглэлийг 3D өнцөг болгон хөрвүүлэх: 6 алхам
ESPcopter ба Visuino - Луужингийн толгойг 3D өнцөг рүү хөрвүүлэх: ESPcopter нь Visuino -ийн хамгийн сүүлийн хувилбараар бүрэн дэмжигддэг бөгөөд энэ нь дроныг програмчлахад хамгийн хялбар болгодог! :-) Visuino -ийн тусламжтайгаар та мотороо хянах боломжтой. LED, хурдатгал хэмжигчтэй ажилладаг, Gyr
Matrix товчлуурыг ашиглан Arduino дижитал код түгжих төсөл: 9 алхам
Matrix товчлуурыг ашиглан Arduino дижитал код түгжих төсөл: Zio M Uno болон Hex 4x3 матриц товчлуур ашиглан Arduino болон Qwiic системээр дижитал код түгжих төхөөрөмж бүтээгээрэй. Төслийн тойм Энэ төслийн хувьд бид хэрэглэгчид оруулах, түлхүүр оруулах энгийн дижитал код түгжээг бүтээх болно. Энэ заавар дээр бид хэрэглээг харуулах болно
Эхлэгчдэд зориулсан Arduino -ийн 10 үндсэн төсөл! Нэг самбараар хамгийн багадаа 15 төсөл хий !: 6 алхам
Эхлэгчдэд зориулсан Arduino -ийн 10 үндсэн төсөл! Хамгийн багадаа 15 төслийг нэг самбараар хий !: Arduino Project & Хичээлийн зөвлөл; Arduino -ийн үндсэн 10 төслийг багтаасан болно. Бүх эх код, Gerber файл болон бусад. SMD байхгүй байна! Хүн бүрт хялбар гагнах. Зөөврийн болон сольж болох хялбар бүрэлдэхүүн хэсгүүд. Та хамгийн багадаа 15 төсөл хийх боломжтой