Სარჩევი:

ციფრული ჭადრაკი - თვალყური ადევნეთ თქვენს საჭადრაკო თამაშს ონლაინ: 5 ნაბიჯი
ციფრული ჭადრაკი - თვალყური ადევნეთ თქვენს საჭადრაკო თამაშს ონლაინ: 5 ნაბიჯი

ვიდეო: ციფრული ჭადრაკი - თვალყური ადევნეთ თქვენს საჭადრაკო თამაშს ონლაინ: 5 ნაბიჯი

ვიდეო: ციფრული ჭადრაკი - თვალყური ადევნეთ თქვენს საჭადრაკო თამაშს ონლაინ: 5 ნაბიჯი
ვიდეო: Building Bridges Friendship and Social Skills for Kids 2024, ნოემბერი
Anonim
ციფრული ჭადრაკი - თვალყური ადევნეთ თქვენს საჭადრაკო თამაშს ონლაინ რეჟიმში
ციფრული ჭადრაკი - თვალყური ადევნეთ თქვენს საჭადრაკო თამაშს ონლაინ რეჟიმში

მე ვთამაშობ ბევრ ჭადრაკს ახალგაზრდობიდან და რადგან ინტერნეტში არის უამრავი ვებ – გვერდი, რომლითაც ჭადრაკი თამაშობს კომპიუტერებთან ან ცოცხალ მეტოქეებთან, მე ერთხელაც არ მიპოვნია ვებ – გვერდი, რომელიც თვალყურს ადევნებს შენს საჭადრაკო თამაშს. რეალურად თამაშობს რეალურ ცხოვრებაში. ამ პროექტის წყალობით, ამის გაცნობიერებას ვიმედოვნებ!

მე იმედი მაქვს:

  • შეძლებს თვალყური ადევნოს ჭადრაკის ფიგურების მოძრაობას
  • იხილეთ რამოდენიმე დაფა წარსული თამაშების შესახებ.
  • თვალყური ადევნეთ დროს და ითამაშეთ სწრაფად, როგორც პროფესიონალური თამაში.

ეს არის ძალიან რთული პროექტი, რადგან დასრულების შემთხვევაში მას დასჭირდება 64 სინათლის სენსორი და 8 ჩიპი. რაც უკვე დიდი ამოცანაა და ჩვენ არცერთ სხვა სენსორს არ ვითვლით.

ჩემმა კოლეჯმა მოგვცა საქმეების დიდი ჩამონათვალი:

  1. შექმენით სქემა ჩვენი პროექტისთვის
  2. მონაცემთა ბაზის შექმნა მონაცემთა შენახვისა და მიღებისათვის.
  3. შექმენით ვებ გვერდი Adobe XD გამოყენებით
  4. ხელახლა შექმენით ეს ვებ გვერდი CSS და HTML
  5. წაიკითხეთ სენსორები პითონით
  6. აჩვენეთ სენსორის მონაცემები ვებგვერდზე კოლბის გამოყენებით.

ამ სასწავლო ინსტრუქციაში მე გიხელმძღვანელებთ ჩემს მოგზაურობაში და ხსნის ყველა უბედურებას და მომენტს, რაც მე განვიცადე ამ ბოლო რამდენიმე კვირის განმავლობაში.

ნაბიჯი 1: მასალები/ინსტრუმენტები

მასალები, მასალები და ინსტრუმენტები არის პირველი ნაბიჯი წარმატებული პროექტისკენ!

ინსტრუმენტები:

  • გასაყიდი რკინა
  • Soldering Tin
  • ფანქარი
  • საბურღი მანქანა
  • Ფირზე

მასალები:

  • Raspberry Pi მიკრო SD ბარათით (4 GB საკმარისი იქნება)
  • ჟოლოს Pi T-cobbler
  • ჭადრაკის დაფა ფიგურებით
  • 7 სეგმენტის ჩვენება (TM 1637)
  • 2 სენსორული სენსორი (TTP223B)
  • RFID მკითხველი ბარათებით (MFRC522)
  • MCP3008 (დამოკიდებულია იმაზე, თუ რამდენად შორს გსურთ წასვლა, თითოეული MCP– სთვის შეგიძლიათ წაიკითხოთ ჭადრაკის 8 კოორდინატი)
  • შუქზე დამოკიდებული რეზისტორი ტიპი 5288 (8 თითოეული MCP– სთვის)
  • სათაურები (მამაკაცი კაცი და ქალი მამაკაცი)

თუ თქვენ გჭირდებათ ყველაფრის ყიდვა, სავარაუდო ღირებულება უნდა იყოს დაახლოებით 125 ევრო, გადაზიდვის ხარჯების ჩათვლით (მხოლოდ მარაგები)!

აქ არის Excel ფაილი თანდართული ბმულებითა და ფასებით, რაც გჭირდებათ!

ნაბიჯი 2: სქემა და დაგეგმვა

სქემა და დაგეგმვა!
სქემა და დაგეგმვა!
სქემა და დაგეგმვა!
სქემა და დაგეგმვა!

ამ პროექტის შემდეგი ნაბიჯი არის სქემატური შედგენა. მე გავაკეთე 2: ერთი პურის დაფაზე და ერთი წმინდა ელექტრონულად. ჩვენ დაგვჭირდება ეს სქემა, რომ ყველაფერი სუფთა იყოს და დარწმუნდეთ, რომ ჩვენ არ დავუკავშირებთ არასაჭირო ნივთებს!

მე გამოვიყენე პროგრამა სახელწოდებით "Fritzing" ამ სქემების შესაქმნელად, თუ ვინმეს აინტერესებს.

ფერის კოდირება:

  • წითელი = დენის წყაროს
  • მწვანე = კავშირი
  • ლურჯი = მიწა

Raspberry Pi კავშირები:

  • 3V3 => VC ხაზი breadboard, powering ყველაფერი
  • 5V => VCC 7 სეგმენტის ჩვენებით
  • GND:

    • დაფქვილი პურის დაფაზე
    • საფუძველი 7 სეგმენტის ჩვენებისა
  • GPIO4 => საათი აირჩიეთ MCP3008 პინი
  • GPIO10 => MCP3008 MOSI პინი
  • GPIO9 => MISP3008 MISO პინი
  • GPIO11 => MCP3008 CLK პინი
  • GPIO7 => MFRC522 SDA პინი
  • GPIO19 => პირველი Touch სენსორის DIG pin
  • GPIO26 => მეორე შეხების სენსორის DIG პინი
  • GPIO20 => შვიდი სეგმენტის ჩვენების CLK პინი
  • GPIO21 = შვიდი სეგმენტის ჩვენების DIO პინი

წყვილი აღნიშნავს სქემებს:

  • ეს სქემა შეიცავს მხოლოდ 1 MCP- ს, ეს ნიშნავს, რომ მხოლოდ 8 კოორდინატის სრულად წაკითხვა იქნება შესაძლებელი.
  • მე ვიყენებ GPIO ქინძისთავებს, როგორც ჩიპების არჩევა. ვინაიდან მხოლოდ 2 ჩიპის შერჩეული ქინძისთავია ხელმისაწვდომი პოტენციურად 8 MCP– ით.
  • 7 სეგმენტის ჩვენება არის მასწავლებლის მიერ შემოთავაზებული, საჭიროა მხოლოდ 4 მავთული, რადგან ის მუშაობს საკუთარ პროტოკოლზე.
  • შეხების სენსორების ციფრულ პინზე რეზისტორები სრულად არ არის საჭირო, მაგრამ რეკომენდირებულია.

კომპონენტების ახსნა:

  • MCP სინათლის სენსორებით:

    • MCP3008 არის 8 არხიანი 10 ბიტიანი ADC:

      • MCP3008 წაიკითხავს სინათლის სენსორების ანალოგურ მნიშვნელობას, ეს მნიშვნელობა დამოკიდებულია იმ სინათლის რაოდენობაზე, რომელიც ამჟამად ანათებს სენსორზე.
      • ჩემს პითონის კოდში მივიღებ ამ ანალოგურ მნიშვნელობას და გადავიყვან 1 -ში ან 0 -ში
  • შეხების სენსორები:

    მუშაობს ისევე როგორც ღილაკი, მე ვიყენებ კლასს ამის დასაბრუნებლად. ამის შესახებ მოგვიანებით

    RFID წამკითხველი (MFRC 522):

    • იყენებს კონკრეტულ პროტოკოლს (SPI) დაინსტალირებული პაკეტით.
    • რთული არ არის დაინსტალირებული პაკეტით კოდირება
    • კითხულობს ტეგს და აბრუნებს ტეგის მნიშვნელობას
    • თქვენ ასევე შეგიძლიათ ჩაწეროთ მნიშვნელობა ტეგზე, ასე რომ, ნაცვლად იმისა, რომ დააბრუნოს თექვსმეტობითი მნიშვნელობა, ის აბრუნებს სახელს, მაგალითად

    7 სეგმენტი (TM1637)

    • ასევე იყენებს დაინსტალირებულ პაკეტს მარტივი კოდირებისათვის
    • შექმენით ცვლადი მთელი მნიშვნელობით, შემდეგ გაყავით იგი 4 სიმბოლოდ და აჩვენეთ ეს სიმბოლოები

ნაბიჯი 3: SQL მონაცემთა ბაზა

SQL მონაცემთა ბაზა
SQL მონაცემთა ბაზა

მესამე ნაბიჯი ამ პროექტისკენ არის 3NF ნორმალიზებული SQL მონაცემთა ბაზის შექმნა!

ჩვენ დაგვჭირდება ეს:

  • მონაცემების ჩასმა
  • მონაცემების მიღება და ჩვენება ჩვენს ვებგვერდზე
  • შეუძლია ზუსტად დაინახოს რამდენი ბრუნვა გავიდა ჭადრაკის მიმდინარე თამაშში!

ცხრილები განმარტებულია:

  • თამაშები

    • ეს აკონტროლებს ვინ მოიგო გარკვეული თამაში და როდის ითამაშა თამაში
    • აქ მთავარი გასაღები არის GameID
    • თარიღს აქვს მიმდინარე თარიღის სტანდარტული მნიშვნელობა
    • გამარჯვებული და ანგარიში დაემატება მოგვიანებით, თამაშის დასრულების შემდეგ!
  • მოთამაშეები (სპელერები ჰოლანდიურად)

    • ეს არის ჩასმული ხელით, მაგრამ ასევე შეიძლება ჩასმული იყოს RFID ბარათის სისტემის გამოყენებით.
    • ჩაწერეთ სახელი თქვენს ბარათზე, შემდეგ წაიკითხეთ ბარათი და ჩაწერეთ სახელი ამ ცხრილში
    • ის ასევე თვალყურს ადევნებს თითოეული მოთამაშის მოგება / წაგების ჩანაწერს, რომელიც გამოჩნდება ვებგვერდზე
  • ისტორიული ისტორია (ისტორია)

    • ეს არის შემობრუნების ისტორია
    • როდესაც ჭადრაკის ფიგურა გადავა, ის აქ განახლდება
    • მას აქვს 3 უცხოური გასაღები, მოთამაშე, თამაში და ჭადრაკი
    • ReadDate (InleesDatum) არის თარიღი, როდესაც სენსორი წაიკითხეს
    • ReadTime იგივეა, რაც ReadDate, მაგრამ დროის ნიშნულით
    • LocationID (LocatieID) არის კოორდინატის სახელი, სადაც ის მდებარეობს. მაგალითად "a3"
  • ჭადრაკის ნაჭრები (Schaakstukken ჰოლანდიურად)

    • ყველა საჭადრაკო ფიგურას აქვს ID, გუნდი, სახელი და სტატუსი
    • გუნდი არის 1 ან 2, შავი ან თეთრი;
    • ოდესმე ნაჭრის სახელი იქნება "პაიკი 1"
    • სტატუსი ნიშნავს, რომ ნაჭერი ცოცხალია ან მკვდარი!

ნაბიჯი 4: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

ახლა, როდესაც ჩვენ მივიღეთ ყველა სწორი ნაწილი, ჩვენ შეგვიძლია დავიწყოთ რაღაცის შექმნა!

მოდით დავყოთ ეს ნაწილი ქვე -ნაბიჯებად, რადგან ახსნა უფრო ადვილი იქნება:

  • ნაბიჯი 1: თქვენ გინდათ გაჭრათ ჭადრაკის დაფის ყველა კოორდინატზე, როგორც ეს ნაჩვენებია პირველ სურათზე, ასევე გააკეთეთ ხვრელი, სადაც გსურთ მოათავსოთ შეხების სენსორები, RFID წამკითხველი და 7 სეგმენტის ჩვენება.

    არ დაგავიწყდეთ დაფის გვერდზე რამდენიმე ხვრელის გაბურღვა, ეს არის დაფის თავზე სხვადასხვა კომპონენტის მავთულები. ბევრი ბურღვა, ვიცი

  • ნაბიჯი 2: სცადეთ ერთი ან ორი სენსორი მიამაგრეთ ჟოლოს პიზე, შეამოწმეთ მუშაობს თუ არა. თქვენ გსურთ დააკავშიროთ ისინი MCP ანალოგურ მკითხველთან, როგორც ეს ადრე განმარტებული იყო მე –2 ნაბიჯში (სქემა).
  • ნაბიჯი 3: ეს შეიძლება იყოს სახიფათო და ძალიან ნერვული მოშლილი, ვინაიდან მხტუნავების სათაურები არ არის ძალიან გამყარებული ადგილზე, შეიძლება დაგჭირდეთ ყველა მათგანის დაფაზე დაფარვა, ინდივიდუალურად ან ერთდროულად რამოდენიმეჯერ. თქვენ უნდა დარწმუნდეთ, რომ ისინი დარჩებიან ჭადრაკის დაფაზე, წინააღმდეგ შემთხვევაში თქვენ ვერ შეძლებთ სენსორების წარმატებით წაკითხვას

    რჩევა! თუ ეს გაგიადვილდებათ, ზოგიერთი წებო შეიძლება რეალურად დაგეხმაროთ სენსორების უფრო მყარ მდგომარეობაში შენარჩუნებაში, როდესაც მათ დააკაკუნებთ, მე ეს რთული გზით აღმოვაჩინე

ნაბიჯი 5: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

მას შემდეგ რაც შექმენით ტექნიკა, რომლის გამოცდა შეგიძლიათ, ვცადოთ დავწეროთ კოდი! თუ გსურთ გადახედოთ ჩემს კოდს, გთხოვთ გადადით ჩემს github– ში.

ჯერ ჩვენ დაგვჭირდება რამდენიმე პაკეტის დაყენება, მე წინ წავედი და თქვენთვის სია გავაკეთე:

  • კოლბა

    ეს არის ის, რაზეც თქვენი პითონის კოდი იმუშავებს

  • Flask-socketIO

    კომუნიკაცია წინა და უკანა ნაწილს შორის

  • დაბუჟებული

    სასარგებლოა სინათლის სენსორების წასაკითხად, მუშაობს მატრიცებთან

  • ქსელის სახეები

    7 სეგმენტის ეკრანზე საკუთარი IP მისამართის დასაბეჭდად

  • Flask-CORS

    ჯვარედინი წარმოშობის რესურსის გაზიარება, საშუალებას აძლევს პაკეტების გაზიარებას სხვადასხვა დომენში

ამის შემდეგ, მე დავწერე რამდენიმე კლასი და თქვენ თავისუფლად შეგიძლიათ გამოიყენოთ ისინი.

ფრონტ-ენდი

ვებსაიტის კოდი ასევე ხელმისაწვდომია ჩემს github გვერდზე!

ფრონტ-ენდისთვის ვიყენებ Chessboard.js- ს. ეს ათავსებს ადვილად გამოსაყენებელ საჭადრაკო დაფას ადვილად მოძრავი ფიგურებით!

დაფაზე ყველაფერი მორგებულია, ასე რომ გაერთეთ! უახლესი ვერსიის გადმოტვირთვის შემდეგ, თქვენ უნდა გადაიტანოთ ფაილები თქვენს პროექტში და დააკავშიროთ ისინი იმ გვერდზე, სადაც გსურთ აჩვენოთ ჭადრაკის დაფა!

ამის შემდეგ, შევეცადოთ შევქმნათ დაფა, არ გამოიყურება ძალიან რთული:

პირველ რიგში, თქვენს html- ში:

მეორე, თქვენს javascript ფაილში:

board1 = ChessBoard ('board1', 'start');

და აი, ეს უნდა გქონდეს ჭადრაკის დაფის ნახვა ახლა! მოგერიდებათ დაფის პერსონალურად მორგება CSS ფაილებში!

ახლა, ჩვენ გვინდა ვნახოთ რამდენიმე ნაბიჯი ჭადრაკის დაფაზე, არც ისე ძნელი. მაგრამ ჩვენ გვჭირდება მისი მორგება ისე, რომ გადაადგილების ბრძანება გაიგზავნოს უკანა მხარეს. მე არ შევალ ძალიან დეტალურად, მაგრამ ჩვენ გვსურს გავაკეთოთ მსგავსი რამ:

new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (კომანდო);

ჩვენ ვიღებთ ჩამონათვალს ჩვენი უკანა პროგრამიდან და ვდებთ ტირეს ორ კოორდინატს შორის, შემდეგ ვიყენებთ board.move ბრძანებას ნაბიჯის შესასრულებლად!

ეს არის ჩემი ახსნა, თუ რა გვჭირდება ჭადრაკის დაფაზე. Js მოდული, გადადით ჩემს github– ში, რომ გადახედოთ კოდს

გირჩევთ: