Სარჩევი:

TfCD - პლუს: 7 ნაბიჯი
TfCD - პლუს: 7 ნაბიჯი

ვიდეო: TfCD - პლუს: 7 ნაბიჯი

ვიდეო: TfCD - პლუს: 7 ნაბიჯი
ვიდეო: Chiki Toonz - Chu Chu Ua - Musica Infantil 2024, ივლისი
Anonim
Image
Image
ინგრედიენტები
ინგრედიენტები

პლუსი არის მინიმალური ჭკვიანი შუქი, რომელიც არა მხოლოდ აცნობებს ხალხს ამინდის მდგომარეობის შესახებ, არამედ ქმნის სასიამოვნო გამოცდილებას მომხმარებლებისთვის სინათლის ფერში შეტანილი ცვლილებებით, პლიუსის ბრუნვით. მისი ფორმა მომხმარებელს აძლევს შესაძლებლობას დააკავშიროს რამდენიმე პლუს მოდული ან შექმნას უზარმაზარი ნათურა მეგობრების მიერ მოთავსებული უამრავი პლუს ცალით. ეს განათების პროექტი არის TU Delft უნივერსიტეტის გაფართოებული კონცეფციის დიზაინის (ACD) კურსის ნაწილი და ტექნოლოგია, რომელიც განხორციელებულია TfCD– ის პრაქტიკული გამოყენებით, როგორც შთაგონების წყარო.

ნაბიჯი 1: ინგრედიენტები

ინგრედიენტები
ინგრედიენტები
ინგრედიენტები
ინგრედიენტები

1 ჟოლო პი ნულოვანი w

1 Groove Adxl345 ამაჩქარებელი

4 Ws2812b LED

1 პროტოტიპის დაფა

3D ბეჭდვით და ლაზერულად მოჭრილი შიგთავსები

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

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

LED- ები

Neopixel LED- ებს აქვთ 4 პინი სახელწოდებით: +5V, GND, Data In და Data out.

  1. ჟოლოს pi 4 უკავშირდება ყველა LED- ის +5V- ს
  2. ჟოლოს pi 6 უკავშირდება ყველა LEDS- ის GND- ს
  3. მონაცემები პირველი LED- ის პინში უკავშირდება ჟოლოს პიზე 12 -ს.
  4. პირველი LED- ის Data out pin უკავშირდება მონაცემებს მეორეში და ასე შემდეგ.

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

აქსელერომეტრი

აქსელერომეტრს აქვს 4 პინი სახელწოდებით: VCC, GND, SDA და SCL.

  1. ჟოლოს პი 1 -ი უკავშირდება VCC- ს.
  2. ჟოლოს პი 3, უკავშირდება SCL– ს.
  3. ჟოლოს პი 5 -ი უკავშირდება SDA- ს.
  4. ჟოლოს pi 9 უკავშირდება GND- ს.

აშენება

  1. მოხერხებულობისთვის, LED- ები შეიძლება გაერთიანდეს პროტოტიპის დაფაზე. ჩვენ გადავწყვიტეთ დაფა დავჭრათ პლიუს ფორმაში ისე, რომ იგი კარგად მოთავსდეს 3D დიზაინის შემთხვევაში.
  2. მას შემდეგ რაც LED- ები შევაერთეთ დაფაზე, შევაერთეთ ჯამპერის მავთულები, რათა მოხდეს კავშირი 0.1 "სათაურის შეერთებასა და LED- ებს შორის. სათაურის კონექტორი გამოიყენება ჟოლოს pi გათიშვისა და ხელახალი გამოყენებისთვის მომავალი პროექტისათვის.

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

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

Raspberry Pi ოპერაციული სისტემის სურათი

ჩვენ ჯერ უნდა გავუშვათ Raspberry Pi. ამისათვის ჩვენ მივყვებით ამ ნაბიჯებს:

  1. ჩამოტვირთეთ Raspbian– ის უახლესი ვერსია აქედან. შეგიძლიათ გადმოწეროთ პირდაპირ ან ტორენტის საშუალებით. თქვენ დაგჭირდებათ გამოსახულების ავტორი, რომ გადმოწეროთ გადმოწერილი ოპერაციული სისტემა SD ბარათში (მიკრო SD ბარათი Raspberry Pi B+ მოდელის და Raspberry Pi Zero შემთხვევაში).
  2. ასე რომ გადმოწერეთ "win32 დისკის გამოსახულება" აქედან. ჩადეთ SD ბარათი ლეპტოპში/კომპიუტერში და გაუშვით სურათის დამწერი. გახსნის შემდეგ დაათვალიერეთ და შეარჩიეთ გადმოწერილი Raspbian გამოსახულების ფაილი. შეარჩიეთ სწორი მოწყობილობა, ეს არის დისკი, რომელიც წარმოადგენს SD ბარათს. თუ არჩეული დისკი (ან მოწყობილობა) განსხვავდება SD ბარათისგან, მაშინ სხვა არჩეული დისკი დაზიანდება. ასე რომ ფრთხილად იყავი.
  3. ამის შემდეგ, დააჭირეთ ღილაკს "ჩაწერა" ბოლოში. როგორც მაგალითი, იხილეთ ქვემოთ მოცემული სურათი, სადაც SD ბარათის (ან მიკრო SD) დისკი წარმოდგენილია ასო "G: \" - ით. ოპერაციული სისტემა უკვე მზად არის ნორმალური გამოყენებისთვის. თუმცა ამ გაკვეთილში ჩვენ ვაპირებთ გამოვიყენოთ Raspberry Pi უთავო რეჟიმში. ეს ნიშნავს ფიზიკური მონიტორის და მასზე დამაგრებული კლავიატურის გარეშე!
  4. SD ბარათის დაწვის შემდეგ, არ გამოაგდოთ იგი თქვენი კომპიუტერიდან! გამოიყენეთ ტექსტური რედაქტორი, რათა გახსნათ config.txt ფაილი, რომელიც SD ბარათშია. გადადით ბოლოში და დაამატეთ dtoverlay = dwc2 როგორც ბოლო ხაზი:
  5. შეინახეთ config.txt ფაილი უბრალო ტექსტად და შემდეგ გახსენით cmdline.txt rootwait– ის შემდეგ (ბოლო სიტყვა პირველ სტრიქონზე) დაამატეთ სივრცე და შემდეგ მოდულები-load = dwc2, g_ether.
  6. ახლა ამოიღეთ SD ბარათი თქვენი კომპიუტერიდან და ჩადეთ იგი Raspberry Pi– ში და დაუკავშირეთ იგი თქვენს კომპიუტერს USB კაბელის გამოყენებით. მას შემდეგ, რაც ოპერაციული სისტემა ამოქმედდება, თქვენ უნდა ნახოთ ახალი Ethernet Gadget მოწყობილობა.
  7. თქვენ შეგიძლიათ გამოიყენოთ ssh [email protected] დაფაზე დასაკავშირებლად და დისტანციურად გასაკონტროლებლად. უფრო თავდაუზოგავი ოპერაციის შესახებ უფრო დეტალური ინსტრუქციისთვის გადადით აქ. ნეოპიქსელის დრაივერი

Rpi_ws281x ბიბლიოთეკა არის გასაღები, რაც შესაძლებელს ხდის ნეოპიქსელების გამოყენებას Raspberry Pi– ით.

პირველ რიგში ჩვენ უნდა დავაყენოთ ბიბლიოთეკის შესადგენად საჭირო ინსტრუმენტები. თქვენი Raspberry Pi გაშვებისას: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig ახლა გაუშვით ეს ბრძანებები ბიბლიოთეკის გადმოსატვირთად და შესადგენად:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons საბოლოოდ, ბიბლიოთეკის წარმატებით შედგენის შემდეგ, ჩვენ შეგვიძლია დავაინსტალიროთ ის პითონისთვის:

cd python && sudo python setup.py install ახლა მოდის პითონის კოდი, რომელიც მართავს LED- ებს. კოდი საკმაოდ მარტივია რამდენიმე კომენტარით, რომელიც დაგეხმარებათ. ნეოპიქსელის იმპორტიდან * # NeoPixel კონფიგურაცია LED_PIN = 18 # ჟოლოს Pi GPIO pin უკავშირდება პიქსელებს LED_BRIGHTNESS = 255 # დაყენებულია 0 მუქი და 255 ყველაზე ნათელ LED_COUNT = 4 # LED პიქსელების ზოლის რაოდენობა = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 5, ყალბი, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # ბიბლიოთეკის ინიციალიზაცია strip.begin () strip.setPixelColor (0, ფერი (255, 255, 255)) strip.show ()

მძღოლი ADXL345

აქსელერომეტრის სენსორს, რომელიც ჩვენ შევარჩიეთ, აქვს გარე სამყაროსთან კომუნიკაციის I2C ინტერფეისი. საბედნიეროდ ჩვენთვის, Raspberry Pi– ს ასევე აქვს I2C ინტერფეისი. ჩვენ უბრალოდ უნდა მივცეთ საშუალება გამოიყენოს იგი ჩვენს კოდში.

დარეკეთ Raspbian კონფიგურაციის ინსტრუმენტზე sudo raspi-config გამოყენებით. გაშვების შემდეგ, გადადით ინტერფეისის პარამეტრებზე, გაფართოებულ პარამეტრებზე და შემდეგ ჩართეთ I2C. დააინსტალირეთ შესაბამისი პითონის მოდულები, რათა ჩვენ გამოვიყენოთ პითონში I2C ინტერფეისი:

sudo apt-get install python-smbus i2c-tools შემდეგი პითონის კოდი გვაძლევს საშუალებას დავუკავშირდეთ ამაჩქარებლების სენსორს და წავიკითხოთ მისი რეგისტრის მნიშვნელობები ჩვენი მიზნებისათვის. იმპორტი smbus იმპორტი სტრუქტურა # აქსელერომეტრის კონფიგურაციის ავტობუსი = smbus. SMBus (1) მისამართი = 0x53 მოგება = 3.9e-3 bus.write_byte_data (მისამართი, 45, 0x00) # გადადით ლოდინის რეჟიმში bus.write_byte_data (მისამართი, 44, 0x06) # გამტარუნარიანობა 6.5Hz bus.write_byte_data (მისამართი, 45, 0x08) # გადადით გაზომვის რეჟიმში # მონაცემების წაკითხვა სენსორიდან buf = bus.read_i2c_block_data (მისამართი, 50, 6) # მონაცემების შეფუთვა int16_t– დან პითონის მთელ რიცხვზე = struct.unpack_from ("> hhh", ბუფერი (bytearray (buf)), 0)

x = float (მონაცემები [0]) * მოგება

y = float (მონაცემები [1]) * მოგება

z = float (მონაცემები [2]) * მოგება

მოძრაობის დეტექტორი

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

accel = getAcceleration ()

dx = abs (prevAccel [0] - accel [0])

dy = abs (prevAccel [1] - accel [1])

dz = abs (prevAccel [2] - accel [2])

თუ dx> moveThreshold ან dy To> moveThreshold ან dz> moveThreshold:

ბეჭდვა "გადავიდა"

გადავიდა = მართალია

სხვა:

გადავიდა = ყალბი

ამინდის API

ამინდის პროგნოზის მისაღებად შეგვიძლია გამოვიყენოთ Yahoo Weather. ეს გულისხმობს Yahoo Weather Rest API– სთან საუბარს, რომელიც შეიძლება საკმაოდ რთული იყოს. საბედნიეროდ ჩვენთვის, რთულ ნაწილს უკვე გავუფრთხილდით პითონის ამინდის ამინდი-მოდულის სახით.

  1. პირველ რიგში ჩვენ გვჭირდება ამ მოდულის დაყენება: sudo apt install python-pip && sudo pip install weather-api
  2. გთხოვთ ეწვიოთ ავტორის ვებსაიტს ამ მოდულის შესახებ დამატებითი ინფორმაციისათვის.

ინსტალაციის შემდეგ, შემდეგი კოდი იღებს ამინდის მდგომარეობას ამ მომენტისთვის

ამინდის იმპორტიდან ამინდი = ამინდი ()

მდებარეობა = weather.lookup_by_location ('dublin')

მდგომარეობა = მდებარეობა. მდგომარეობა ()

ბეჭდვა (პირობა. ტექსტი ())

ყველაფერს ერთად ათავსებს

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

ჩატვირთვის დროს პითონის სკრიპტის ავტომატური გაშვება

იმისთვის, რომ შევძლოთ ჟოლოს pi ყუთში ჩადება და ის აწარმოებს ჩვენს კოდს ყოველ ჯერზე, როდესაც მას დავუკავშირდებით დენს, ჩვენ უნდა დავრწმუნდეთ, რომ კოდი ავტომატურად იწყება ჩატვირთვისას. ამისათვის ჩვენ ვიყენებთ ინსტრუმენტს სახელად cron.

  1. პირველი დარეკეთ cron ინსტრუმენტის გამოყენებით: sudo crontab -e
  2. წინა ნაბიჯები გახსნის კონფიგურაციის ფაილს, რომელშიც ჩვენ ვამატებთ შემდეგ სტრიქონს:

    @reboot python /home/pi/light.py &

ნაბიჯი 4: მოდელირება და 3D ბეჭდვა

მოდელირება და 3D ბეჭდვა
მოდელირება და 3D ბეჭდვა
მოდელირება და 3D ბეჭდვა
მოდელირება და 3D ბეჭდვა

პლუს 3D მოდელი დამზადებულია Solidworks– ში და შეინახება. Stl ფორმატში. შემდეგ მოდელის 3D ბეჭდვისთვის. Stl ფაილი იმპორტირებული იქნა Cura პროგრამულ უზრუნველყოფაში. პლიუს თითოეულ მხარეს წარმოება 2:30 სთ დასჭირდა; ასე რომ, ყოველ სრულ პლუსს დაახლოებით 5 საათი დასჭირდა დასაბეჭდად. გამჭვირვალე მხარეებისთვის კი პლექსიგლასი ლაზერულად იყო მოჭრილი.

ნაბიჯი 5: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

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

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

გირჩევთ: