Arduino XMAS Hitcounter: 6 քայլ (նկարներով)
Arduino XMAS Hitcounter: 6 քայլ (նկարներով)
Anonim
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter

Սուրբ Christmasնունդը մոտենում է, ուստի ահա իմ ներդրումը ձեզ ճիշտ տրամադրություն հաղորդելու համար: Դա բլոգի հիթհաշվիչ է, որը զանգ է հնչում: Բառացիորեն: Այն ժպիտ է առաջացնում ձեր դեմքին, ամեն անգամ, երբ ինչ -որ մեկը հարվածում է ձեր բլոգին:

Այն բաղկացած է Arduino տախտակից, զանգից, servo- ից և c, python և php կոդերի մի քանի տողից: Մասերի մեծ մասը բավականին տարածված է և պետք է հեշտ լինի ձեռք բերել:

Քայլ 1: Գործիքներ և նյութեր

Գործիքներ և նյութեր
Գործիքներ և նյութեր

Այսպիսով, ինչ է անհրաժեշտ:

  • Arduino տախտակ: Ես ստացել եմ Arduino Diecimila- ն Adafruits- ից: Այդ ընթացքում այնտեղ իսկապես էժան և հարմար կլոններ կան, օրինակ. իրոք մերկ ոսկրային տախտակը Deամանակակից սարքերից, հատկապես, եթե ցանկանում եք դրանք օգտագործել հացահատիկի վրա:
  • Սերվո շարժիչ: Serանկացած սերվո կանի: Ես վերցրեցի մի հին, որն օգտագործվում էր իմ նախկին հոբբիում:
  • Bանգակ. Feանկալի է, որ այն բավական փոքր լինի, որպեսզի այն թափահարվի սերվոյի հետ:
  • Երկու թուղթ: Մեծը ՝ զանգը պահելու համար, իսկ փոքրը ՝ զանգը թակելու շարժիչ կառուցելու համար:
  • Servo- ն Arduino- ի հետ միացնելու լարեր:
  • Վեբ կայք: Իրականում այն չպետք է լինի վեբ կայք կամ բլոգ: Իրականում այն ամենը, ինչ կարելի է հաշվել, կաշխատի:
  • ԱՀ կամ Mac ՝ Arduino տախտակը բլոգի կամ կայքի հետ կապելու համար:

Ձեզ կարող է անհրաժեշտ լինել եռակցման երկաթ, եթե լարերը հնարավոր չէ միացնել անմիջապես Arduino- ին:

Քայլ 2: Սարքավորման հավաքում

Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում
Սարքավորումների հավաքում

Bանգը պահում է ամուր թղթե ամրակ: Փոքր թղթե ամրակը օգտագործվում է մի տեսակ ձեռքի ձևավորման համար, որը ամրացված է servo շարժիչին:

Ուշադրություն դարձրեք, որ ցանկանում եք այնպես թեքել զանգը պահող թղթե ամրակը, որ արդեն իսկ մի փոքր թափահարելով առաջացնում է դինգ:

Քայլ 3: Սխեմաներ

Սխեմաներ
Սխեմաներ

Իսկական սխեմատիկա չկա: Պարզապես միացրեք servo շարժիչը Arduino- ին: Servo- ն ունի երեք լար.

  • դեղին կամ նարնջագույն `ազդանշան
  • կարմիր: VCC
  • շագանակագույն: GND

Կարմիրը և շագանակագույնը ամրացված են Arduino- ի համապատասխան կապումներին (5V և GND): Նարնջագույնը միացված է 2. կապին: Այն ազդանշան կտա սերվոյին, թե որ ուղղությամբ շրջվի: Դուք կարող եք կցել փոքր միակցիչներ լարերին, եթե լարերը ուղղակիորեն չեն տեղավորվում Arduino- ի կամ servo- ի մեջ:

Քայլ 4. Arduino- ի ծրագրավորում

Arduino- ի ծրագրավորում
Arduino- ի ծրագրավորում

Arduino Եթե դուք նորեկ եք Arduino- ում, դա փոքր տախտակ է, ամբողջությամբ հավաքված AVR միկրոկոնտրոլերի հետ: Այն լավ է պիտանի կոտրելու և ձեր միջավայրը փոխազդելու համար: Շատ բաներ, որոնք դժվար են միկրոկառավարիչների հետ, բավականին հեշտ են Arduino- ի հետ: Առավելություններից մի քանիսը.

  • առանձին ծրագրավորման սարքի (ծրագրավորողի) կարիք չկա
  • գալիս է զարգացման ինտեգրված միջավայրով (IDE)
  • աշխատում է ցանկացած հարթակում ՝ Windows, Mac, Linux:
  • հեշտ միացում ձեր համակարգչին USB- ով
  • ապարատը բաց կոդ է (բայց Arduino անունը չէ)
  • ունի մեծ համայնք

Լրացուցիչ տեղեկություններ կարող եք գտնել Arduino- ի պաշտոնական կայքում: Համոզվեք, որ ստուգեք John's Arduino- ն, որը հրահանգելի է Arduino- ի հետ աշխատելու լրացուցիչ մանրամասների համար: Ի՞նչ է անում ծրագրաշարը: Փոքրիկ ծրագրաշարը, որը տեղադրվում է Arduino- ում, վերահսկում է սերվոն: Այն ստանում է մեկ բայթ USB սալիկի միջոցով սերիական միացման միջոցով: Եթե այն ստանում է 5 արժեք, ապա այն հինգ անգամ առաջ և հետ է տանում սերվոյի թևը: Այսպիսով, ուղարկելու առավելագույն արժեքը 255 է: ramրագրեք Ardiuno- ն: Այսպիսով, ես ենթադրում եմ, որ դուք ներբեռնել և տեղադրել եք Arduino.cc- ի վերջին Arduino IDE- ն: Առայժմ դա 0010 Ալֆա տարբերակն է: Սերվոն ավելի հարմարավետ քշելու համար պետք է գրադարան ներբեռնել: Այն կարող եք գտնել Arduino խաղահրապարակում: Անջատեք այն և թղթապանակը տեղադրեք…/arduino-0010/hardware/libraries/մեջ:

  • Կցեք Arduino- ն ձեր համակարգչին USB մալուխի միջոցով:
  • Բացեք IDE- ն և սկսեք նոր ուրվագիծ: Էսքիզը Arduino- ն է `խոսեք ծրագրի համար: Ընտրեք Ֆայլ -> Նոր:
  • Ընտրեք համապատասխան սերիական սարքը (Գործիքներ -> Սերիայի նավահանգիստ): Սա կախված է ձեր միջավայրից, ինձ համար դա /dev/tty.usbserial-A4001JAh է:
  • Ներբեռնեք կցված սկզբնական ֆայլը և տեղադրեք այն նոր ուրվագծի մեջ: Հպեք պահպանման կոճակին:
  • Հպեք ստուգման կոճակին: Սա ձեր ուրվագիծը կազմում է վեցանկյուն ֆայլ, որը կարող է փոխանցվել ձեր Arduino- ին:
  • Կտտացրեք վերբեռնման կոճակին ՝ ձեր ուրվագիծը Arduino- ին փոխանցելու համար:

Փորձարկում Այժմ ձեր հարվածային հաշվիչը պատրաստ է ինչ -որ գործողությունների: Տեսնենք, կստացվի՞:

  • Կտտացրեք սերիական մոնիտորի կոճակը:
  • Ընտրեք տեքստային տուփը ուղարկելու կոճակի կողքին:
  • Հպեք ներդիրի ստեղնին և ուղարկեք այն:
  • Մինչ այժմ servo թևը պետք է առաջ և հետ շարժվի:

Ֆյու Դա ամենադժվար մասն էր: Առայժմ դուք կարող եք բայտ ուղարկել Arduino- ին, իսկ servo ալիքները ՝ դեպի ձեզ: Հաջորդը `գտնել մի բան, որը ցանկանում եք զանգը հրահրել: Մենք գրեթե ավարտված ենք:

Քայլ 5. Դարձրեք այն հիթհաշվիչ

Ձեր կայքի համար հիթհաշվարկ դնելու համար մեզ պետք է երկու փոքր կոդ: Մեկը երկուսը ստեղծում և խնամում են հաշվիչը, իսկ երկրորդը `հաշվիչի արժեքը բերելու և այն ուղարկելու համար Arduino- ին:

Նշում. Եթե դուք հայտնի չեք Python- ով կամ PHP- ով, ապա սցենարները կարող են հեշտությամբ տեղափոխվել ձեր նախընտրած ծրագրավորման լեզու: Հաշվիչն այստեղ մի փոքր PHP սցենար է, որը կարդում է ֆայլի արժեքը (hitcounter.txt), ավելացնում այն և գրում այն վերադարձավ ֆայլ: Այսքանը, դա անհրաժեշտ է: Այս ֆայլը կարող է պահվել որպես counter.php ձեր սերվերի վրա, օրինակ. Այնուհետև կարող եք հաշվել ձեր վեբ դիտարկիչը ՝ նշելով https://www.youdomain.com/counter.php: Այս հատվածը ներառեցի wordpress- ի իմ բլոգում: $ hits = ֆայլ ($ count_my_page); $ hit = կարճացրեք ($ hits [0]); $ հարված ++; $ fp = բացել ($ count_my_page, "w"); fputs ($ fp, "$ hit"); fclose ($ fp); արձագանք $ hit; ?> Սոսինձի կոդը Այս հաջորդ կոդի հատվածը օգտագործվում է հաշվիչը բերելու համար: Ես օգտագործել եմ Python- ը, բայց ամեն ինչ պետք է աշխատի: Այն բացում է HTTP կապ և վերցնում hitcounter.txt- ը: Եթե արժեքը փոխվել է վերջին ձեռքբերումից հետո, ապա տարբերությունը հաշվարկվում է և մղվում դեպի Arduino: Դա արվում է յուրաքանչյուր տասը վայրկյանը մեկ, մինչև սցենարը ընդհատեք crtl-c- ով: Հարմարեցրեք myUrl- ը և ստորև բերված սերիական կապը ձեր կարիքներին: # # բեռի հաշվիչ # ներմուծման ժամանակ 'last_counter = urllib.urlopen (myUrl).read () while (True): _ counter = urllib.urlopen (myUrl).read () _ delta = int (counter) - int (last_counter) _ print "counter: %s, delta: % s " % (հաշվիչ, դելտա) _ ser.write (chr (ord (chr (delta)))) _ last_counter = counter _ time.sleep (10) Ես չկարողացա ֆայլեր վերբեռնել php ընդլայնմամբ, այնպես որ դուք պետք է counterphp.txt- ը վերանվանել counter.php: Եթե ձեր Arduino- ն դեռ կցված է ձեր համակարգչին, ապա սկսեք Python սցենարը `ձեր hitcounter- ը բերելու համար:..> python counter.py և դուք պետք է տեսնեք հաշվիչի ելքը: Եթե ձեր դիտարկիչը մատնանշեք ձեր counter.php հասցեն և սեղմեք վերաբեռնում, ապա պետք է լսեք, թե ինչպես է ձեր հարվածային հաշվիչը զանգում: Այո, հիմա մենք ավարտեցինք: Timeամանակն է թեքվել և վայելել մեր աշխատանքը:

Քայլ 6: Եզրակացություն

Եզրակացություն
Եզրակացություն

Առաջին անգամն է, որ ես կառուցեցի մի բան, որն ունի շարժական մասեր: Դա վիրտուալ և իրական աշխարհի միջև եղած անջրպետը հաղթահարելու առաջին քայլն է: Եվ դա իսկապես հեշտ էր, կոդը ուղիղ առաջ է: Նաև մասերի մեծ մասն իմ աղբարկղում էր, բացի զանգակից: Ամեն ինչ հավաքելը և սպասելը, թե երբևէ մեկը կխփի իմ բլոգը, զվարճալի էր:

Հուսով եմ ձեզ դուր եկավ:

Խորհուրդ ենք տալիս: