Სარჩევი:
- ნაბიჯი 1: რაც გჭირდებათ…
- ნაბიჯი 2: გამგეობის შედუღება
- ნაბიჯი 3: არდუინოს დაყენება
- ნაბიჯი 4: პითონის დაყენება
- ნაბიჯი 5: სად ხდება მაგია
ვიდეო: Servodriver-Board Python-GUI და Arduino: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
პროტოტიპების გაკეთებისას ან თვითმფრინავების მოდელის მშენებლობისას, თქვენ ხშირად შეხვდებით პრობლემას, რომ თქვენ უნდა შეამოწმოთ სერვო მგზავრობა ან სერვოები შუა პოზიციაზე დააყენოთ.
თუ არ აპირებთ თქვენი მთელი RC სისტემის ან ტესტის შექმნას, რამდენად შორს შეგიძლიათ დააყენოთ servo ან სად არის შუალედური პოზიცია, მაშინ ეს დაფა თქვენთვისაა! ეს საშუალებას გაძლევთ გადაიტანოთ სერვო მითითებულ პოზიციებზე, ან წავიდეთ უკან და უკან.
ის საოცრად კარგად მუშაობს, თუნდაც 6 სერვოსთან ერთად, რომლებიც რბოლებიდან ერთი პოზიციიდან მეორეზე მიდიან.
ასევე, ეს არის კარგი პროექტი, რომ გაეცნოთ Python-GUI და Arduino– ს შორის კომუნიკაციას სერიალის გამოყენებით.
ნაბიჯი 1: რაც გჭირდებათ…
ამ პროექტისთვის დაგჭირდებათ შემდეგი:
ტექნიკა
- არდუინო ნანო კაბელით. მე გამოვიყენე კლონი და პითონის კოდი რეალურად ელოდება კლონის CH340 ჩიპს
- პროტოტიპის დაფა. 7x5 სმ საკმარისია
- ზოგიერთი 2, 54 მმ სათაურები და ქინძისთავები
- 1-6 პორცია
- სერვერების კვების წყარო (მე გამოვიყენე ბატარეის პაკეტი 4 ბატარეით)
პროგრამული უზრუნველყოფა
- პითონი 3:
- USB- დრაივერი CH340- ჩიპებისთვის: უბრალოდ google- ისთვის მძღოლები CH340 დრაივერებისთვის
- Arduino IDE:
ნაბიჯი 2: გამგეობის შედუღება
შედუღება ფაქტიურად პირდაპირ წინ მიდის სურათზე Fritzing- ის მიხედვით. უბრალოდ დარწმუნდით, რომ თქვენ შეგიძლიათ მიირთვათ სერვისები მარტივად 3 პინ-რიგზე.
- 3 პინიანი მწკრივი მიმაგრებულია ციფრული პინ 3, 5, 6, 9, 10 და 11 არდუინოს ნანოზე.
- წითელი მავთული მიმაგრებულია არდუინოს 5V- პინზე
- შავი მავთული უკავშირდება არდუინოს GND- პინს
- წყვილ ქინძისთავები 3 ქინძისთავების ქვემოთ არის დამაგრებული ტიპიური RC მიმღების დენის წყაროსთვის, შეგიძლიათ დაამატოთ კონექტორები, როგორც გსურთ, როგორიცაა ტერმინალების ხრახნი, XT- კონექტორები, JST ან… ან…
პირადად მე, მომწონს მწკრივების რიგები, რათა არდუინო ჩადოს, მაგრამ ეს შენზეა დამოკიდებული.
გთხოვთ გაითვალისწინოთ, რომ მოკლებული ქალი სათაურები არის მხტუნავი, რომელიც საშუალებას გაძლევთ მიაწოდოთ სერვო არდუინოს 5V წყაროს ტესტირების მიზნით. თუ მას ძალიან დაძაბავთ, არდუინო გადატვირთავს და კარგავს სწორ ტემპს. ისინი უნდა მოიხსნას, სანამ სხვა დენის წყაროს მიამაგრებთ.
ნაბიჯი 3: არდუინოს დაყენება
დააინსტალირეთ Arduino IDE და მიამაგრეთ Arduino nano თანდართული ესკიზით.
ნაბიჯი 4: პითონის დაყენება
გადმოწერეთ Python 3. დარწმუნდით, რომ შეამოწმეთ ვარიანტი "PATH"-ცვლადი.
თქვენ უნდა დააინსტალიროთ კიდევ ორი პაკეტი pip– ის გამოყენებით. ამისათვის დააჭირეთ ღილაკს "Windows", ჩაწერეთ "cmd" და დააჭირეთ "enter". ბრძანების სტრიქონში ჩაწერეთ შემდეგი ბრძანებები:
- პიპის ინსტალაციის სერია
- piip დააინსტალირეთ pyserial
- pip დააინსტალირეთ tkinter
როგორც ხედავთ, მე მჭირდება მოდულები სერიული, ასევე პიისერიული, რომელიც, სავარაუდოდ, არ არის ყველაზე ეფექტური, ვინაიდან სერიული უნდა შეიცვალოს პიისერიულმა. მიუხედავად ამისა, ის მუშაობს და მე მხოლოდ სწავლას ვიწყებ;).
გახსენით Python-Script IDE– ში და გაუშვით იგი, ან გაუშვით პირდაპირ ტერმინალიდან.
ჩამოსაშლელ მენიუში შეგიძლიათ აირჩიოთ ორი რეჟიმიდან "Go Go Straight" და "Ping Pong":
- გადადით პირდაპირ: შეიყვანეთ სერვო პოზიცია მიკროწამებში პირველ სვეტში და დააჭირეთ ღილაკს "დაწყება", რათა სერვო გადავიდეს მითითებულ პოზიციაზე.
- პინგ პონგი: შეიყვანეთ ქვედა და ზედა საზღვარი მეორე და მესამე სვეტში. ეს არის ქვედა და ზედა პოზიცია, რომელთა შორის სერვო უკან და უკან ბრუნდება. სვეტში "პინგ -პონგის დრო" შეგიძლიათ მიუთითოთ დრო მილიწამებში, რომ სერვო დაელოდება როდესაც მიაღწევს ზედა ან ქვედა პოზიციას. დააჭირეთ ღილაკს "დაწყება" და სერვო დაიწყებს უკან და უკან მოძრაობას, დააჭირეთ "გაჩერებას" და სერვო გაჩერდება.
ნაბიჯი 5: სად ხდება მაგია
ბოლო, მაგრამ არანაკლებ მნიშვნელოვანი, მინდა აღვნიშნო კოდის ზოგიერთი დეტალი მათთვის, ვისაც სურს ჩაერთოს სერიულ კომუნიკაციაში პითონსა და არდუინოს შორის.
ახლა რა ხდება პითონის პროგრამაში?
უპირველეს ყოვლისა, პროგრამა ამოწმებს, თუ რა არის მიმაგრებული COM პორტებში ამ ხაზში და ინახავს მას სიაში:
self. COMPortsList = სია (serial.tools.list_ports.comports ())
შემდეგ ის იმოძრავებს სიაში, სანამ არ აღმოაჩენს ცნობილ CH340 ჩიპს, შეინახავს მას და შემდეგ ამყარებს სერიულ კავშირს for-loop– ის შემდეგ. გაითვალისწინეთ, რომ for-loop იშლება როგორც კი პირველი CH340 მოიძებნება.
for p in self. COMPortsList: თუ "CH340" in p [1]: # ეძებს Arduino Clone self. COMPort = p [0] შესვენება სხვაგან: გაივლის თვითმმართველობას. Ser = სერიული. სერიული (self. COMPort, 57600)
სერიული კავშირი დამყარებულია COM პორტთან ერთად baudrate 57600.
და რას აკეთებს არდუინოს კოდი? ისე, რადგან Arduino– ს აქვს მხოლოდ ერთი COM პორტი, სერიული კავშირი მხოლოდ ერთი ხაზია:
სერიული. დასაწყისი (57600);
ახლა, ჩვენ შეგვიძლია გამოვიყენოთ ორივე პორტი კომუნიკაციისთვის. ამ შემთხვევაში, მხოლოდ შეტყობინებები პითონიდან არდუინოსკენ. შეტყობინებები იგზავნება აქ პითონიდან. სერიული კავშირი ნაგულისხმევად გადასცემს ბაიტებს. ეს არის ასევე მონაცემების გაგზავნის ყველაზე სწრაფი გზა და რამდენადაც მე ვიცი, ის ჯერ კიდევ საკმაოდ გავრცელებულია. ასე რომ, სერვის ნომრის ints (ასე რომ არდუინომ იცის, რომელი სერვო უნდა გადავიდეს) და მიკროწამებში პოზიცია ბაიტად იქცევა.
ბრძანება = struct.pack ('> B', self. Place) # შიდა ცვლადი "self. Place" გადაიქცევა ბაიტად
self. Ser.write (Command) # დაწერეთ ბაიტი Serial-Port Command = int (self. ServoPos.get ()) // 10 # ველიდან შეყვანის წაკითხვა და int ბრძანების = ساختار.პაკეტი (' > B ', ბრძანება) # int- ის გადაქცევა ბაიტში. Ser.write (Command) # სერიის პორტზე ბაიტის წერა
ასევე, მონაცემების გაანალიზებას დრო სჭირდება (მაგალითად, ოთხი ბაიტის "1", "2", "3" და "0" ინტერ 1230 ინტერპრეტაციით, არა როგორც ოთხი განსხვავებული სიმბოლო) და უმჯობესია ამის გაკეთება არ Arduino- ზე.
არდუინოს მხარეს, გაგზავნილი ინფორმაცია მიიღება შემდეგნაირად:
თუ (Serial.available ()> 1) {// თუ სერიული მონაცემები ხელმისაწვდომია, მაშინ მარყუჟი შეიყვანება c = Serial.read (); // პირველი ბაიტი (servo ნომერი) ინახება ცვლადი Micros = Serial.read (); // სერვოს პოზიცია ინახება აქ Micros = Micros * 10; }
გირჩევთ:
Python Tic Tac Toe თამაში: 4 ნაბიჯი
Python Tic Tac Toe თამაში: python tic tac toe თამაში ეს თამაში დამზადებულია პითონში, ეს არის კომპიუტერული ენა, მე გამოვიყენე პითონის რედაქტორი სახელწოდებით: pycharm ასევე შეგიძლიათ გამოიყენოთ ჩვეულებრივი პითონის კოდის რედაქტორი
Atendente Automático Com Python No Google Colab: 5 ნაბიჯი
Atendente Automático Com Python No Google Colab: ოლ პესო! რა თქმა უნდა? გნებავთ გილჰერმე, არ არის დაგეგმილი, როგორც ჩანს, ChatBot– მა გამოიყენა პროგრამები Python e o Google Colab– სთვის
მარტივი გამოცნობის თამაში - Python + XBees + Arduino: 10 ნაბიჯი
მარტივი გამოცნობის თამაში - Python + XBees + Arduino: აი, როგორ მუშაობს თამაში: თქვენ გაქვთ 4 მცდელობა გამოიცნოთ ასო ‘a’ - ‘h’ - > გამოიცანით სწორი ასო: თქვენ გაიმარჯვებთ! ?-> გამოიცანი არასწორი ასო: თამაში დასრულდა?-> გამოიცანით ნებისმიერი სხვა პერსონაჟი „ა“- „თ“-ს გარეთ: თამაში დასრულდა? თქვენი არდუინო მოგცემთ საშუალებას
Arduino და Python სერიული კომუნიკაცია - კლავიატურის ჩვენება: 4 ნაბიჯი
Arduino და Python სერიული კომუნიკაცია - კლავიატურის ჩვენება: ეს პროექტი შექმნილია mac მომხმარებლებისთვის, მაგრამ ის ასევე შეიძლება განხორციელდეს Linux და Windows– ისთვის, ერთადერთი ნაბიჯი, რომელიც განსხვავებული უნდა იყოს არის ინსტალაცია
აკონტროლეთ Arduino YÚN– ის წვდომა MySQL, PHP5 და Python– ით: 11 ნაბიჯი (სურათებით)
აკონტროლეთ Arduino YÚN– ის წვდომა MySQL, PHP5 და Python– ით: გამარჯობა მეგობრებო! ისე, როგორც მოგეხსენებათ, სექტემბერში არდუინოს ახალი პრემიერის ფარი Arduino YUN. ამ პატარა მეგობარს აქვს Linux- ში ჩამონტაჟებული სისტემა, რომლითაც ჩვენ შეგვიძლია გაუშვათ ყველაფერი, რაც თქვენ წარმოგიდგენიათ (ყოველ შემთხვევაში ჯერჯერობით). მიუხედავად იმისა, რომ ძალიან ცოტა ინფორმაციაა