Orodha ya maudhui:
- Hatua ya 1: Wiring Mzunguko
- Hatua ya 2: Kupata Raspberry Pi
- Hatua ya 3: Saa ya Kuandika
- Hatua ya 4: Kuiweka Pamoja
Video: Glasi mahiri: 4 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Halo kila mtu leo nitawaonyesha jinsi ya kutengeneza glasi mahiri nyumbani! Moja ya mambo makuu juu ya glasi nzuri ni faida gani kuwa na kitu kama hiki katika ulimwengu wa leo wa teknolojia na jinsi hakuna toleo moja tu la glasi nzuri kwani zote zina sifa za kushangaza na idadi kubwa ya matumizi ambayo inaweza kuunganishwa. katika siku za usoni. Makala ya glasi hizi nzuri ni pamoja na kukuambia wakati, kukuambia hali ya joto kila dakika 5, kati ya hizo dakika 5 hubadilika kati ya joto la juu na la chini linalotarajiwa kwa siku hiyo, pia inakuambia tarehe. Lakini sifa yake kuu ni kwamba inachukua picha kila sekunde 10 na kisha kuchambua picha hiyo kwa maandishi ambayo itarudisha habari muhimu juu yake, ikiwa itapata swali basi itaijibu kwa kutumia wolfram, au ikiwa itapata hesabu ya hesabu itaitatua!
Ugavi:
Vifaa vinavyohitajika kwa mradi huu ni pamoja na yafuatayo:
1) Raspberry Pi 0 W (Kutoka vilros.com)
2) Onyesho wazi la 128x64 OLED (Kutoka Sparkfun.com)
3) Moduli ya kamera iliyoundwa kwa Raspberry Pi 0 W (Kutoka amazon.com)
4) Glasi yoyote ya chaguo lako
5) waya
6) chuma cha kutengeneza
7) Solder ya bure (kwa sababu hautaki kufa kutokana na risasi)
8) 2 njia ya wambiso
9) kadi ya SD min ya 8gb
10) unganisho la kompyuta na mtandao
Kwa kudhani tayari unayo kompyuta na muunganisho wa mtandao gharama za glasi hizi zitakuja karibu $ 130.00
Hatua ya 1: Wiring Mzunguko
Ili kuonyesha maandishi kwenye skrini utaunganishwa na OLED kupitia I2C au SPI, mimi huchagua I2C kwani ndio niko sawa kutumia lakini ikiwa unahisi kuungana nayo kupitia SPI nenda fuata mafunzo haya kwenye tovuti ya Sparkfun na urudi hapa ukimaliza. https://learn.sparkfun.com/tutorials/transparent-g ……. Ikiwa umechagua I2C kwani nimetengeneza waya kama inavyoonyeshwa na yafuatayo:
Pi / / OLED / /
3.3v 3.3v
GND GND
SDA SDA
SCL SCL
Tafadhali kumbuka kuwa OLED iliyo wazi inaweza kushughulikia 3.3v tu.
Baada ya kumaliza kuunganisha mzunguko, telezesha kebo ya utepe ya moduli ya kamera ndani ya kishikilia kebo ya Riberi kwenye pi ya rasipiberi kwa kuvuta kambamba nyeusi na kuirudisha nyuma mara tu kebo ya Ribbon iko.
Hatua ya 2: Kupata Raspberry Pi
Kutumia ssh tunaweza kufikia pi yetu na pc yetu bila kuunganisha kipanya cha ziada cha nje na ufuatiliaji. Jambo la kwanza unalofanya ni kuunganisha kadi yako ya SD kwenye PC yako na adapta au iliyojengwa kwenye bandari, basi utahitaji kuelekea kwenye kiunga hiki https://www.raspberrypi.org/downloads/raspbian/ na kupakua Raspbian buster na desktop. Pili lazima uweke OS kwenye kadi ya SD ukitumia BalenaEtcher chagua kadi yako ya SD na OS ya Raspbian na ubonyeze "flash" mchakato huu unaweza kuchukua muda ili urudi ukimaliza. Tatu nenda kwenye kadi ya SD katika kigunduzi cha faili au kipata kwenye mac na unda faili ya maandishi iitwayo wpa_supplicant hakikisha unafuta ugani wa.txt na ongeza.conf, kwenye faili weka zifuatazo:
nchi = Marekani
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "WIFI_SSID" scan_ssid = 1 psk = "WIFI_PASSWORD" key_mgmt = WPA-PSK}
Utalazimika kuingiza jina na nywila yako ya WiFi katika sehemu na nchi zinazolingana ikiwa hauko USA. Kumbuka Raspberry Pi inaweza tu kuungana na mtandao wa 2.4Ghz ikimaanisha pc yako pia italazimika kuungana na mtandao huo. Baada ya kuunda faili tupu ya maandishi bila kiendelezi kinachoitwa ssh na kisha toa kadi yako ya SD. Basi utahitaji kusanikisha PuTTY https://www.putty.org/ ambayo ndiyo utatumia kuwezesha ssh. Mara tu ikiwa imewekwa ingiza anwani ya IP ya raspberry pi yako, unaweza kujua ni nini kwa kwenda kwenye tovuti yako ya kuingia na kutazama vifaa vilivyounganishwa.
Baada ya kupata Raspberry Pi itakuuliza uingie, jina la mtumiaji la msingi ni "pi" na nenosiri ni "raspberry". Chapa sudo raspi-config kisha nenda kwenye chaguzi za kuingiliana na uwezeshe kamera, ssh, na i2c, kisha bonyeza kumaliza na uandike reboot ya sudo. Sasa uko tayari kuingiza kwenye raspberry pi, endelea na usanidi Eneo-kazi la Kijijini na uweke anwani yako ya IP ya raspberry pi na sasa uko vizuri kuingiza pi ya raspberry.
Hatua ya 3: Saa ya Kuandika
Nimechagua kuweka alama mpango huu katika chatu ili uhakikishe kuwa umeweka python3.7 au 3.8 kwenye desktop yako. Nambari hii inafanya kazi kwa kutumia seva na mteja, ukiwa ni pc yako. Mteja au rasipberry pi atachukua picha na kuipakia kwenye kisanduku cha matone ambacho kinapatikana na seva ambaye huendesha usindikaji wa picha na utambuzi wa maandishi kwenye picha. Utalazimika kupata wolframalpha, kisanduku cha matone, na programu ya wazi ya programu-jalizi ili hii ifanye kazi, unachohitajika kufanya ni kwenda kwenye usajili wa wavuti na itakupa id-ya programu. na kisha uwaingize katika sehemu zinazolingana zilizoamuliwa na maoni kwenye nambari. Hakikisha umeweka bomba kila kitu na umeweka Tesseract OCR na OpenCV. Unda faili ya chatu inayoitwa Server.py kwenye pc yako na faili iliyoitwa client.py kwenye pi ya raspberry kisha unakili na ubandike nambari hiyo. Lakini ujue kuwa wahusika wenye ujasiri na weupe asili ndio matokeo bora, hii ndio kesi kwa kila programu ya utambuzi wa maandishi.
Viungo vyote vya kujisajili kwa kitambulisho cha programu / /
www.wolframalpha.com/
openweathermap.org/api
www.dropbox.com/developers/documentation
Hakikisha unasakinisha Tesseract OCR na OpenCV / /
github.com/UB-Mannheim/tesseract/wiki
opencv.org/
Server.py:
kuagiza dropbox kutoka PIL kuagiza picha cv2 kuagiza pytesseract kutoka pytesseract kuagiza Pato kuagiza numpy kama np kuagiza wolframalpha kuagiza tundu wakati
dbx = kisanduku cha matone. Dropbox ("dropboxAPIkey")
s = tundu.sogi (tundu. AF_INET, tundu. SOCK_STREAM)
app_id = "Kitambulisho cha App"
mwenyeji = jina tundu. jina la jina ()
bandari = 60567 kuchapisha (mwenyeji) s.bind ((mwenyeji, bandari)) s. sikiliza (2)
wakati Kweli:
c, addr = s.kubali () chapa (f'Got connection from: {addr} ') break
wakati Kweli:
wakati Kweli: metadata ya time.sleep (13.7), f = dbx.files_download ("/ dropbox_API / Image.jpg") out = open ("Image.jpg", 'wb') out.write (f.content) nje. karibu () chapisha ("Picha imepakuliwa!") image = cv2.imread ("Image.jpg") Image = cv2.resize (picha, (640, 480), interpolation = cv2. INTER_AREA) image68 = cv2.rotate (Image, cv2. ROTATE_90_COUNTERCLOCKWISE) kijivu = cv2.cvtColor (picha68, cv2. COLOR_BGR2GRAY)
def kuondoa_kelele (kijivu):
kurudi cv2.medianBlur (kijivu, 5) def kizingiti (kijivu): kurudi cv2. kizingiti (kijivu, 0, 255, cv2. THRESH_BINARY + cv2. THRESH_OTSU) [1] def dilate (gray): kernel = np.ones ((5, 5), np.uint8) kurudi cv2.dilate (kijivu, kernel, iterations = 1) d = pytesseract.image_to_data (grey, output_type = Output. DICT)
n_boxes = len (d ['maandishi'])
kwa i katika anuwai (n_boxes): ikiwa int (d ['conf'] )> 60: (x, y, w, h) = (d ['kushoto'] , d ['top'] , d ['upana'] , d ['urefu'] ) kijivu = cv2. mstatili (kijivu, (x, y), (x + w, y + h), (0, 255, 0), 2) kuvunja pytesseract.pytesseract.tesseract_cmd = r "C: / Program Files / Tesseract-OCR / tesseract.exe" text = pytesseract.image_to_string (kijivu) chapa (maandishi) wakati Kweli: text2 = " "ikiwa len (maandishi)> = 2: c.send (byte (text," utf-8 ")) ikiwa len (maandishi) = 2: swala = mteja wa maandishi = wolframalpha. Client (app_id) res = client.query (swala) jibu = ijayo (matokeo. matokeo). maandishi majibu1 = jibu. sehemu ('\ n') [0] chapa (jibu1) c.tuma (ka (jibu1, "utf-8")) ikiwa len (maandishi) <= 1: c.tuma (ka (maandishi2, "utf-8")) wakati. Kulala (7.5) mapumziko
Mteja.py:
kuagiza dropboximport picameraimport wakati kutoka luma.core.interface.serial kuagiza i2c kutoka luma.core.render kuagiza canvas kutoka luma.oled.device kuagiza ssd1306, ssd1325, ssd1331, sh1106 kuagiza tundu kuagiza wakati kutoka wakati kuagiza kuagiza kulala pyowm serial = i2c (bandari = 1, anwani = 0x3C) kifaa = ssd1306 (serial, zungusha = 1) kamera = picamera. PiCamera () dropbox_access_token = "" # Dropbox-id yako tena computer_path = r "/home/pi/Image.jpg" dropbox_path = f "/dropbox_API/Image.jpg" s = socket.socket (socket. AF_INET, soketi. SOCK_STREAM) host = "" #ip anuani ya pc port yako = 60567 s.connect ((host, port)) msg1 = "" owm = pyowm. OWM ("") # programu-id ya openweathermap num = ["05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "00"] cdt = datetime.datetime.now () min1 = str (cdt.minute) tarehe = str (cdt.day) + "/" + str (cdt. mwezi) + "/" + str (cdt.year) obs = owm.weather_at_place ("") # mji wako na nchi yako katika hali ya hewa ya hali ya hewa = ob.get_weather () temp2 = str (hali ya hewa.pata joto ("fahrenheit") ["te mp_max "]) temp3 = str (hali ya hewa.get_temperature (" fahrenheit ") [" temp_min "]) wakati True: cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.our) na turubai (kifaa) kama chora: chora maandishi ((0, 0), saa, jaza = "nyeupe") chora maandishi ((11, 0), ":", fill = "nyeupe") draw.text ((15, 0), min1, jaza = "nyeupe" ") ikiwa min1 katika num: obs = owm.weather_at_place (" ") # mji wako na nchi yako katika muundo wa kamba tena
hali ya hewa = obs.get_Weather ()
temp = str (hali ya hewa.get_temperature ("fahrenheit") ["temp"]) chora.text ((32, 0), "F", fill = "nyeupe") chora maandishi ((40, 0), temp, jaza = "nyeupe") ikiwa min1 sio katika nambari: chora.text ((40, 0), temp2, fill = "nyeupe") chora maandishi ((32, 0), "F", fill = "nyeupe") kamera.start_preview () time.sleep (2) camera.capture ("/ home / pi / Image.jpg") camera.stop_preview client = dropbox. Dropbox (dropbox_access_token) chapa ("[SUCCESS] akaunti ya kisanduku kilichounganishwa") mteja. file_upload (open (computer_path, "rb"). soma (), dropbox_path) chapa ("[UPLOADED] {}". format (computer_path)) full_msg = "" time.sleep (5) msg = s.recv (100) ikiwa len (msg)> = 2: full_msg + = msg.decode ("utf-8") chapisha (full_msg) cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.hour na turubai (kifaa) kama chora: chora.text ((0, 19), full_msg, fill = "nyeupe") chora maandishi ((0, 0), saa, jaza = "nyeupe") chora maandishi ((11, 0), ":", kujaza = "nyeupe") chora maandishi ((15, 0), min1, jaza = "nyeupe") chora maandishi ((0, 9), "_", fill = " nyeupe ") chora maandishi ((0, 9), tarehe, jaza = "nyeupe") ikiwa min1 kwa num: obs = owm.weather_at_place ("") # mji wako na nchi yako katika muundo wa kamba tena
hali ya hewa = obs.get_Weather ()
temp = str (hali ya hewa.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "nyeupe") chora maandishi ((40, 0), temp, jaza = "nyeupe") ikiwa min1 sio katika nambari: chora.text ((40, 0), temp3, fill = "nyeupe") chora maandishi ((32, 0), "F", fill = "nyeupe") ikiwa len (msg) <= 1: cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.hour) na canvas (kifaa) kama chora: chora.text ((0, 0), saa, jaza = "nyeupe") chora maandishi ((11, 0), ":", fill = "nyeupe") chora maandishi ((15, 0), min1, fill = "nyeupe") chora. maandishi ((0, 9), "_", kujaza = "nyeupe") chora maandishi ((0, 9), tarehe, jaza = "nyeupe") ikiwa min1 kwa num: obs = owm.weather_at_place ("") # mji wako na nchi yako katika muundo wa kamba tena
hali ya hewa = obs.get_Weather ()
temp = str (hali ya hewa.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "nyeupe") chora maandishi ((40, 0), temp, jaza = "nyeupe") ikiwa min1 sio katika nambari: chora.text ((40, 0), temp3, fill = "nyeupe") chora maandishi ((32, 0), "F", fill = "nyeupe") kulala (5.4) full_msg1 = "" msg1 = s.recv (100) ikiwa len (msg1)> = 2: full_msg1 + = msg1. maandishi ya maandishi.wrap (full_msg1, 9))) cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.hour) na turubai (kifaa) kama chora: chora.text ((0, 19), full_msg, fill = "nyeupe" ((11, 0), ":", fill = "nyeupe") chora maandishi ((15, 0), min1, fill = "nyeupe") chora maandishi ((0, 9), "_", jaza = "nyeupe") chora maandishi ((0, 9), tarehe, jaza = "nyeupe") ikiwa min1 kwa nambari: obs = owm.weather_at_place ("") # mji wako na nchi yako katika muundo wa kamba tena
hali ya hewa = obs.get_Weather ()
temp = str (hali ya hewa.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "nyeupe") chora maandishi ((40, 0), temp, jaza = "nyeupe") ikiwa min1 sio katika nambari: obs = owm.weather_at_place ("") # mji wako na nchi yako katika muundo wa kamba tena
hali ya hewa = obs.get_Weather ()
temp = str (hali ya hewa.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "nyeupe") chora maandishi ((40, 0), temp, jaza = "nyeupe") ikiwa min1 sio katika nambari: chora.text ((40, 0), temp3, fill = "nyeupe") chora maandishi ((32, 0), "F", fill = "nyeupe") ikiwa len (msg1) <= 1: cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.hour) na turubai (kifaa) kama kuteka: chora.text ((0, 0), saa, jaza = "nyeupe") chora maandishi ((11, 0), ":", fill = "nyeupe") chora maandishi ((15, 0), min1, fill = "nyeupe") chora. maandishi ((0, 9), "_", kujaza = "nyeupe") chora maandishi ((0, 9), tarehe, jaza = "nyeupe") ikiwa min1 kwa num: obs = owm.weather_at_place ("") # mji wako na nchi yako katika muundo wa kamba tena
hali ya hewa = obs.get_Weather ()
temp = str (hali ya hewa.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "nyeupe") chora maandishi ((40, 0), temp, jaza = "nyeupe") ikiwa min1 sio katika nambari: chora.text ((40, 0), temp3, fill = "nyeupe") chora maandishi ((32, 0), "F", fill = "nyeupe") muda. kulala (7) mteja.files_delete (dropbox_path) chapisha ("Faili zimefutwa")
P. S. Mimi ni programu ya amateur kwa hivyo tafadhali usiulize njia zangu mbaya za programu.
Hatua ya 4: Kuiweka Pamoja
Mara tu unapomaliza kila kitu kingine umekamilisha yote unayobaki kufanya ni kuambatisha kamera ya rasiberi na kuonyesha kwenye glasi. Unaweza kufanya hivyo kwa kutumia wambiso wa pande mbili uliotajwa kwenye vifaa au unaweza kutumia njia zozote unazofikiria ni muhimu. Unaweza pia kuwa umeona sijataja betri mahali popote kwenye somo hili ambayo ni kwa sababu nina sasisho za baadaye zilizopangwa kwa glasi hizi na sikutaka kuambatisha moja kwa sasa. Lakini ikiwa unataka kuambatisha moja utahitaji mzunguko wa chaja ya li-po kutoka amazon
Ikiwa ulifurahiya hii na unataka kuona zaidi, nimeanzisha kituo cha YouTube na nitatumahi kuwa nitatuma mafunzo hapa pia. Hapa kuna kiunga:
www.youtube.com/channel/UCGqcWhHXdZf231rLe…
Mungu Anaokoa!
Yohana 3:16 "Kwa maana Mungu aliupenda ulimwengu, hata akamtoa Mwanawe wa pekee, ambaye amwaminiye milele hatapotea bali awe na uzima wa milele."
Ilipendekeza:
Glasi mahiri (Chini ya $ 10 !!!): Hatua 8 (na Picha)
Glasi mahiri (Chini ya $ 10 !!!): Haya Hapo! Sisi sote tunafahamu glasi mahiri kama ile iitwayo E.D.I.T.H. iliyotengenezwa na mhusika wetu mpendwa Tony Stark ambaye baadaye alipitishwa kwa Peter Parker. Leo nitajenga glasi moja nzuri sana ambayo pia chini ya $ 10! Sio kabisa
Jiwe la Glasi la Jiwe la Kioo (Wifi Inadhibitiwa kupitia Programu ya Smartphone): Hatua 6 (na Picha)
Jiwe la Glasi la Jiwe la Glasi (Wifi Inayodhibitiwa Kupitia Programu ya Smartphone): Halo wenzi wenzangu! Katika hii nitafundishwa nitakuonyesha jinsi ya kujenga bomba la LED linalodhibitiwa na WiFi ambalo limejazwa na mawe ya glasi kwa athari nzuri ya kueneza. Taa za kibinafsi zinaweza kushughulikiwa na kwa hivyo athari nzuri zinawezekana katika
Glasi mahiri: 6 Hatua
Glasi mahiri: Halo kila mtu !! Leo nitaenda kushiriki nanyi watu, kitu ambacho nilitaka tangu muda mrefu Glasi za Dhahabu zilizojengwa karibu $ 25 Sasa inakuwezesha KUFA - Ifanye Sana
Glasi za Kioevu za Kioevu kwa Amblyopia (Glasi za Mafunzo Zinazobadilisha) [ATtiny13]: Hatua 10 (na Picha)
Glasi za Kioevu za Kioevu kwa Amblyopia (Glasi za Mafunzo Zinazobadilisha) [ATtiny13]: Amblyopia (jicho la uvivu), shida ya kuona inayoathiri takriban 3% ya idadi ya watu, kawaida hutibiwa na vijiti rahisi vya macho au matone ya atropini. Kwa bahati mbaya, njia hizo za matibabu hufunika jicho lenye nguvu kwa muda mrefu, bila vipingamizi, hakuna
$ 3 & 3 Hatua Stendi ya Laptop (pamoja na glasi za Kusoma na Tray ya Kalamu): Hatua 5
$ 3 & 3 Hatua Simama ya Laptop (na Glasi za Kusoma & Tray ya Kalamu): Hii $ 3 & Hatua 3 za kusimama kwa kompyuta ndogo zinaweza kufanywa ndani ya dakika 5. Ni nguvu sana, nyepesi, na inaweza kukunjwa kuchukua na kokote uendako