Talaan ng mga Nilalaman:

TfCD - Plus: 7 Hakbang
TfCD - Plus: 7 Hakbang

Video: TfCD - Plus: 7 Hakbang

Video: TfCD - Plus: 7 Hakbang
Video: FlipTop - Tipsy D/Third D vs G-Spot/Mac T @ Dos Por Dos 2 2024, Nobyembre
Anonim
Image
Image
Mga sangkap
Mga sangkap

Ang Plus ay isang maliit na matalinong ilaw, na hindi lamang inaabisuhan ang mga tao tungkol sa kalagayan ng panahon, ngunit lumikha din ng isang kasiya-siyang karanasan para sa mga gumagamit ng mga pagbabagong ginawa sa kulay ng ilaw sa pamamagitan ng pag-ikot ng plus. Ang hugis na ito ay nagbibigay sa gumagamit ng pagkakataon na pagsamahin ang maraming mga plus module o lumikha ng isang malaking lampara na may maraming mga plus piraso na inilagay ng mga kaibigan. Ang proyektong ilaw na ito ay bahagi ng kursong Advanced Concept Design (ACD) sa unibersidad ng TU Delft, at ang teknolohiyang ipinatupad sa pamamagitan ng paggamit ng praktikal na TfCD bilang mapagkukunan ng inspirasyon.

Hakbang 1: Mga Sangkap

Mga sangkap
Mga sangkap
Mga sangkap
Mga sangkap

1 Raspberry pi zero w

1 Groove Adxl345 accelerometer

4 Ws2812b LED

1 Prototyping board

Naka-print at naka-cut na enclosure na laser

Hakbang 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Mga LED

Ang Neopixel LEDs ay mayroong 4 na pin na pinangalanan: + 5V, GND, Data In at Data out.

  1. Ang pin 4 ng raspberry pi ay konektado sa + 5V ng lahat ng mga LED
  2. Ang Pin 6 ng raspberry pi ay konektado sa GND ng lahat ng LEDS
  3. Ang data Sa pin ng unang LED ay konektado sa pin 12 sa raspberry pi.
  4. Ang Data out pin ng unang LED ay konektado sa Data sa pangalawa at iba pa.

Mangyaring tingnan ang diagram ng mga kable para sa isang mas mahusay na pag-unawa.

Accelerometer

Ang accelerometer ay may 4 na pin na pinangalanan: VCC, GND, SDA at SCL.

  1. Ang pin 1 ng raspberry pi ay konektado sa VCC.
  2. Ang pin 3 ng raspberry pi ay konektado sa SCL.
  3. Ang pin 5 ng raspberry pi ay konektado sa SDA.
  4. Ang Pin 9 ng raspberry pi ay konektado sa GND.

Magtayo

  1. Para sa kaginhawaan, ang mga LED ay maaaring solder sa isang prototyping board. Napagpasyahan naming gupitin ang board sa hugis ng isang plus upang magkasya ito nang maayos sa loob ng kaso na dinisenyo ng 3D.
  2. Kapag na-solder na namin ang mga LED sa board, nag-solder kami ng mga wire ng jumper upang gawin ang mga koneksyon sa pagitan ng isang 0.1 "header na kumonekta at ang mga LED. Ang header connector ay ginagamit upang mabawasan ang raspberry pi na ididiskonekta at muling magamit para sa isang hinaharap na proyekto.

Hakbang 3: Software

Software
Software

Imahe ng Operating System ng Raspberry Pi

Kailangan muna nating itaas at patakbo ang Raspberry Pi. Upang magawa ito sinusunod namin ang mga hakbang na ito:

  1. I-download ang pinakabagong bersyon ng Raspbian mula rito. Maaari mong i-download ito nang direkta o sa pamamagitan ng mga torrents. Kakailanganin mo ang isang manunulat ng imahe upang isulat ang na-download na OS sa SD card (micro SD card sa kaso ng modelo ng Raspberry Pi B + at Raspberry Pi Zero).
  2. Kaya i-download ang "win32 disk imager" mula dito. Ipasok ang SD card sa laptop / pc at patakbuhin ang manunulat ng imahe. Sa sandaling bukas, mag-browse at piliin ang na-download na file ng imahe ng Raspbian. Piliin ang tamang aparato, iyon ang drive na kumakatawan sa SD card. Kung ang drive (o aparato) na napili ay naiiba mula sa SD card kung gayon ang iba pang napiling drive ay magiging masama. KAYA mag-ingat.
  3. Pagkatapos nito, mag-click sa pindutang "Isulat" sa ibaba. Bilang isang halimbawa, tingnan ang imahe sa ibaba, kung saan ang SD card (o micro SD) drive ay kinakatawan ng titik na "G: \" Handa na ang OS para sa normal na paggamit. Gayunpaman sa tutorial na ito gagamitin namin ang Raspberry Pi sa mode na walang ulo. Nangangahulugan ito nang walang pisikal na monitor at keyboard na nakakabit dito!
  4. Matapos masunog ang SD card, huwag alisin ito mula sa iyong computer! Gumamit ng isang text editor upang buksan ang config.txt file na nasa SD card. Pumunta sa ibaba at idagdag ang dtoverlay = dwc2as sa huling linya:
  5. I-save ang config.txt file bilang payak na teksto at pagkatapos ay buksan ang cmdline.txt Pagkatapos ng rootwait (ang huling salita sa unang linya) magdagdag ng isang puwang at pagkatapos ang mga module-load = dwc2, g_ether.
  6. Alisin ngayon ang SD card mula sa iyong PC at ipasok ito sa Raspberry Pi at ikonekta ito sa iyong PC gamit ang isang USB cable. Kapag na-boot ang OS, dapat mong makita ang isang bagong aparato ng Ethernet Gadget na natuklasan.
  7. Maaari mong gamitin ang ssh [email protected] upang kumonekta sa board at kontrolin ito nang malayuan. Para sa mas detalyadong mga tagubilin tungkol sa operasyon na walang ulo pumunta dito. Neopixel Driver

Ang rpi_ws281x library ay ang susi na ginagawang posible ang paggamit ng NeoPixels gamit ang Raspberry Pi.

Una kailangan naming i-install ang mga tool na kinakailangan upang maipon ang library. Sa iyong Raspberry Pi run: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Ngayon patakbuhin ang mga utos na ito upang i-download at iipon ang library:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Sa wakas, matapos matagumpay na naipon ang library, mai-install namin ito para sa sawa gamit ang:

cd python && sudo python setup.py install Ngayon ay dumating ang code ng sawa na hinihimok ang mga LED. Ang code ay medyo simple sa ilang mga puna upang matulungan ka. mula sa neopixel import * # NeoPixel configurations LED_PIN = 18 # Raspberry Pi's GPIO pin na konektado sa mga pixel LED_BRIGHTNESS = 255 # Itakda sa 0 para sa pinakamadilim at 255 para sa pinakamaliwanag na LED_COUNT = 4 # Bilang ng LED pixel strip = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, Mali, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Pinasimulan ang strip ng library.begin () strip.setPixelColor (0, Kulay (255, 255, 255)) strip.show ()

ADXL345 Driver

Ang sensor ng accelerometer na napili namin ay may isang I2C interfae para sa pakikipag-usap sa labas ng mundo. Sa kasamaang palad para sa amin, ang Raspberry Pi ay mayroon ding interface ng I2C. Kailangan lamang naming paganahin ito upang magamit ito sa aming sariling code.

Tumawag sa tool na pagsasaayos ng Raspbian gamit ang sudo raspi-config. Kapag tumatakbo na, pumunta sa Mga Pagpipilian sa Interfacing, Mga Advanced na Pagpipilian at pagkatapos ay paganahin ang I2C. I-install ang mga kaugnay na mga module ng sawa upang magamit namin ang interface ng I2C sa sawa:

sudo apt-get install python-smbus i2c-tool Ang sumusunod na python code ay nagpapahintulot sa amin na makipag-usap sa sensor ng accelerometer at basahin ang mga halaga ng rehistro para sa aming sariling mga layunin. import smbus import struct # Mga configure ng Accelerometer bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (address, 45, 0x00) # Pumunta sa standby mode bus.write_byte_data (address, 44, 0x06) # Bandwidth 6.5Hz bus.write_byte_data (address, 45, 0x08) # Pumunta sa mode ng pagsukat # Basahin ang data mula sa sensor buf = bus.read_i2c_block_data (address, 50, 6) # I-unpack ang data mula sa int16_t sa python integer data = struct.unpack_from ("> hhh", buffer (bytearray (buf)), 0)

x = float (data [0]) * makakuha

y = float (data [1]) * makakuha

z = float (data [2]) * makakuha

Detector ng Kilusan

Ang isa sa tampok na ilaw na ginagawa namin, ay maaari itong makakita ng paggalaw (o kakulangan doon) upang pumasok sa interactive mode (kung saan ang ilaw ay nagbabago batay sa pag-ikot) at mode ng pagtataya ng panahon (kung saan nagbabago ang ilaw depende sa taya ng panahon para sa araw na ito). Ang sumusunod na code ay gumagamit ng nakaraang pag-andar upang basahin ang mga halaga ng pagpapabilis para sa 3-axes at alertuhan kami kapag may paggalaw.

accel = getAcceleration ()

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

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

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

kung dx> ilipatThreshold o dy To> ilipatThreshold o dz> ilipatThreshold:

print 'inilipat'

lumipat = Totoo

iba pa:

lumipat = Mali

Weather API

Upang makatanggap ng pagtataya ng panahon maaari naming gamitin ang Yahoo Weather. Nagsasangkot ito ng pakikipag-usap sa Yahoo Weather Rest API na maaaring medyo kumplikado. Sa kasamaang palad para sa amin, ang mahirap na bahagi ay naalagaan sa anyo ng module ng panahon-api para sa sawa.

  1. Una kailangan naming i-install ang modyul na ito gamit ang: sudo apt install python-pip && sudo pip install weather-api
  2. Mangyaring bisitahin ang website ng may-akda para sa karagdagang impormasyon tungkol sa modyul na ito.

Sa sandaling mai-install ang sumusunod na code ay makakakuha ng kondisyon ng panahon para sa sandaling ito

mula sa pag-import ng panahon Weatherweather = Panahon ()

lokasyon = panahon.lookup_by_location ('dublin')

kondisyon = lokasyon.condition ()

print (kondisyon.text ())

Pinagsasama ang lahat

Ang buong code para sa proyekto na kumokonekta sa lahat ng mga piraso sa itaas ay matatagpuan dito.

Awtomatikong sinisimulan ang script ng sawa sa oras ng pag-boot

Upang mailagay ang raspberry pi sa isang kahon at patakbuhin nito ang aming code sa tuwing ikinonekta namin ito sa lakas, dapat naming tiyakin na ang code ay awtomatikong nagsisimula sa panahon ng pag-boot. Upang magawa ito, gumagamit kami ng isang tool na tinatawag na cron.

  1. Tumawag muna sa tool ng cron gamit ang: sudo crontab -e
  2. Ang mga nakaraang hakbang ay magbubukas ng isang file ng pagsasaayos, kung saan idinagdag namin ang sumusunod na linya:

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

Hakbang 4: Pagmomodelo at 3D Print

Pagmomodelo at 3D Print
Pagmomodelo at 3D Print
Pagmomodelo at 3D Print
Pagmomodelo at 3D Print

Ang modelo ng 3D ng Plus ay ginawa sa Solidworks, at nai-save bilang. Stl format. Pagkatapos para sa pag-print ng 3D ng modelo,. Stl file ay na-import sa Cura software. Ang bawat panig ng plus ay tumagal ng 2:30 hrs upang makabuo; kaya't ang bawat buong Plus ay tumagal ng halos 5 oras upang mai-print. At para sa mga transparent na gilid, ang plexiglass ay laser-cut.

Hakbang 5: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Gamit ang naka-print na bahagi ng 3D, ang electronics at software na nasa kamay, maaari na nating magtipun-tipon ang huling produkto.

  1. Ang 3D na naka-print sa itaas at ilalim na mga plato, nalaman naming mas malinaw kaysa sa inaasahan. Ang isang layer ng aluminyo foil ay nalutas ang isyu ng light leakage.
  2. Gayunpaman, ang mga sheet na ito ay kondaktibo at maaaring maging sanhi ng mga shorts sa loob ng aming walang proteksyon na circuit. Kaya ang isa pang layer ng puting card card ay nakadikit sa itaas.
  3. Ang nagkakalat na mga segment ng Plexiglas ay nakadikit sa isa sa mga plate ng gilid.
  4. Ang isang butas ay drilled sa isa sa mga gilid 3D naka-print na panel. Ito ay upang makapasa tayo sa cord ng kuryente.
  5. Minsan, ang kurdon ng kuryente ay nakabitin sa butas, hinihinang namin ito sa aming prototyping board.
  6. Ikabit namin ang sensor sa raspberry pi at pagkatapos ay isaksak ito sa konektor.
  7. Ikinakabit namin ang 2 piraso upang makuha ang aming pangwakas na produkto.
  8. Opsyonal na maaari mong kola ang 2 piraso upang makagawa ng isang mas permanenteng koneksyon. Gayunpaman magkaroon ng kamalayan na marahil mahirap makapasok sa kahon matapos itong nakadikit kung nais mong baguhin ang code sa paglaon.

Inirerekumendang: