Բովանդակություն:
- Քայլ 1: Բաղադրիչներ և գործիքներ
- Քայլ 2. Հակադարձ նախագծում ZenWheels Android հավելվածը [ըստ ցանկության]
- Քայլ 3: Բաղադրիչներ
- Քայլ 4: Հավաքում
- Քայլ 5. Միացրեք HC-05 Bluetooth- ը միկրոավտոբուսին
- Քայլ 6: Կոդ և օգտագործում
- Քայլ 7: Այլընտրանքներ
Video: Hackable Remote Control for ZenWheels Microcar: 7 Steps
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս ձեռնարկում մենք պատրաստվում ենք կառուցել հատուկ հեռակառավարիչ ZenWheels միկրո մեքենայի համար: ZenWheels միկրո մեքենան 5 սմ խաղալիք մեքենա է, որը կառավարելի է Android կամ Iphone հավելվածի միջոցով: Ես ձեզ ցույց կտամ, թե ինչպես կարելի է հետընթաց նախագծել Android հավելվածը ՝ կապի արձանագրության մասին տեղեկանալու և ինչպես կարող եք հեռակառավարման վահանակ ստեղծել ՝ օգտագործելով arduino և գիրոսկոպ:
Քայլ 1: Բաղադրիչներ և գործիքներ
Մասեր:
1. ZenWheels միկրո մեքենան
2. Arduino pro mini 328p
3. Հացաթուղթ
4. MPU6050 գիրոսկոպ
5. էներգիայի աղբյուր <= 5 վ (որոշ մարտկոց, որը մենք կարող ենք կցել տախտակին)
6. U- ձևի jumper մալուխներ (ըստ ցանկության): Ես օգտագործել եմ այս թռիչքային մալուխները, քանի որ դրանք ավելի լավ տեսք ունեն տախտակի վրա: Դրա փոխարեն կարող են օգտագործվել սովորական թռիչքային մալուխներ
7. HC-05 bluetooth մոդուլ (AT ռեժիմ մուտք գործելու կոճակով)
Գործիքներ:
1. USB սերիական FTDI ադապտեր FT232RL ՝ Arduino pro mini ծրագրավորելու համար
2. Arduino IDE
3. Android հեռախոս
4. Android Studio [ըստ ցանկության]
Քայլ 2. Հակադարձ նախագծում ZenWheels Android հավելվածը [ըստ ցանկության]
Այս հատվածը հասկանալու համար անհրաժեշտ է Java- ի և Android- ի որոշակի իմացություն:
Րագրի նպատակն է միկրոշրջանը վերահսկել գիրոսկոպի միջոցով: Դրա համար մենք պետք է ավելին իմանանք այս խաղալիքի և android հավելվածի միջև bluetooth հաղորդակցության մասին:
Այս քայլում ես կբացատրեմ, թե ինչպես կարելի է հետընթաց նախագծել միկրո մեքենայի և android հավելվածի միջև հաղորդակցության արձանագրությունը: Եթե պարզապես ցանկանում եք հեռակառավարման վահանակ կառուցել, այս քայլը անհրաժեշտ չէ: Արձանագրությունը հայտնաբերելու միջոցներից մեկը աղբյուրի կոդին նայելն է: Հմ, բայց դա ուղիղ առաջ չէ, android ծրագրերը կազմված են, և կարելի է apk- ն տեղադրել google play- ի միջոցով:
Այսպիսով, ես կազմել եմ հիմնական ուղեցույցը դա անելու համար.
1. Ներբեռնեք APK ֆայլը: Android Package Kit (կարճ APK) փաթեթային ֆայլի ձևաչափ է, որն օգտագործվում է Android օպերացիոն համակարգի կողմից բջջային հավելվածների բաշխման և տեղադրման համար
Նախ դիմումը որոնեք google play խանութում, մեր դեպքում որոնեք «zenwheels» - ը և կստանաք հավելվածի հղումը
Այնուհետև Google- ում որոնեք «առցանց apk ներլցիչ» և օգտագործեք մեկը ՝ ներբեռնելու համար apk ֆայլը: Սովորաբար նրանք խնդրում են հավելվածի հղումը (այն, ինչ մենք ավելի վաղ ձեռք ենք բերել), այնուհետև մենք կտտացնենք ներբեռնման կոճակը և կպահենք այն մեր համակարգչում:
2. Ապակոմպիլացնել APK- ն: Մեր իրավիճակում ապակոմպիլյատորը գործիք է, որը վերցնում է APK- ն և արտադրում Java աղբյուրի կոդ:
Ամենապարզ լուծումն այն է, որ աշխատանքը կատարելու համար օգտագործեք առցանց ապակոմպիլյատոր: Ես Google- ում որոնել եմ «առցանց ապակոմպիլյատոր» և ընտրել եմ https://www.javadecompilers.com/: Պարզապես պետք է վերբեռնել ավելի վաղ ձեռք բերված APK- ն և
սեղմել ապամոնտաժումը: Այնուհետև պարզապես ներբեռնեք աղբյուրները:
3. Փորձեք հետ շրջել ինժեները, որը նայում է ծածկագրին
Նախագիծը բացելու համար ձեզ հարկավոր է տեքստային խմբագիր կամ ավելի լավ IDE (ինտեգրված զարգացման միջավայր): Android Projects- ի կանխադրված IDE- ն Android Studio- ն է (https://developer.android.com/studio): Android Studio- ի տեղադրումից հետո բացեք ծրագրի թղթապանակը:
Քանի որ մեր մեքենան վերահսկվում է bluetooth- ով, ես որոնումս սկսեցի ապակոմպիլացված կոդի մեջ `« bluetooth »հիմնաբառով, այն դեպքերից, որոնցից ես գտա, որ« BluetoothSerialService » - ը հաղորդակցության մեջ էր: Եթե այս դասը վարում է հաղորդակցությունը, ապա այն պետք է ունենա ուղարկելու հրամանի մեթոդ: Պարզվում է, որ կա գրելու մեկ եղանակ, որը տվյալները ուղարկում է bluetooth ալիքով.
հրապարակային դատարկություն գրել (բայթ դուրս)
Սա լավ սկիզբ է, ես փնտրել եմ.write (մեթոդը օգտագործվում է և կա դաս «ZenWheelsMicrocar», որն ընդլայնում է մեր «BluetoothSerialService» ծառայությունը): Այս դասը պարունակում է Bluetooth- ի միջոցով մեր հաղորդակցության տրամաբանության մեծ մասը: տրամաբանությունը վերահսկիչների մեջ է ՝ BaseController և StandardController:
BaseController- ում մենք ունենք ծառայության նախաստորագրում, ինչպես նաև ղեկի և շնչափողի ալիքների սահմանումներ, ալիքները իրականում հրամանի նախածանցներ են `նշելու, որ ինչ -որ տիպի հրաման կհաջորդի.
պաշտպանված ZenWheelsMicrocar microcar = նոր ZenWheelsMicrocar (սա, սա. btHandler);
պաշտպանված ChannelOutput ելքեր = {new TrimChannelOutput (ZenWheelsMicrocar. STEERING_CHANNEL), նոր TrimChannelOutput (ZenWheelsMicrocar. THROTTLE_CHANNEL)};
StandardController- ում ղեկը մշակվում է.
հանրային դատարկ բռնակ teեկավարում (TouchEvent touchEvent) {
… This.microcar.setChannel (steeringOutput.channel, steeringOutput.resolveValue ()); }
Վերլուծելով մեթոդը ՝ steeringOutput.channel- ը ունի 129 արժեք (ալիքը, որն օգտագործվում է ղեկի համար) և steeringOutput.resolveValue () -ը կարող է ունենալ -90 -ից 90 -ի սահմաններում: Ալիքի արժեքը (129) ուղարկվում է ուղղակիորեն, և ղեկի արժեքը փոփոխվում է: բիթային գործողությունների կիրառմամբ.
մասնավոր վերջնական int value_convert_out (int արժեք) {
բուլ բացասական = կեղծ; if (արժեք <0) {բացասական = f6D; } int արժեք 2 = արժեք & 63; if (բացասական) {վերադարձելի արժեք 2 | 64; } վերադարձելի արժեք 2; }
StandardController- ում կա նմանատիպ մեթոդ, որը կոչվում է
հանրային դատարկ բռնակ Շարժիչ (TouchEvent touchEvent)
Քայլ 3: Բաղադրիչներ
Մասեր:
1. Arduino pro mini 328p 2 $
2. Հացաթուղթ
3. MPU6050 գիրոսկոպ 1,2 $
4. HC-05 վարպետ-ստրուկ 6 պին մոդուլ 3 $
5. 4 x AA մարտկոցի փաթեթ `4 մարտկոցով
6. U- ձևի jumper մալուխներ (ըստ ցանկության): Ես օգտագործել եմ այս թռիչքային մալուխները, քանի որ դրանք ավելի լավ տեսք ունեն տախտակի վրա, իսկ լուսարձակները այս կերպ ավելի տեսանելի են: Եթե դուք չունեք այս մալուխները, կարող եք դրանք փոխարինել dupont լարերով:
Վերոնշյալ գները վերցված են eBay- ից:
Գործիքներ:
1. USB սերիական FTDI ադապտեր FT232RL ՝ arduino pro mini ծրագրավորելու համար
2. Arduino IDE
3. Android Studio (պարտադիր չէ, եթե ինքներդ ինժեներ եք հակադարձում)
Քայլ 4: Հավաքում
Հավաքումը շատ պարզ է, քանի որ մենք դա անում ենք սեղանի վրա:)
- նախ մենք մեր բաղադրիչները տեղադրում ենք տախտակի վրա `միկրոկառավարիչը, bluetooth մոդուլը և գիրոսկոպը
- միացրեք HC-05 bluetooth RX և TX կապերը arduino 10 և 11 կապումներին: SDA և SCL գիրոսկոպը պետք է միացված լինեն arduino A4 և A5 կապումներին
- միացրեք հոսանքի կապերը bluetooth- ին, gyro- ին և arduino- ին: քորոցները պետք է միացված լինեն սեղանի + և - ի կողքին
- վերջին միացրեք էլեկտրամատակարարումը (3.3 Վ -ից մինչև 5 Վ) սնուցող տախտակին, ես օգտագործել եմ փոքր LiPo մեկ բջջային մարտկոց, բայց ցանկացածը կանի, քանի դեռ այն գտնվում է հզորության տիրույթում:
Լրացուցիչ մանրամասների համար խնդրում ենք ստուգել վերը նշված նկարները
Քայլ 5. Միացրեք HC-05 Bluetooth- ը միկրոավտոբուսին
Դրա համար ձեզ հարկավոր է Android հեռախոս, bluetooth HC-05 մոդուլ և սերիական FTDI ադապտեր ՝ լարերով: Նաև մենք կօգտագործենք Arduino IDE- ն ՝ Bluetooth մոդուլի հետ հաղորդակցվելու համար:
Նախ մենք պետք է պարզենք միկրո մեքենայի bluetooth հասցեն.
- միացրեք Bluetooth- ը ձեր հեռախոսի վրա
- միացրեք մեքենան և անցեք Android- ի ձեր կարգավորումների bluetooth բաժին
- որոնել նոր սարքեր, և պետք է հայտնվի «Microcar» կոչվող սարք
- զուգակցեք այս սարքի հետ
- ապա bluetooth MAC- ը հանելու համար ես օգտագործել եմ այս ծրագիրը google play Serial Bluetooth տերմինալից
Այս ծրագիրը տեղադրելուց հետո գնացեք ընտրացանկ -> սարքեր և այնտեղ կունենաք Bluetooth- ի հետ զուգակցված բոլոր սարքերի ցուցակ: Մեզ հետաքրքրում է միայն ներքևում գտնվող «Միկրոքար» հանքը 00: 06: 66: 49: A0: 4B
Հաջորդը միացրեք FTDI ադապտերը bluetooth մոդուլին: Սկզբում VCC և GROUND կապում, այնուհետև FTDI RX- ից bluetooth TX և FTDI TX ՝ bluetooth RX- ից: Նաև bluetooth մոդուլի վրա պետք է լինի քորոց, որը պետք է միացված լինի VCC- ին: Դա անելով bluetooth մոդուլը մտնում է «ծրագրավորվող ռեժիմ»: Իմ մոդուլն ունի կոճակ, որը միացնում է VCC- ն այդ հատուկ քորոցին: Երբ FTDI- ն միացնում եք USB- ին, այն պետք է միացված լինի / սեղմված կոճակով `այս հատուկ ծրագրավորվող ռեժիմ մուտք գործելու համար: Bluetooth- ը հաստատում է այս ռեժիմ մուտք գործելը ՝ դանդաղ թարթելով յուրաքանչյուր 2 վայրկյանը մեկ:
Arduino IDE- ում ընտրեք սերիայի նավահանգիստը, այնուհետև բացեք սերիական մոնիտորը (և NL և CR 9600 baud արագությամբ): Մուտքագրեք AT- ն և մոդուլը պետք է հաստատեն «OK» - ով:
Մուտքագրեք «AT+ROLE = 1» ՝ մոդուլը վարպետ ռեժիմում դնելու համար: Ձեր bluetooh մոդուլին զուգորդելու համար գրեք ՝ «AT+BIND = 0006, 66, 49A04B», նկատեք, թե ինչպես է մեր «00: 06: 66: 49: A0: 4B» - ն վերածվում «0006, 66, 49A04B» - ի: Դե, դուք պետք է նույն փոխակերպումն անեք ձեր bluetooh MAC- ի համար:
Այժմ միացրեք Zenwheels մեքենան, ապա անջատեք FTDI- ը և նորից միացրեք այն առանց կոճակը սեղմված / միացված է հատուկ քորոց: Որոշ ժամանակ անց այն պետք է միանա մեքենային, և կնկատեք, որ մեքենան որոշակի կապի հաջողակ ձայն է տալիս:
Անսարքությունների վերացում
- Ես գտա, որ իմ ունեցած Bluetooth- ի բոլոր մոդուլներից միայն վարագույրն էր աշխատում կոճակով:
- համոզվեք, որ մեքենան ամբողջությամբ լիցքավորված է
- համոզվեք, որ մեքենան միացված չէ հեռախոսին
- եթե Bluetooth- ը մտնում է AT ռեժիմում (դանդաղ է թարթում), բայց չի արձագանքում հրամանին, համոզվեք, որ ունեք և՛ NL և CR, և՛ փորձեր BAUD- ի այլ դրույքաչափերով:
- կրկնակի ստուգեք, որ RX- ը միացված է TX- ին և հակառակը
- փորձիր այս ձեռնարկը
Քայլ 6: Կոդ և օգտագործում
Նախ անհրաժեշտ է ներբեռնել և տեղադրել երկու գրադարան.
1. MPU6050 գրադարան գիրոսկոպի համար
2. I2CDev գրադարանի աղբյուր
Այնուհետև ներբեռնեք և տեղադրեք իմ գրադարանը այստեղից կամ պատճենեք այն ներքևից.
/** * Գրադարաններ ՝ * https://github.com/jrowberg/i2cdevlib * https://github.com/jrowberg/i2cdevlib */#include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #include "Wire.h "#include" SoftwareSerial.h"
const int MAX_ANGLE = 45;
const byte commandStering = 129; const byte commandSpeed = 130;
bool սկզբնականացում = կեղծ; // սահմանել true, եթե DMP init- ը հաջող էր
uint8_t mpuIntStatus; // պահում է փաստացի ընդհատման կարգավիճակի բայթ MPU uint8_t devStatus- ից; // վերադարձնել կարգավիճակը սարքի յուրաքանչյուր գործողությունից հետո (0 = հաջողություն,! 0 = սխալ) uint16_t packetSize; // ակնկալվող DMP փաթեթի չափը (կանխադրվածը 42 բայթ է) uint16_t fifoCount; // FIFO uint8_t fifoBuffer- ում ներկա պահին բոլոր բայթերի հաշվարկը [64]; // FIFO պահեստավորման բուֆեր Quaternion q; // [w, x, y, z] քառորդ կոնտեյներ VectorFloat gravity; // [x, y, z] ինքնահոս վեկտորը float ypr [3]; // [yaw, pitch, roll] yaw/pitch/roll բեռնարկղ և ինքնահոս վեկտոր ցնդող բուլ mpuInterrupt = false; // ցույց է տալիս, թե արդյոք MPU ընդհատման քորոցը բարձրացել է
անստորագիր երկար lastPrintTime, lastMoveTime = 0;
SoftwareSerial BT սերիալ (10, 11);
MPU6050 մպ;
դատարկ կարգավորում ()
{Serial.begin (9600); BTserial.begin (38400); Serial.println («startedրագիրը մեկնարկեց»); նախաստորագրում = initializeGyroscope (); }
դատարկ շրջան () {
եթե (! սկզբնականացում) {վերադարձ; } mpuInterrupt = կեղծ; mpuIntStatus = mpu.getIntStatus (); fifoCount = mpu.getFIFOCount (); եթե (hasFifoOverflown (mpuIntStatus, fifoCount)) {mpu.resetFIFO (); վերադարձ; } if (mpuIntStatus & 0x02) {while (fifoCount <packetSize) {fifoCount = mpu.getFIFOCount (); } mpu.getFIFOBytes (fifoBuffer, packetSize); fifoCount -= packetSize; mpu.dmpGetQuaternion (& q, fifoBuffer); mpu.dmpGetGravity (& ինքնահոս, & q); mpu.dmpGetYawPitchRoll (ypr, & q, & ինքնահոս); ղեկ (ypr [0] * 180/M_PI, ypr [1] * 180/M_PI, ypr [2] * 180/M_PI); }}
/*
* Ստանում է 0 -ից 180 անկյուն, որտեղ 0 -ը ձախ է, իսկ 180 -ը ՝ աջ millis () - lastMoveTime = 90) {resultAngle = քարտեզ (անկյուն, 91, 180, 1, 60); } else if (անկյուն 0) {resultSpeed = քարտեզ (արագություն, 0, 90, 0, 60); } else if (արագություն <0) {resultSpeed = քարտեզ (արագություն, 0, -90, 120, 60); } Serial.print ("actualAngle ="); Serial.print (անկյուն); Serial.print (";"); Serial.print ("actualSpeed ="); Serial.print (resultSpeed); Serial.println (";"); BTserial.write (commandStering); BTserial.write (resultAngle); BTserial.write (commandSpeed); BTserial.write ((բայթ) resultSpeed); lastMoveTime = միլիարդ (); }
դատարկ ղեկ (int x, int y, int z)
{x = սահմանափակում (x, -1 * MAX_ANGLE, MAX_ANGLE); y = սահմանափակում (y, -1 * MAX_ANGLE, MAX_ANGLE); z = սահմանափակում (z, -MAX_ANGLE, MAX_ANGLE); int անկյուն = քարտեզ (y, -MAX_ANGLE, MAX_ANGLE, 0, 180); int արագություն = քարտեզ (z, -MAX_ANGLE, MAX_ANGLE, 90, -90); printDebug (x, y, z, անկյուն, արագություն); moveZwheelsCar (անկյուն, արագություն); }
void printDebug (int x, int y, int z, int անկյուն, int արագություն)
{if (millis () - lastPrintTime <1000) {վերադարձ; } Serial.print ("z ="); Serial.print (x); Serial.print (";"); Serial.print ("y ="); Serial.print (y); Serial.print (";"); Serial.print ("z ="); Serial.print (z); Serial.print (";"); Serial.print ("angle ="); Serial.print (անկյուն); Serial.print (";"); Serial.print ("speed ="); Serial.print (speed); Serial.println (";"); lastPrintTime = միլիարդ (); }
bool initializeGyroscope ()
{Wire.begin (); mpu.initialize (); Serial.println (mpu.testConnection ()? F ("MPU6050 կապը հաջող է"). F ("MPU6050 կապը ձախողվեց")); devStatus = mpu.dmpInitialize (); mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788); if (devStatus! = 0) {Serial.print (F ("DMP Initialization failed (code")); Serial.println (devStatus); return false;} mpu.setDMPEnabled (true); Serial.println (F ("Enabling ընդհատումների հայտնաբերում (Arduino արտաքին ընդհատում 0)… ")); attachInterrupt (0, dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); Serial.println (F (" DMP պատրաստ է! = mpu.dmpGetFIFOPacketSize (); վերադարձնել ճշմարիտ;}
դատարկ dmpDataReady ()
{mpuInterrupt = ճշմարիտ; }
բուլյան hasFifoOverflown (int mpuIntStatus, int fifoCount)
{վերադարձ mpuIntStatus & 0x10 || fifoCount == 1024; }
Տեղադրեք կոդը FTDI ադապտերի միջոցով arduino- ին, ապա միացրեք մարտկոցները:
Օգտագործելով հեռակառավարիչը
Արդուինոն միացնելուց հետո միացրեք նաև մեքենան: HC-05 մոդուլը պետք է միանա մեքենային, երբ դա տեղի ունենա, մեքենան ձայն կթողնի: Եթե այն չի աշխատում, խնդրում ենք ստուգել նախորդ քայլը և անսարքությունների վերացման բաժինը:
Եթե հացաթխիկը թեքեք առաջ, մեքենան պետք է առաջ շարժվի, աջ, իսկ մեքենան ՝ աջ: Այն նաև ավելի աստիճանական շարժումներ է կատարում, ինչպիսիք են ՝ մի փոքր առաջ թեքվելը և մի փոքր ձախ մնալը: Այս դեպքում մեքենան դանդաղ կընթանա ձախ:
Եթե մեքենան ինչ -որ այլ ճանապարհ է տանում, երբ հացաթխումը թեքում է, նախ պահեք այն տարբեր ուղղություններով:
Ինչպես է դա աշխատում:
Էսքիզը ստանում է գիրոսկոպի կոորդինատները յուրաքանչյուր 100 ms- ում, կատարում հաշվարկներ, այնուհետև bluetooth- ով փոխանցում մեքենայի հրամանները: Սկզբում կա «ուղղորդման» մեթոդ, որը կոչվում է չմշակված x, y և z անկյուններով: Այս մեթոդը ղեկը փոխում է 0 -ից 180 աստիճանի, իսկ արագացումը -90 -ից 90 -ի միջև: Այս մեթոդը կոչ է անում
void moveZwheelsCar (բայտի անկյուն, int արագություն), որը ղեկը և արագացումը փոխակերպում է ZenWheels- ի բնութագրերի, այնուհետև հրամանները փոխանցում bluetooth- ի միջոցով:
Պատճառը, որ ես փոխակերպումը կատարեցի երկու քայլով, կրկին օգտագործելիությունն է: եթե ես պետք է այս ուրվագիծը հարմարեցնեի հեռակառավարման այլ սարքի, ես կսկսեի «ղեկ» բազային մեթոդից, որն արդեն իսկ արագությունն ու ղեկը քարտեզագրում է որոշ օգտակար արժեքների:
Քայլ 7: Այլընտրանքներ
«Հակադարձ տեխնիկայի» այլընտրանք: Ես խոսել եմ այն մասին, թե ինչպես կարելի է հետընթաց նախագծել նախագիծը ՝ սկսելով Android հավելվածից: Բայց դրան այլընտրանք կա, կարող եք ստեղծել սերիական FTDI + bluetooth ստրուկ (սովորական HC-05 ՝ առանց հիմնական կարգավորումները նշելու): Այնուհետեւ ZenWheels հավելվածից միկրոավտոբուսի փոխարեն միացեք HC-05- ին:
Հրամանները վերծանելու համար հարկավոր է ղեկը պահել ինչ -որ դիրքում, այնուհետև պիթոնի սցենարի միջոցով վերլուծել սերիական հաղորդակցությունը: Ես առաջարկում եմ պիթոնի սցենար, քանի որ կան չտպագրվող նիշեր և Arduino IDE- ն դրա համար հարմար չէ: Դուք կնկատեք, որ եթե անիվը մեկ դիրքով պահեք, ծրագիրը պարբերաբար կփոխանցի նույն երկու բայթ: Եթե փոխեք անիվի դիրքը, բռունցքի բայթը կմնա նույնը, երկրորդը կփոխվի: Բազմաթիվ փորձություններից հետո կարող եք գալ ղեկի ալգորիթմով, այնուհետև հետադարձ ճարտարագետի շնչափողով և այլն:
Արդուինոյի վրա հիմնված հեռակառավարման այլընտրանքը կլինի RaspberryPi հեռակառավարիչը: Ազնվամորու pi- ն ունի ներկառուցված bluetooth մոդուլ, որն անհնար է տեղադրել «վարպետ» ռեժիմում, իսկ python bluetooth գրադարանը գործում է որպես հմայք: Հնարավոր են նաև ավելի հետաքրքիր նախագծեր, ինչպիսիք են մեքենայի կառավարումը Alexa echo- ի միջոցով:)
Հուսով եմ, որ ձեզ դուր եկավ նախագիծը: Խնդրում ենք մեկնաբանություններ թողնել ստորև:
Խորհուրդ ենք տալիս:
Rainbo Skyz, Hackable LED Հովանոց: 9 քայլ (նկարներով)
Rainbo Skyz, Hackable LED Հովանոց. Պատրաստեք ձեր սեփական լուսադիոդային լուսավոր անձրևանոցը:
Robotics Remote Control Rock Crawler Arduino: 4 Steps
Robotics Remote Control Rock Crawler Arduino. Սա տեսք ունի և շատ մերկ է: Ես խորհուրդ կտամ նրանց, ովքեր ցանկանում են այս նախագիծը կատարել, հաշվի առնել էլեկտրոնիկայի ծածկման ինչ -որ եղանակ ՝ ջրից և կեղտից պաշտպանվելու համար
Կատարեք Hackable LED զարդ: 10 քայլ
Կատարեք Hackable LED զարդ. Իրոք որ հիանալի ազդեցություն ունենալու համար փորձեք օգտագործել էժան գույնը փոխող LED- ները ebay- ից: Այս նախագիծը կարող է աշխատել մարտկոցի տուփի վրա կամ մարտկոցից
Hackable Սուրբ ննդյան բացիկ և զարդարանք. 6 քայլ (նկարներով)
Hackable Christmas Card & Ornament: Տոնական բացիկներ, որոնք թարթում և ազդանշան են տալիս, միշտ գրավել են մեզ: Սա մեր կողմից կոտրվող DIY տարբերակն է ՝ պատրաստված ATtiny13A- ով և մի քանի LED- ով. Սեղմեք կոճակը ՝ ծառի վրա կարճ լուսային շոու խաղալու համար: Այս տարի մենք դրանք ուղարկում ենք ընկերներին և ընտանիքին: Դա մի
PC SPEAKERS: Wired Volume Remote Control With Perfume Cap: 19 Steps
PC SPEAKERS: Wired Volume Remote Control With Perfume Cap: (Նախ և առաջ. (Լուսանկար 1) Շատ գեղեցիկ և հեշտ է օգտագործել … բայց թանկ է, և կոճակների ծավալը մի փոքր փոքր է … Ինձ դուր են գալիս մեծ ձայնի բռնակները, ինչպես