Агуулгын хүснэгт:
- Алхам 1: Хяналтын самбарыг загварчлах
- Алхам 2: Товчлуурыг дарна уу
- Алхам 3: Потенциометр
- Алхам 4: Ротари кодлогч
- Алхам 5: Бүгдийг нэгтгэх
- Алхам 6: Код + жагсаал
Видео: Photoshop -ийн мини хяналтын самбар (Arduino): 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энд би танд Photoshop дээр хурдан ажиллахад туслах жижиг хэрэгсэл хэрхэн хийхийг зааж өгөх болно.
PS -д тусгайлан зориулж хийсэн гарууд шинэ зүйл биш боловч яг надад хэрэгтэй зүйлийг санал болгодоггүй. Зураач хүний хувьд Photoshop -т ажиллах ихэнх цагаа сойзны тохиргоог хийхэд зориулдаг бөгөөд энгийн товчлуурууд нь миний ажлын урсгалд тохирох хяналтыг өгдөггүй гэж би боддог. Тиймээс би өөрийн хүсдэг аналог харилцан үйлчлэлийг өгөхийн тулд товчлуургүй, товчлуурыг өөрийн гараар хийхээр шийдсэн.
Ажлын арга нь маш энгийн: микроконтроллерийг Photoshop -той харьцуулахын тулд бид анхдагч товчлолуудын давуу талыг ашигладаг. Компьютер гар/хулгана хэлбэрээр унших боломжтой самбартай бол бидний хийх ёстой зүйл бол кодын энгийн мөрүүдийг ашиглан компьютерт оролт бүрийг товчлуур даралтын хослолоор уншихыг хэлнэ үү. Одоо буцаах товчлуур бол зүгээр л нэг товчлуур дарахад л болно!
Эхэлцгээе! Энэ төслийн хувьд танд хэрэгтэй болно:
- 1 Sparkfun ProMicro (эсвэл Arduino Leonardo, зөвлөдөггүй)
- 1 микро USB адаптер
- 6 товчлуур (эсвэл таны дуртай тоо)
- 10к Ом эсэргүүцэл (товчлуур бүрт 1)
- 1 потенциометр
- 1 эргэдэг кодлогч
- утас, талх, перфорд, гагнуур, толгойн зүү гэх мэт.
Та энэ төсөлд Arduino Leonardo ашиглаж болно, гэхдээ ProMicro нь ижил atmega32u4 чипийг ашигладаг, илүү олон зүүтэй, хамаагүй жижиг хэлбэрээр ирдэг бөгөөд энэ нь гарны хувьд төгс болгодог.
Arduino IDE дээр ProMicro програмчлахын тулд та эхлээд зарим зүйлийг тохируулах хэрэгтэй болж магадгүй юм. Та энэ талаар илүү ихийг SparkFun-ийн гарын авлагаас уншиж болно:
Хэрэв таны компьютер төхөөрөмжийг олоход асуудалтай байгаа бол таны ашиглаж буй микро USB зөвхөн тэжээлээр хангагдаагүй бөгөөд өгөгдөл дамжуулах боломжтой эсэхийг шалгаарай.
Энэ бол миний анхны Arduino төсөл бөгөөд эхлэгчдэд тохиромжтой.
Алхам 1: Хяналтын самбарыг загварчлах
Гагнахаасаа өмнө програмаа талхны самбар дээр туршиж үзэхийг зөвлөж байна.
Эндээс та миний схемийг харж болно.
1 ба 2 товчлуурууд нь буцаах, дахин хийх, 3 -аас 5 хүртэл нь Brush, Eraser, Lasso хэрэгсэлд зориулагдсан бол 6 -р товчлуур нь хурдан хадгалах товчлуур юм. Кодлогч ба потметр нь тус тусдаа хэмжээ ба тунгалаг байдлыг хянадаг.
Би зүүн гартай бөгөөд зохион байгуулалтыг ашиглахад хамгийн тохь тухтай байдлаар зохион бүтээсэн гэдгийг анхаарна уу. Талхны самбараа ашиглах мөчийг хараарай, та хянагчаа ямар функцээр хангаж өгөхийг хүсч байгаагаа, танд хамгийн сайн тохирдог зүйл, эцэст нь үүнийг хийхийн тулд танд нэмэлт эд анги хэрэгтэй эсэхийг бодож үзээрэй.
Алхам 2: Товчлуурыг дарна уу
Товчнууд нь хэрэгжүүлэхэд хамгийн хялбар байдаг. Кодыг харцгаая:
#оруулах
const int товчлуурууд = {2, 3, 4, 5, 6, 7, 8, 9}; // бүх товчлуурын голын массив char ctrlKey = KEY_LEFT_GUI; // энэ сонголтыг Windows болон Linux -д ашиглах: // char ctrlKey = KEY_LEFT_CTRL; char shiftKey = KEY_LEFT_SHIFT; char altKey = KEY_LEFT_ALT; void setup () {// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: Serial.begin (9600); Keyboard.begin (); // Товчнууд - массивыг тойрч, дарах эсэхийг шалгана уу (int i = button [0]; i <(sizeof (button)/sizeof (button [0]))+button [0]; ++ i) { pinMode (i, INPUT); }} boolean readButton (int pin) {// хэрэв (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {буцах үнэн; }} худал буцаах; } void doAction (int pin) {// task switch (pin) гүйцэтгэх {// ---- Товчлолууд ---- // Тохиолдлыг буцаах 4: Keyboard.press (ctrlKey); Keyboard.print ('z'); Serial.print ("оролт"); Serial.println (зүү); саатал (200); Keyboard.releaseAll (); завсарлага; // хэргийг 5 дахин хийх: Keyboard.press (ctrlKey); Keyboard.print ('y'); Serial.print ("оролт"); Serial.println (зүү); саатал (200); Keyboard.releaseAll (); завсарлага; // Brush case 6: Keyboard.press ('b'); Serial.print ("оролт"); Serial.println (зүү); саатал (200); Keyboard.releaseAll (); завсарлага; // Eraser case 7: Keyboard.press ('e'); Serial.print ("оролт"); Serial.println (зүү); саатал (200); Keyboard.releaseAll (); завсарлага; // Lasso кейс 8: Keyboard.press ('l'); Serial.print ("оролт"); Serial.println (зүү); саатал (200); Keyboard.releaseAll (); завсарлага; // Case 9 -ийг хадгалах: Keyboard.press (ctrlKey); Keyboard.print ('s); Serial.print ("оролт"); Serial.println (зүү); саатал (200); Keyboard.releaseAll (); завсарлага; анхдагч: Keyboard.releaseAll (); завсарлага; }}
void loop () {
// давтан ажиллуулахын тулд үндсэн кодоо энд оруулна уу.
for (int i = button [0]; i <sizeof (button)/sizeof (button [0])+button [0]; ++ i) {if (readButton (i)) {doAction (i); }} // Өөрчлөгчдийг дахин тохируулах Keyboard.releaseAll ();
}
Тэд харьцангуй шулуун юм. Компьютерийг товчлуурыг товчлуур гэж танихын тулд бид Keyboard.press () функцийг ашигладаг. Тиймээс, буцаах товчлолыг (ctrl+z) идэвхжүүлэхийн тулд бид Keyboard.press (ctrlKey), дараа нь Keyboard.press ('z') -ийг ашигладаг. Эдгээр функцэд хандахын тулд та Keyboard.h -ийг оруулах ёстой бөгөөд гарыг эхлүүлэх хэрэгтэй болно гэдгийг санаарай.
Оролтын зүү нь массивт хадгалагддаг тул та бүгдийг loop () функцээр хялбархан давтаж болно. Массивын массивын хэмжээг массивын элемент дээр хувааж, массивын уртыг c ++ дээр ашиглах нэг хялбар арга. Бид нэг товчлуур дарагдсан эсэхийг шалгахын тулд бүх товчлуурыг эргэлдүүлдэг.
Аливаа зүйлийг эмх цэгцтэй байлгахын тулд би товчлуурынхаа бүх үйлдлийг пин дугаарыг аргумент болгон ашигладаг функцын switch мэдэгдэлд хадгалсан.
Хэрэв та товчлууруудаа өөр өөр зүйл хийхийг хүсч байвал эсвэл өөр товчлуур нэмэхийг хүсч байвал doAction функцийн агуулгыг засаарай!
Физик товчлуурууд хэрхэн ажилладаг тул бид тэдгээрийг хасах хэрэгтэй болно. Энэ нь товчлуурууд хаваржсаны улмаас хүсээгүй даралтыг уншихаас урьдчилан сэргийлэх зорилготой юм. Үүнийг хийх олон арга бий, гэхдээ би үүнийг анхаарч үздэг энгийн readButton () функцийг нэмсэн.
Зүгээр л товчлууруудаа 10к резистороор залгаарай, тэгвэл та алтан өнгөтэй болно!
Алхам 3: Потенциометр
Одоо потметр дээр:
#оруулах
int dial0 = 0; void setup () {// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: Serial.begin (9600); Keyboard.begin (); // Dials dial0 = analogRead (0); залгах0 = газрын зураг (залгах0, 0, 1023, 1, 20); } void dialAction (int dial, int newVal, int lastVal) {шилжүүлэгч (залгах) {// Ил тод байдлын тохиолдол 0: саатал (200); if (newVal! = lastVal) {int decim = ((newVal*5)/10); int нэгж = ((newVal *5)% 10); if (newVal == 20) {Keyboard.write (48+0); Keyboard.write (48+0); Serial.println ("хамгийн их залгах 1"); } else {decim = constrain (decim, 0, 9); нэгж = хязгаарлах (нэгж, 0, 9); Serial.println (newVal*2); Keyboard.write (48+decim); Keyboard.write (48+нэгж); }} залгах0 = шинэВал; завсарлага; анхдагч: завсарлага; }} // ------------------ MAIN LOOP ------------------------- хүчингүй байна loop () {// давтан ажиллуулахын тулд үндсэн кодоо энд оруулна уу: // Opacity // delay (500); int val0 = analogRead (0); val0 = газрын зураг (val0, 0, 1023, 1, 20); //Serial.print ("залгах0:"); //Serial.println(val0); if (val0! = dial0) {// dialAction (0, val0, dial0) хийх; }}
Потметр нь ижил логикийг баримталдаг боловч арай илүү зальтай байдаг.
Эхлээд бид үүнийг хэрхэн ажиллуулахыг хүсч байгаагаа харцгаая: Photoshop нь сойзны тунгалаг байдлыг өөрчлөх хэд хэдэн товчлолуудтай. Хэрэв та ямар нэгэн тоон товчлуур дарвал тунгалаг байдал нь*10 гэсэн тоотой тэнцэнэ. Гэхдээ хэрэв та хоёр тоог дарвал энэ нь хоёр дахь дугаарыг нэгж болгон уншиж, танд илүү нарийн хяналт өгөх болно.
Тиймээс бид потметрийг эргэлтийг хэдэн хувьтай харьцуулахыг хүсч байна, гэхдээ үүнийг үргэлж хиймээргүй байна. Бид потметрийг эргүүлэх үед л тунгалаг байдлыг өөрчлөхийг хүсч байна. Тиймээс бид analogRead () утгатай харьцуулах нэмэлт утгыг хадгалдаг бөгөөд ялгаа гарсан тохиолдолд л үйлдлийн скриптийг ажиллуулдаг.
Бидний анзаарах өөр нэг асуудал бол analogRead -ийн өгөөжийг хэрхэн оролт болгон хувиргах явдал юм. Int -ийг мөр болгон хувиргах хялбар арга байхгүй тул бид int -ийг өөрөө ашиглах хэрэгтэй болно. Гэсэн хэдий ч, хэрэв та Keyboard.press (int) гэж бичвэл оролт таны хүссэнээр биш харин өөр түлхүүр дарагдах болно.
Учир нь таны гарын товчлуурууд бүхэл тоогоор кодлогдсон бөгөөд түлхүүр бүр өөрийн гэсэн индекстэй байдаг. Num товчлуурыг зөв ашиглахын тулд та тэдний индексийг ASCII хүснэгтээс хайх хэрэгтэй болно:
Таны харж байгаагаар num товчлуурууд 48 -р индексээс эхэлдэг. Тиймээс зөв товчлуурыг дарахын тулд бид 48 -ийн залгах утгыг нэмэх л үлдэх болно. Аравтын орон, нэгжийн утга нь тусдаа даралт юм.
Эцэст нь үнэ цэнийг нааш цааш харайлгахгүй байх арга бидэнд хэрэгтэй байна. Учир нь хэрэв та газрын зураг бүхий залгах товчийг ашиглахыг оролдвол (val0, 0, 1023, 0, 100) үр дүн нь маш аймшигтай байх болно. Бид товчлууруудыг хэрхэн салгасантай адил нарийвчлалыг золиослох замаар үүнийг засах болно. Үүнийг 1-20 болгож, дараа нь аргументын утгыг 5-аар үржүүлэх нь хүлээн зөвшөөрөгдөх буулт болохыг олж мэдсэн.
Потенциометрийг холбохын тулд 5V утас, газардуулгын утас, аналог оролтын утсыг холбоход л ямар ч асуудал гарах ёсгүй.
Хөгжилтэй баримт: Хэрэв та Lasso гэх мэт хэрэгслийг сонгохдоо энэ товчлолыг ашиглавал энэ нь давхаргын тунгалаг байдлыг өөрчлөх болно. Анхаарах зүйл.
Алхам 4: Ротари кодлогч
Ротари кодлогч нь бага зэрэг потенциометртэй төстэй боловч хичнээн их эргүүлж болохыг хязгаарладаггүй. Аналог утгын оронд бид кодлогчын эргэх чиглэлийг тоон хэлбэрээр харах болно. Эдгээр нь хэрхэн ажилладаг талаар би нарийвчлан ярихгүй, гэхдээ таны мэдэх ёстой зүйл бол arduino дээрх хоёр оролтын зүүг ашиглан аль чиглэл рүү эргүүлж байгааг хэлж өгөх явдал юм. Эргэдэг кодлогч нь ажиллахад илүү төвөгтэй байж болох бөгөөд өөр өөр кодлогчдод өөр тохиргоо шаардлагатай байж магадгүй юм. Үүнийг хөнгөвчлөхийн тулд би эмэгтэй зүүгээр зүүхэд бэлэн болсон ПХБ -тай нэгийг худалдаж авлаа. Одоо код:
#оруулах
// Ротари кодлогч #гаралтыг тодорхойлохA 15 #гаралтыг тодорхойлохB 14 int тоолуур = 0; int aState; int aLastState; void setup () {// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: // Rotary pinMode (outputA, INPUT); pinMode (гаралтB, INPUT); // outputA aLastState = digitalRead (outputA) -ийн анхны төлөвийг уншдаг; } void rotaryAction (int dir) {if (dir> 0) {Keyboard.press (']'); } өөр {Keyboard.press ('['); } Keyboard.releaseAll (); } // ------------------ MAIN LOOP ------------------------- void loop () {// давтан ажиллуулахын тулд үндсэн кодоо энд оруулна уу: // Size aState = digitalRead (outputA); if (aState! = aLastState) {if (digitalRead (outputB)! = aState) {// тоолуур ++; rotaryAction (1); } өөр {// тоолуур -; rotaryAction (-1); } //Serial.print("Position: "); //Serial.println(тоолуур); } aLastState = aState; }
Анхдагч байдлаар, Photoshop -ийн] ба [товчлолууд нь сойзны хэмжээг ихэсгэж, багасгадаг. Яг л өмнөх шигээ бид тэдгээрийг түлхүүр дарагч хэлбэрээр оруулахыг хүсч байна. Кодлогч нь нэг ээлжинд хэд хэдэн оролт илгээдэг (энэ нь загвараас хамаарна), бид эдгээр оролт бүрийн сойзны хэмжээг нэмэгдүүлэх/багасгахыг хүсч байгаа тул та залгуурыг дээш, доош нь хурдан эргүүлж чадна, гэхдээ бас боломжтой. үүнийг маш нарийвчлалтай аажмаар хянах.
Потметрийн нэгэн адил бид зөвхөн эргэлтийг эргүүлэх үед л энэ үйлдлийг хийхийг хүсч байна. Потметрээс ялгаатай нь миний өмнө тайлбарласнаар эргэдэг кодлогч нь хоёр ээлжит оролттой байдаг. Эдгээрийн аль нь өөрчлөгдсөнийг эргүүлэх чиглэлийг тогтоохын тулд бид харж байна.
Дараа нь чиглэлээс хамааран бид зөв товчлуурыг дарна.
Хэрэв танд холбоо барих асуудал байхгүй бол энэ нь ажиллах ёстой.
Алхам 5: Бүгдийг нэгтгэх
Одоо гагнуур руу орно. Нэгдүгээрт, бид хоёр товчлуурыг тааруулахын тулд perfboard дээр хоёр цооног өрөмддөг. бид товчлуурууд ба тэдгээрийн харгалзах резисторыг гагнана. Доорх орон зайг хэмнэхийн тулд оролтын утсыг дээд талд нь дамжуулахын тулд би хоёр нэмэлт жижиг цооног өрөмдсөн боловч энэ нь шаардлагагүй юм. Оролтын утас тийм ч их байдаггүй тул GND ба 5V утаснууд зэрэгцэн ажилладаг боловч хэрэв та зальтай мэт санагдаж байвал матриц хийхийг хүсч магадгүй юм. Би микроконтроллерийг кодлогч ба потметрийн хажууд байрладаг өөр жижиг перфоронд гагнав. Одоо би бүх утсыг ProMicro руу гагнаж байна. Бүтээлч байх шаардлагагүй, би зүгээр л талхны самбар дээрх схемийг дагаж мөрдөх ёстой байсан, гэхдээ ийм жижиг газарт гагнах нь уйтгартай байдаг. Над шиг байж болохгүй, утас тайлагч, сайн гагнуур ашиглаарай!
Эцэст нь та Photoshop -ийн шинэ найздаа зориулж сайхан хайрцаг хийлгэхийг хүсч магадгүй юм. Надаас нэг сайн, ядаж!
Гэхдээ хэрэв та үүнийг туршиж үзэхийг хүсч байвал картон, соронзон хальс ашиглаад микро USB-ээ залгаарай.
Алхам 6: Код + жагсаал
Гэнэтийн зүйлээс зайлсхийхийн тулд төсөл дээр явж байхдаа хяналтын самбарын програмыг туршиж үзээрэй.
Бүрэн код энд байна:
Уншсанд маш их баярлалаа!
Зөвлөмж болгож буй:
Сансрын хөлгийн хяналтын самбар - Laser Cut Arduino тоглоом: 11 алхам (зурагтай)
Сансрын хөлгийн хяналтын самбар - Laser Cut Arduino Toy: Хэдэн сарын өмнө би үйлдвэрлэгчдийн худалдааны багаж хэрэгслийг олон жилийн турш сурахыг хүсч байсан тул орон нутгийн үйлдвэрлэгчдийн гишүүн болохоор шийдсэн. Би бага зэрэг Arduino туршлагатай байсан бөгөөд энд Instructables-ийн Fusion курст хамрагдсан. Гэсэн хэдий ч би
ЦАХИЛГААН ХУРДЫН ХЯНАЛТЫН ХЯНАЛТЫН СОНГОЛЫН ГЕНЕРАТОРЫН АЛТЕРНАТИВ (ESC): 7 алхам
ЦАХИЛГААН ХУРДЫН ХЯНАЛТЫН ХЯНАЛТЫН ХЯНАЛТЫН ГЕНЕРАТОРЫН өөр хувилбар (ESC): Хэсэг хугацааны өмнө би YouTube суваг дээрээ салхин цахилгаан үүсгүүр хэрхэн хийхийг харуулсан видеог (https://www.youtube.com/watch?v=-4sblF1GY1E) нийтэлсэн. сойзгүй DC мотороос. Би видеог испани хэл дээр хийсэн бөгөөд энэ хөдөлгүүрийг түүнд өгсөн гэж тайлбарласан
LTE Arduino GPS Tracker + IoT хяналтын самбар (1 -р хэсэг): 6 алхам (зурагтай)
LTE Arduino GPS Tracker + IoT Dashboard (1 -р хэсэг): Танилцуулга Залуусаа! Энэхүү зааварчилгаа нь Arduino-д зориулсан Botletics LTE/NB-IoT бамбайг ашиглах талаархи анхны зааварчилгааны үргэлжлэл юм, хэрвээ та хараахан амжаагүй байгаа бол бамбайгаа хэрхэн ашиглах талаар сайн ойлголттой болохын тулд үүнийг уншина уу
LTE Arduino GPS Tracker + IoT хяналтын самбар (2 -р хэсэг): 6 алхам (зурагтай)
LTE Arduino GPS Tracker + IoT хяналтын самбар (2 -р хэсэг): Танилцуулга & 1 -р хэсэг RecapYup, Arduino болон LTE бүхий SIM7000 GPS трекер дээр өөр заавар өгөх цаг болжээ! Хэрэв та хараахан амжаагүй байгаа бол Botletics SIM7000 CAT-M/NB-IoT бамбайг эхлүүлэх зааврыг үзээд Па дээрээс уншина уу
Guino: Arduino -д зориулсан хяналтын самбар: 4 алхам (зурагтай)
Гуино: Таны Arduino -д зориулсан хяналтын самбар: Энэхүү төсөл нь Instructables -д оршин сууж буй зураач хийж байхдаа хийсэн туршилтуудын нэг хэсэг юм. Бусад төслүүдийг эндээс үзэх боломжтой. Arduino самбар дээрх өгөгдлийг бодит цагийн & nbsp дибаг хийх, дүрслэх нь маш хэцүү ажил байж болох юм. Та ихэвчлэн с -тэй зууралддаг