Cyberglove

October 11, 2011

ვირტუალური რიალობა, ვიდეო თამაშები, რობოტიზირებული სისტემები ეს ტექნიკის ის დარგებია სადაც კიბერხელთათმანი გამოიყენება, გარდა ამ დარგებისა პერსპექტივაში არსებობს მისი სახვადასხვა მიმართულებით გამოყენების საშუალებები. რაც არ უნდა იყოს იდეა რომ გააკეთო ისეთი რაღაც რაც საშუალებას მოგცემს გადასცე ხელის თითების ან მთელი სხეულის  მოძრაობა კომპიუტერს ციფრული მონაცემების სახით საკმაოდ საიტერესოა თან დამატებითი სტიმულია და  ერთ–ერთი საუკეთესო საშუალება კომპიუტერთან დაკავშირებული მიკროპროცესორული სისტემების შესასწავლად. პირველად, როდესაც დავიწყე ამაზე ფიქრი იყო გადასაწყვეტი რამოდენიმე ტექნიკური პრობლემა, პირველი გადამწოდების (სენსორების) შერჩევა, მრავალი ვარიანტიდან გამოიკვეთა სამი: ე.წ.  დრეკადი სენსორი (Flex Sensor) რომელიც იცვლის წინაღობას იმის პროპორციულად თუ რამდენათ არის მოხრილი,

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

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

რამდენიმე ცდის შემდედ შუქდიოდურ სენსორზე, ვარჩიე ისევ მარტივად დრეკადი სენსორით გამეკეთებინა, ვიფიქრე საცდელად სულ საკმარისი იქნებოდა სამი სენსორი. ამის მერე მოსაფიქრებელი იყო თუ როგორ მიმეღო სენსორის მოხრის შესაბამისი ძაბვა 0 დან 5 ვოლტამდე (ეს იდეალურ შემთხვევაში). სენსორით და 1kΩ –იანი რეზისტორით გავაკეთე ძაბვის გამყოფი, რომლიდანაც სენსორის მოხრის კუთხის შესაბამისად ვიღებდი ძაბვას 2.5v დან 3v– მდე, აღმოჩნდა რომ ძაბვის ცვლილება სულ რაღაც ნახევარი ვოლტით ხდებოდა, ამიტომ საჭირო გახდა სიგნალის გაძლიერება, მოცემულ შემთხვევაში ყველაზე კარგი ვარიანტია ოპერაციული გამაძლიერებელი. როგორც ქვემოთ მოცემულ სქემაზე ჩანს სენსორი ჩართულია რეზისტორულ ბოგირულ სქემაში, ასეთი მეთოდით ვიღებთ ცვალებად ძაბვას 0– დან 0.5v-მდე და ვაძლიერებთ ოპერაციული გამაძლიერებელით. გამაძლიერებელი ჩართულია დიფერენციალური სქემით, ხოლო მის გამოსასვლელზე ვიღებთ სენსორის პროპორციულ ცვალებად ძაბვას 0v–3.5v შუალედში, შემდეგ გაძლიერებული სიგნალი გადაეცემა მიკროკონტროლერის შესასვლელზე, რომელიც წინასწარ პროგრამულად განსაზღვრულია როგორც ანალოგური სიგნალის შესასვლელი.

სქემაზე მოცემული max232 მიკროსქემა არის ორმაგი მიმღებ დრაივერი მიმდევრობითი ინტერფეისისთვის, ანუ RS-232 სტანდარტის სიგნალებს (რომლის ლოგიკურ ერთსა და ნულს შეესაბამება –3v დან -15v და +3v დან +15v) გარდაქმნის  TTL/CMOS -ის ტიპის სტანდარტულ სიგნალებათ.  პროგრამა დაწერილია mikroC კომპილატორზე. C პროგრამას და მიმდევრობით პორტთან მუშაობის პრინციპებს მოგვიანებით სხვა სტატიაში განვიხილავ.

–––––> C პროგრამის კოდი <–––––––

–––––> სადემონსტრაციო პროგრამა <––––––                                                                                                                                                                                                                                                                         სადემონსტრაციო პროგრამა მუშაობს COM13 პორტთან

Advertisements

LED 7 Segment Display Voltmeter

October 9, 2011

მოცემულ თემაში თანმიმდევრობით გამოვაქვეყნებ მცირე პროექტებს რაც ბოლო ერთი წლის განმავლობაში გამიკეთებია. დავიწყებ ყველაზე მარტივი პროექტით,  ციფრული ვოლტმეტრით, რაც უბრალოდ მარტივი ანალოგურ–ციფრული გარდამქმნელია ორი  7 სეგმენტიანი  LED დისპლეით. ვოლტმეტრი გაკეთებულია PIC16f887 (ამ შემთხვევაში ვიყენებთ მისი შესაძლებლობების ძალზე უმნიშნელო ნაწილს) მიკროკონტროლერის ბაზაზე, ანალოგიური ვოლტმეტრის გაკეთება შესაძლებელია ნებისმიერი pic16 ტიპის მიკროკონტროლერით რომელსაც 10 ან მეტ ბიტიანი ანალოგურ-ციფრული გარდამქმნელი გააჩნია.

პროგრამა დაწერილია microC  კომპილატორზე, C დან კომპილირებული HEX ფაილი იწერება კონტროლერის ფლეშ მეხსიერებაში. პროგრამის ჩასაწერად გამოიყენება PICkit 2 პროგრამატორი.

––––> პროგრამა microC-ზე <––––


UART (Universal Asynchronous Receiver/Transmitter)

October 9, 2011

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

http://www.rose-hulman.edu/class/me/HTML/ME430_Material_2_0/Public/VideoLectureHandouts/UART_Communication.pdf

http://www.mikroe.com/eng/chapters/view/16/chapter-3-pic16f887-microcontroller/

http://easyelectronics.ru/avr-uchebnyj-kurs-peredacha-dannyx-cherez-uart.html