Агуулгын хүснэгт:
- Алхам 1: Танилцуулга
- Алхам 2: Эд анги, багаж хэрэгслийг цуглуулах
- Алхам 3: Arduino IDE суулгах
- Алхам 4: Код
- Алхам 5: Хэлхээ диаграм
- Алхам 6: Бүгдийг нэгтгэх
- Алхам 7: Дүгнэлт
Видео: Хиймэл ургамлын сэтгэл хөдлөлийн илэрхийлэгч (A.P.E.X.): 7 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Гэхдээ хүлээгээрэй … Илүү их зүйл байна!
Алхам 1: Танилцуулга
APEX гэж юу вэ?
APEX бол ухаалаг (хөөрхөн юм яриад ч хэрэггүй) ургамлын хяналтын төхөөрөмж юм. Зүгээр л ямар ч ургамалд залгаарай, энэ нь ургамлын "аз жаргал" түвшинг харуулах болно! Хэрэв та услахаа мартсан муу зуршилтай бол ургамлаа услах нь маш сайн сануулга юм.
Энэ яаж ажилдаг вэ?
Ид шид. Тоголсон юм! APEX нь ургамлын хөрсөнд оруулдаг чийг мэдрэгч дээр бэхлэгдсэн Arduino ашигладаг. Энэхүү мэдрэгч нь хөрсний чийгийн агууламжийг уншиж, дараа нь Arduino ямар царайг харуулахыг тооцоолно.
Гэхдээ яагаад?
Яагаад үгүй гэж?
Алхам 2: Эд анги, багаж хэрэгслийг цуглуулах
Үүнд орцгооё! Энэхүү зааварчилгааны хувьд танд маш олон эд анги, багаж хэрэгсэл хэрэгтэй болно. Аз болоход тэд бүгдийг доор жагсаав.
Микроконтроллеруудын уралдааны сүнсээр энэхүү төслийг Амазон дээр худалдаж авсан эд ангиудаар бүрэн хийсэн болно! (ивээн тэтгээгүй)
Сэлбэгийн жагсаалт:
- Ардуино Уно
- 8х8 хэмжээтэй LED дэлгэц
- Мэдрэгч багтаамжийн багтаамж
- Чийгийн мэдрэгч
- 9V батерейны холбогч
- 9V батерей
Багаж хэрэгслийн жагсаалт:
- 22 хэмжигч утас
- Цахилгаан соронзон хальс
- Утас хуулагч
- Гагнуурын төмөр
- Цэвэрлэгч насос
Шаардлагатай бүх тоног төхөөрөмжийг цуглуулсны дараа Arduino програм хангамжийг тохируулах цаг болжээ.
Алхам 3: Arduino IDE суулгах
Энэ төслийг ажиллуулахын тулд бид Arduino програмчлах чадвартай байх шаардлагатай болно. Үүний тулд Arduino Integrated Development Environment (IDE) -ийг компьютер дээрээ татаж суулгах шаардлагатай. Энэ бол маш энгийн тайлбар боловч би танд үйл явцыг танилцуулах болно.
1. Arduino вэбсайтад зочилно уу
2. Татаж авах хуудас руу очно уу (Програм хангамж> Татаж авах)
3. Үйлдлийн системийнхээ татаж авах линк дээр дарна уу
Тэмдэглэл: Хөтөлбөр нь Windows, Mac, Linux дээр ажиллах болно.
4. Windows дээр суулгах
- Татаж авсан файлыг ажиллуулахын тулд хоёр дарна уу
- Лицензийг зөвшөөрөхийн тулд "Зөвшөөрч байна" дээр дарна уу
- Үлдсэн зааврыг дагана уу
- Програмыг одоо суулгах ёстой!
(Хэрэв та төөрсөн бол дэлгэцийн агшинг заавал үзээрэй)
5. Mac дээр суулгах
- Татаж авсан файл дээр дарна уу
- "Нээх" -ийг сонгоно уу
- Хөтөлбөрийг автоматаар суулгаж ажиллуулах болно!
(Хэрэв та эргэлзэж байвал дэлгэцийн агшинг заавал үзээрэй)
6. Энэ бол боллоо
Тэгээд та дууссан! Та одоо Arduino IDE -ийг систем дээрээ татаж авлаа.
Алхам 4: Код
Энэ алхам бол кодын тухай юм. Энэ бол нэлээд богино хөтөлбөр, тиймээс би та бүхэнтэй энэ талаар ярилцаж, хэрхэн ажилладаг талаар тайлбарлах болно. Нэгдүгээрт, товч тойм, дараа нь гүнзгий тайлбар, эцэст нь Arduino руу хэрхэн түлхэх талаар!
Товч тойм
Кодын дэлгэрэнгүй тайлбарыг сонирхохгүй байгаа хүмүүст би TL; DR сегментийг өгч байна! Энд үндсэн тайлбар байна. Arduino нь чийг мэдрэгчийн утгыг хэдэн секунд тутамд авдаг. Энэ мэдээллийг дараа нь тодорхой царайг тооцоолох, харуулахад ашигладаг! Төгсгөлд нь багтаамжтай мэдрэгчтэй товчлуурыг дэлгэцийг асааж унтраадаг жаахан код байдаг. Маш энгийн, тийм үү?
Нити Гритти
Хичээлийн энэ хэсэг нь бүхэл бүтэн програм хэрхэн ажилладаг талаар маш их сонирхож буй хүмүүст зориулагдсан болно. Би дээр дурдсан дэлгэцийн агшинг өгөх бөгөөд энэ нь миний юу яриад байгааг ойлгоход тусалж, мөн кодын зарим мөрийг энэ тайлбарт оруулах болно.
Энэ програмыг таван хэсэгт хуваадаг.
- Номын сан, хувьсагч үүсгэх зэрэг
- Тохируулах функц
- Нүүрний хувирлын функцууд
- Matrix функц дээр Arduino бичих
- Loop функц
Номын сан, хувьсагч үүсгэх зэрэг:
Энэ кодын эхний хэсэг нь бидний ашиглах хувьсагч, номын сангийн тухай юм.
#"LedControlMS.h" оруулах
#Define TouchSensor 7 LedControl lc = LedControl (12, 11, 10, 1); int sensorPin = A5; int sensorValue = 0; bool эхэлсэн = худал; bool on = үнэн; boolean дарагдсан = LOW;
Эхний мөрөнд LedControlMS нэртэй номын сан багтсан болно. Энэхүү номын сан нь LED дэлгэц рүү утгыг илгээх боломжтой байх шаардлагатай. Дараагийн мөр нь мэдрэгч мэдрэгчийн зүүг 7 болгож тохируулах тодорхойлолт юм. Үүний дараа бид LED дэлгэц, чийг мэдрэгч, түүний үнэ цэнийг тодорхойлох өөр гурван хувьсагчтай болно. Сүүлийн гурван мөр нь мэдрэгчтэй товчлуур ба дэлгэцийн төлөв байдлыг зохицуулдаг логикууд юм. Үүний дараа бид байтын утгуудтай болно.
байт инээмсэглэл [4] = {B00000100, B00110010, B01100100, B01100000}; байтын гэнэтийн бэлэг [4] = {B00001110, B00001010, B01101110, B10010000}; байт meh [4] = {B00000100, B00100100, B00100100, B00100000}; байт гунигтай [4] = {B00000010, B01100100, B00110010, B00110000}; үхсэн байт [6] = {B00001010, B00100100, B00101010, B00100000, B01100000, B01101010}; байтын алдаа [8] = {B00111100, B01000010, B10100001, B10010001, B10001001, B10000101, B01000010, B00111100}; // Evil Faces байт esmile [4] = {B00000010, B00101010, B01000100, B01000000}; байт elaugh [4] = {B00000010, B00101010, B01100100, B01100000}; байт эплайн [4] = {B00000010, B00101010, B00100100, B00100000}; байт eyell [4] = {B00000001, B01101001, B01100010, B01100000}; байт эталк [4] = {B00000001, B00101001, B01100010, B01100000};
Эдгээр утгууд нь APEX -ийн бүх нүүр царайг илэрхийлдэг. Байт бүр нь өгөгдсөн эгнээний пиксел бүрийн төлөв байдлыг тодорхойлдог олон бит агуулсан массив юм. "1" ба "0" нь асаах/унтраахыг тус тус илэрхийлнэ.
Тохируулах функц:
Дараагийн хэсэгт шилжихэд бид тохиргооны функцтэй болно.
void setup () {// MS Serial Output Serial.begin (9600);
pinMode (TouchSensor, INPUT);
// LED Matrix Setup lc.shutdown (0, худал); lc.setIntensity (0, 4); lc.clearDisplay (0); }
Нэр нь үүнийг маш сайн тайлбарладаг. Энд бид мэдрэгч мэдрэгч, дэлгэцээ "тохируулдаг". Эхний хоёр мөр нь бидний цуваа гаралтыг эхлүүлдэг (дибаг хийхэд ашигладаг). Гурав дахь мөр нь мэдрэгч мэдрэгчийн зүүг оролт болгож, сүүлийн дөрвөн мөр нь дэлгэцийг эхлүүлнэ.
Нүүрний хувирлын функцууд:
Энэ бол магадгүй хамгийн урт хэсэг боловч бүх зүйл маш энгийн бөгөөд давтагддаг.
void эвдэрсэн () {lc.setRow (0, 0, алдаа [0]); lc.setRow (0, 1, алдаа [1]); lc.setRow (0, 2, алдаа [2]); lc.setRow (0, 3, алдаа [3]); lc.setRow (0, 4, алдаа [4]); lc.setRow (0, 5, алдаа [5]); lc.setRow (0, 6, алдаа [6]); lc.setRow (0, 7, алдаа [7]); }
void happy () {
lc.setRow (0, 0, инээмсэглэл [0]); lc.setRow (0, 1, инээмсэглэл [1]); lc.setRow (0, 2, инээмсэглэл [2]); lc.setRow (0, 3, инээмсэглэл [3]); lc.setRow (0, 4, инээмсэглэл [3]); lc.setRow (0, 5, инээмсэглэл [2]); lc.setRow (0, 6, инээмсэглэл [1]); lc.setRow (0, 7, инээмсэглэл [0]); }
void plain () {
lc.setRow (0, 0, meh [0]); lc.setRow (0, 1, meh [1]); lc.setRow (0, 2, meh [2]); lc.setRow (0, 3, meh [3]); lc.setRow (0, 4, meh [3]); lc.setRow (0, 5, meh [2]); lc.setRow (0, 6, meh [1]); lc.setRow (0, 7, meh [0]); }
хоосон гайхсан () {
lc.setRow (0, 0, гэнэтийн бэлэг [0]); lc.setRow (0, 1, гэнэтийн бэлэг [1]); lc.setRow (0, 2, гэнэтийн бэлэг [2]); lc.setRow (0, 3, гайхшрал [3]); lc.setRow (0, 4, гайхшрал [3]); lc.setRow (0, 5, гэнэтийн бэлэг [2]); lc.setRow (0, 6, гэнэтийн бэлэг [1]); lc.setRow (0, 7, гэнэтийн бэлэг [0]); }
хоосон үхэх () {
lc.setRow (0, 0, нас барсан [0]); lc.setRow (0, 1, нас барсан [1]); lc.setRow (0, 2, нас барсан [2]); lc.setRow (0, 3, нас барсан [3]); lc.setRow (0, 4, нас барсан [4]); lc.setRow (0, 5, нас барсан [5]); lc.setRow (0, 6, нас барсан [1]); lc.setRow (0, 7, нас барсан [0]); }
хоосон уйлах () {
lc.setRow (0, 0, гунигтай [0]); lc.setRow (0, 1, гунигтай [1]); lc.setRow (0, 2, гунигтай [2]); lc.setRow (0, 3, гунигтай [3]); lc.setRow (0, 4, гунигтай [3]); lc.setRow (0, 5, гунигтай [2]); lc.setRow (0, 6, гунигтай [1]); lc.setRow (0, 7, гунигтай [0]); }
void evilsmile () {
lc.setRow (0, 0, esmile [0]); lc.setRow (0, 1, esmile [1]); lc.setRow (0, 2, esmile [2]); lc.setRow (0, 3, esmile [3]); lc.setRow (0, 4, esmile [3]); lc.setRow (0, 5, esmile [2]); lc.setRow (0, 6, esmile [1]); lc.setRow (0, 7, esmile [0]); }
void evillaugh () {
lc.setRow (0, 0, elaugh [0]); lc.setRow (0, 1, elaugh [1]); lc.setRow (0, 2, elaugh [2]); lc.setRow (0, 3, elaugh [3]); lc.setRow (0, 4, elaugh [3]); lc.setRow (0, 5, elaugh [2]); lc.setRow (0, 6, elaugh [1]); lc.setRow (0, 7, elaugh [0]); }
void evilplain () {
lc.setRow (0, 0, eplain [0]); lc.setRow (0, 1, эплайн [1]); lc.setRow (0, 2, эплайн [2]); lc.setRow (0, 3, эплайн [3]); lc.setRow (0, 4, эплайн [3]); lc.setRow (0, 5, эплайн [2]); lc.setRow (0, 6, эплайн [1]); lc.setRow (0, 7, eplain [0]); }
void evilyell () {
lc.setRow (0, 0, eyell [0]); lc.setRow (0, 1, eyell [1]); lc.setRow (0, 2, eyell [2]); lc.setRow (0, 3, eyell [3]); lc.setRow (0, 4, eyell [3]); lc.setRow (0, 5, eyell [2]); lc.setRow (0, 6, eyell [1]); lc.setRow (0, 7, eyell [0]); }
void eviltalk () {
lc.setRow (0, 0, etalk [0]); lc.setRow (0, 1, etalk [1]); lc.setRow (0, 2, etalk [2]); lc.setRow (0, 3, etalk [3]); lc.setRow (0, 4, etalk [3]); lc.setRow (0, 5, etalk [2]); lc.setRow (0, 6, etalk [1]); lc.setRow (0, 7, etalk [0]); }
Эдгээр функцууд нь эхний хэсгийн бидний байтын утгыг ашиглан нүүрний хувирал бүрийг тодорхойлоход хэрэглэгддэг. Мөр бүр x байрлал ба байтын утгыг тодорхойлж, дараа нь утгыг тухайн баганад хэрэглэнэ. Нүүрний утгыг харуулах олон мөр байдаг тул зарим функцууд илүү олон мөр шаарддаг. Нүүр бүр тэгш хэмтэй байдаг тул бид мөрүүдийг давтдаг.
WriteArduinoOnMatrix функц:
Дөрөв дэх хэсгийг LED дэлгэц дээр зөв царайг тооцоолох, бичихэд ашигладаг. Энэ нь усны утгыг шалгадаг, дараа нь өмнөх хэсгийн өөр өөр функцуудыг дуудаж дэлгэцийг тохируулдаг хэд хэдэн өөр хэллэгээс бүрдэнэ.
void writeArduinoOnMatrix () {if (sensorValue> 0 && sensorValue 30 && sensorValue 100 && sensorValue 200 && sensorValue 400 && sensorValue 650 && sensorValue <= 800) {гайхсан (); } өөр {эвдэрсэн (); }}
Мэдрэгч ажлын хүрээнээс гадуур гарсан тохиолдолд бид "эвдэрсэн" нүүрийг нэмж байсныг та анзаарч магадгүй юм. Энэ нь зарим хачин хоосон алдаанаас урьдчилан сэргийлж, код дотор юу болж байгааг илүү сайн ойлгох боломжийг олгодог.
Loop функц:
Хамгийн сүүлд гэхдээ хамгийн чухал нь давталтын функц юм. Энэ код нь нэрнийхээ хэлснийг яг таг хийдэг, энэ нь эргэлддэг! Хэдийгээр энэ функцэд хэд хэдэн мөр байдаг боловч энэ нь үнэхээр энгийн зүйл юм. Код нь эхлээд товчлуурын төлөвийг уншиж, дэлгэц нь "On" эсэхийг харах болно. Хэрэв энэ нь үнэн гэж үзвэл WriteArduinoOnMatrix функцийг дуудаж, дараа нь APEX дээр нүүр зурах болно. Энэ функц нь эргэдэг тул дэлгэцийг бидний хүссэн хэмжээгээр шинэчлэх болно. Энэ хоцролтыг хойшлуулах хугацааны хувьсагч тодорхойлдог.
void loop () {if (эхэлсэн == үнэн) {delaytime = 3000; } // Унших товчлуур дарагдсан = digitalRead (TouchSensor);
хэрэв (дарагдсан) {
if (on == true) {lc.clearDisplay (0); on = худал; саатал (саатал); } өөр {дээр = үнэн; саатал (саатал); }} sensorValue = analogRead (sensorPin); саатал (саатал); if (on == true) {// Draw Faces writeArduinoOnMatrix (); }
эхэлсэн = үнэн;
}
Энэ бол кодын бүх зүйл юм. Та одоо энэ бүхэн хэрхэн ажилладаг талаар илүү сайн ойлголттой болсон бөгөөд энэ мэдлэгээ ашиглан үүнийг өөрийн төсөлд тохируулж эхэлнэ гэж найдаж байна!
Кодыг Arduino руу түлхэж байна
Одоо бид бүх кодыг авч үзсэн тул үүнийг Arduino руу оруулах цаг болжээ! Аз болоход IDE нь үүнийг маш энгийн болгодог. Та хийх ёстой зүйл бол Arduino -г USB кабелиар компьютер дээрээ залгаж, IDE -ийн зүүн дээд буланд байгаа баруун сумыг дарахад л хангалттай. Кодыг түлхэж өгөөч, хэрэв та зөв хийсэн бол програмын доод хэсэгт амжилттай гэсэн мессеж гарч ирэх болно!
Алхам 5: Хэлхээ диаграм
Кодтой адил хэлхээний диаграм нь тийм ч төвөгтэй биш юм. Энэ нь зөвхөн гурван мэдрэгч ба Arduino-ээс бүрдэх тул би тус бүрийн зүүг хэлж өгөх болно, хэрэв танд өөр тусламж хэрэгтэй бол дээрх диаграмыг үзнэ үү.
LED дэлгэц:
- VCC -> 5V
- GRD -> GRD
- DIN -> 12 -р зүү
- CS -> Зүү 10
- CLK -> Pin 11
Чийгийн мэдрэгч:
- Эерэг -> 5V
- Сөрөг -> GRD
- Дохио -> A5
Мэдрэгч багтаамжийн багтаамж:
- VCC -> 5V
- GRD -> GRD
- SIG -> 7
Хэт хэцүү биш, тийм үү? Хэрэв танд энэ залгуурыг гадагшлуулахад ямар нэгэн асуудал гарвал доорх видеог үзнэ үү.
Алхам 6: Бүгдийг нэгтгэх
Энэ нь хоорондоо хэрхэн нийцэж байгааг текстээр тайлбарлахад хэцүү байгаа тул энэ хэсгийн видеог үзэхийг санал болгож байна. Би яг үнэндээ өөрийнхөө бүтээлийг хэрхэн яаж нэгтгэж байгаагаа тайлбарлахгүй байна, энэ нь хэтэрхий хэцүү юм. Гэхдээ тодорхой бус зүйлийг тайлбарлахын тулд би утсан холболтыг гагнаж, самбарын ар талд ороосон. Дараа нь би мэдрэгчийг байрлуулж, цахилгаан соронзон хальс ашиглан бүгдийг нь хамтад нь хийв. Эцэст нь би үүнийг 9V батерейгаар туршиж үзсэн бөгөөд энэ нь ажиллаж байгааг мэдсэний дараа батерейг нуруун дээр нь байрлуулж, наажээ. Өмнө нь хэлсэнчлэн энэ алхамыг үзэхийн тулд видеог үзээрэй, энэ нь маш жижигхэн гагнуурын хэсэгтэй бөгөөд утаснуудаа зөв бооход тусална. Хэрэв та төөрөлдсөн бол үүнийг түр зогсоох эсвэл хагас хурдтай тоглож болно.
Баяр хүргэе! Хэрэв бүх зүйл амжилттай болсон бол та одоо бүрэн ажиллагаатай APEX төхөөрөмжтэй байх ёстой!
Төхөөрөмжөө туршихын тулд усалдаг ургамлыг олж залгаарай. Энэ нь аз жаргалтай эсвэл гайхаж байгааг олж мэдэх ёстой бөгөөд энэ нь ажиллах ёстой гэсэн үг юм !!! Төслийг дуусгахад маш сайн ажил!
Алхам 7: Дүгнэлт
Энэ бол зааварчилгаа юм! Төслийг шалгаж үзсэнд баярлалаа! Асуулт, сэтгэгдлээ доор бичээд Urban Farming Guys -ийг дагаж ийм гайхалтай хичээлүүдийг үзээрэй. Таны APEX -ийн бүтээн байгуулалт хэрхэн явагдсаныг бид сонсох дуртай бөгөөд зургууд маш их талархаж байна! Түр зогссонд дахин баярлалаа, өдрийг сайхан өнгөрүүлээрэй!
(Энэхүү зааварчилгаа нь Ургамлын эможи гэсэн хуучин төслөөс санаа авсан болно.)
P. S. Энэхүү зааварчилгаа нь микроконтроллеруудын тэмцээнд орсон тул бидэнд саналаа өгөхөө бүү мартаарай! Бид үүнд маш их талархаж байна:)
P. P. S. Make сэтгүүлд APEX -ийг авцгаая! Энд саналаа өгөөрэй! Баярлалаа:)
Зөвлөмж болгож буй:
Гоёмсог сэтгэл хөдлөлийн гэрэл: 5 алхам (зурагтай)
Гайхамшигтай сэтгэл хөдлөлийн гэрэл: Өнгө, сэтгэл хөдлөлийг салгаж болохгүй. Өнгө нь сэтгэлийн уур амьсгалыг бүрдүүлэхэд маш чухал үүрэг гүйцэтгэдэг. Энэ нь биднийг баярлуулах эсвэл гуниглах, бухимдах, тайвшруулах, анхаарлаа төвлөрүүлэх, сатааруулах болно. Таны хийх ёстой зүйл бол өнгийг зөв тохируулах явдал бөгөөд таны өдрийг гайхалтай сайхан өнгөрүүлэх болно
Сэтгэл хөдлөл илэрхийлэгч: 4 алхам
Сэтгэл хөдлөл илэрхийлэгч: Танилцуулга: Энэхүү машин нь сэтгэл хөдлөлөө илэрхийлэгч бөгөөд мэдрэмжээ илэрхийлэх чадваргүй хүмүүст өөрсдийн мэдрэмжийг илэрхийлэхэд тусалдаг. Энэхүү машин нь тусламж хэрэгтэй байгаа эсвэл хэрэгтэй зүйлийнхээ талаар гомдоллохыг сонсох шаардлагатай хүмүүст туслах болно
Arduino матрицын сэтгэл хөдлөлийн царайг харуулах: 4 алхам
Arduino матрицын дэлгэцийн сэтгэл хөдлөлийн царай: Өнөөдөр бид Arduino болон Matrix Display 8 x 8 ашиглан өөр өөр царай гаргаж байна
Роботоос зайлсхийх сэтгэл хөдлөлийн саад тотгор: 11 алхам
Роботоос зайлсхийх сэтгэл хөдлөлийн саад тотгор: Сэтгэл хөдлөлийн робот. Энэхүү робот нь уйтгар гуниг, аз жаргал, уур хилэн, айдас гэх мэт неопикселүүд (RGB LED) бүхий сэтгэл хөдлөлийг харуулдаг бөгөөд тодорхой сэтгэл хөдлөлийнхөө явцад саад бэрхшээлээс зайлсхийж, тодорхой хөдөлгөөн хийх боломжтой. Энэхүү роботын тархи нь Arduino мега юм. ke
Муу байж болох сэтгэл хөдлөлийн сандал: 5 алхам (зурагтай)
Муу байж болох сэтгэл хөдлөлийн сандал: Сандал бол маш энгийн тавилга бөгөөд үүнийг ихэвчлэн энгийн зүйл гэж үздэг. 4 хөлний бат бөх хийц, зөөлөн суудалтай тул хүмүүсийг зүгээр сууж, суухыг урьж байна. Энэ бол батлагдсан найдвартай технологи бөгөөд