Բովանդակություն:
- Քայլ 1: Նյութեր
- Քայլ 2: Dragonboard 410c Com Mezzanine 96 Տախտակներ. Configuração E Pinagem
- Քայլ 3: Ինտեգրում. Միասնություն + Վուֆորիա
- Քայլ 4: Միասնություն. Կարգավորեք O Android SDK- ն
- Քայլ 5. Criando Servidor Local E Recebendo Informações Em Python
- Քայլ 6: Արդյունքների եզրափակիչ
Video: Խելացի դաս. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Եթե ցանկանում եք խելացի դասի վիզա տրամադրել, այն կարող է օգտագործվել առանց որևէ մասնագիտության, որը կօգնի ձեզ օգտագործել այն, ինչ կարող եք օգտագործել, քանի որ այն կարող է գերազանցել ձեր բոլոր հնարավորությունները, քանի որ դրանք գերազանցում են մեր ձևերը, որոնք օգտագործվում են, երբ մենք օգտագործում ենք մեր արտադրանքը, օգտագործում կամ օգտագործում ենք մեր արտադրանքը: de aula պայմանական.
Քայլ 1: Նյութեր
Նախագծեք Dragonboard 410c- ը
- Dragonboard 410c;
- Cabo HDMI;
-Teclado USB- ի միջոցով -Մկնիկի միջոցով USB -Monitor- ի միջոցով;
- միջհարկանի 96 տախտակ;
Նախագծի կատարման կամ նախագծման համար
- Dragonboard 410c;
- միջհարկանի 96 տախտակ;
- Sensor Grove IMU 10DOF MPU - 9250 (չի սահմանափակվում կամ օգտագործվում է único ցուցիչով);
- Fonte de alimentação externa 11.1V;
- Jumper fêmea-fêmea;
Քայլ 2: Dragonboard 410c Com Mezzanine 96 Տախտակներ. Configuração E Pinagem
O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (մակարդակի փոփոխիչ), pois a placa só fornece 1.8V de saída. O sensor utilizado foi um magnetômetro Sensor MPU -9250 Grove -IMU 10DOF, especificações:
Tensão de Entrada: 5V / 3.3V;
Ֆունկցիոնալ կորենտ ՝ 6 մԱ;
Comunicação Սերիալ;
Pinos: VCC, GND, SDA և SCL;
I2C ինտերֆեյս;
Նախկինում մենք օգտագործում ենք Grove I2C0 (5V) կոնեկտորների օգտագործումը, որոնք օգտագործվում են որպես սերիալ և կոմունիկացիաներ անհրաժեշտ են սենսորային գործառույթների համար: (բանավոր պատկեր)
Քայլ 3: Ինտեգրում. Միասնություն + Վուֆորիա
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- Ներդիրում Թիրախային կառավարիչ և առաջարկներ, որոնք կօգնեն ձեզ հետևել տեքստին կամ հետևելուն (quanto mais complexa melhor):
3- Feito isso baixe տվյալների բազայի կամ Unity e importe- ի համար:
4- No Unity- ը կարգավորում է պատկերի թիրախը ՝ օգտագործելով տեքստային տարբերակներ և մեթոդներ, որոնք առաջարկում են օգտագործել 3D մոդելներ, որոնք կօգտագործվեն, եթե ցանկանում եք օգտագործել պատկերների տեղայնացման ծրագիրը:
5- Adicione a chave de licença da vuforia nas configurações dentro do Unity:
6- Ներկայացնում ենք մոդելի բոլոր բաղադրիչները, որոնք նախատեսված են 3D ծրագրի համար և պատրաստում ենք որպես պատկերի թիրախ, ինչպես նաև մեր կենսաբանության կամ ֆասիկայի…
Քայլ 4: Միասնություն. Կարգավորեք O Android SDK- ն
1- Baixe կամ SDK- ը Android- ի համար, ինչպես նաև Unity- ի նախապատվությունները և ընտրված տարբերակները:
2- Mude a build plataform do Unity para o android, assim conseguiremos gerar o APK.
3- Տեղադրեք apk em um dispitivo (não esqueça de allowir fontes desconhecidas nas configurações) տեղադրումը:
Քայլ 5. Criando Servidor Local E Recebendo Informações Em Python
Եզրակացություններ կատարելով որպես ներկայացուցչական համակարգ, որը կարող է օգտագործվել համակարգային կապի միջոցով, որը կարող է օգտագործվել C ++, Java, Python և այլն օգտագործող լեզուներով, ինչպես նաև ծրագրային ապահովման միջոցով: Այս ծրագրաշարը պատասխանատու է ընդունող սարքի համար, որը թույլ է տալիս օգտագործել տվիչ, մշակել և կատարելագործել այն, ինչը թույլ է տալիս կատարել ծրագրային ապահովման պահանջներ: Depois carrega esses dados para or servidor alocado na própria placa para enviar os dados já tratados para a plataforma Unity- ի համար: Os exemplos de código deste projeto estão em linguagem Phyton. Os dados são transferidos da Dragonboard 410c para o Unity e são apresentados em um հավելվածով:
Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (Servidor local), Executável no Shell:
Código mag_python.py
#!/usr/bin/python
# Հեղինակ ՝ onոն Թրուլսոն
# Հեղինակային իրավունք (գ) 2015 Intel Corporation.
#
# Սույնով թույլտվությունը տրվում է անվճար ՝ ցանկացած անձի, ով ստանում է
# այս ծրագրաշարի և դրան առնչվող փաստաթղթերի պատճենը (# «Softwareրագրային ապահովում»), առանց սահմանափակման գործարք իրականացնել Softwareրագրում, ներառյալ
# առանց սահմանափակման օգտագործման, պատճենման, փոփոխման, միաձուլման, հրապարակման իրավունքները, # տարածել, ենթալիցենզավորել և (կամ) վաճառել Softwareրագրաշարի պատճենները և
# թույլատրել այն անձանց, ում theրագրակազմը տրամադրված է դա անելու համար ՝ ենթակա
# հետևյալ պայմանները.
#
# Հեղինակային իրավունքի վերը նշված ծանուցումը և թույլտվության այս ծանուցումը պետք է լինեն
# ներառված է copiesրագրաշարի բոլոր պատճեններում կամ զգալի մասերում:
#
# SOՐԱԳԻՐԸ ՏՐԱՄԱԴՐՎՈՄ Է «ԻՆՉՊԵՍ», ԱՌԱՆ KԱՆԿԱԱՅԻՆ ԵՐԱՇԽԻՔԻ, # PRԱՌԱՅՈ ORԹՅՈ ORՆ ԿԱՄ ՆՇՎԱ, ներառյալ, բայց ոչ սահմանափակված ԵՐԱՇԽԻՔՆԵՐՈՎ
# ԱՌԵՎՏՐԱԿԱՆՈԹՅՈՆ, ՊԱՏԱՍԽԱՆՈԹՅՈՆ ՄԱՍՆԱԳԵՏ ՆՊԱՏԱԿԻ ՀԱՄԱՐ ԵՎ
# ՈՉ ԱՊՐԱՆՔ: ՈՉ ՄԻ ԱՊԱՀՈՎՈALLՄ ԼԻՆԵՆ ՀԵTHԻՆԱԿՆԵՐԸ ԵՎ ՀԵPԱՍՏԱՆԱԿԱՆ ԻՐԱՎՈՆՔՆԵՐԸ
# ՊԱՏԱՍԽԱՆ ԱՆԿԱԱ ՊԱՀԱՆՈ,ԹՅԱՆ, ՎESԱՌՆԵՐԻ ԵՎ ԱՅԼ ՊԱՇՏՊԱՆՈԹՅԱՆ ՀԱՄԱՐ, ԹԵՄ ԱԿIONԻԱ
# ՊԱՅՄԱՆԱԳԻՐԻ, TԱՆԳԱ ORԱՆԻ ԵՎ ԱՅԼ ԻՆՉՊԵՍ, ARԱՌԱՅՈԹՅՈՆ Նրանից, ԿԱՄ ԿԱՄ
# SOԱՌԱՅՈԹՅԱՆ ԿԱՄ, ՕԳՏԱԳՈՐՎՈ ORՄ, ԿԱՄ OTHERԱՌԱՅՈԹՅԱՆ ԱՅԼ DEԱՌԱՅՈԹՅՈՆՆԵՐՈՎ:
_ ապագա_ ներմուծման տպման գործառույթից
ներմուծման ժամանակը, sys, ազդանշանը, atexit, urllib, urllib2, մաթ
upm ներմուծումից pyupm_mpu9150 որպես sensorObj
def main ():
# տվյալ = {}
# data ['magnetrometro'] = raw_input («Տեղեկացնել ջերմաստիճանի մասին»)
# տվյալներ = urlib.urlencode (տվյալներ)
# փոստ_պահանջ = urlib2. Request (post_url, data, headers)
# փորձել:
# post_response = urlib2.urlopen (փոստ_պահանջ)
# տպել post_response.read ()
# բացառությամբ URLError- ի, ինչպես e:
# տպել «Սխալ.», էլ. պատճառ
# Տեղադրեք MPU9250 I2C ավտոբուսում 0
տվիչ = սենսոր Obb. MPU9250 ()
## Ելք կարգավարներ ##
# Այս գործառույթը խանգարում է python- ին տպել stacktrace- ը, երբ հարվածում եք control-C- ին
def SIGINTHandler (նշան, շրջանակ):
բարձրացնել SystemExit- ը
# Այս գործառույթը թույլ է տալիս ելքի վրա գործարկել կոդը
def exitHandler ():
տպել («Ելք»)
sys.exit (0)
# Գրանցեք ելքի մշակողներ
atexit.register (exitHandler)
ազդանշան. ազդանշան (ազդանշան. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
մինչդեռ (1):
sensor.update ()
sensor.get արագացուցիչ (x, y, z)
# տպել («Արագացուցիչ».)
# տպել ("AX: %.4f" % sensorObj.floatp_value (x), end = "")
# տպել ("AY: %.4f" % sensorObj.floatp_value (y), վերջ = '')
# տպել ("AZ: %.4f" % sensorObj.floatp_value (z))
modulo1 = (sensorObj.floatp_value (x) -0.005) ** 2+ (sensorObj.floatp_value (y) -0.0150) ** 2+ (sensorObj.floatp_value (z) -0.0450) ** 2
# տպել (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))
# տպել (modulo1)
#
# sensor.getGyroscope (x, y, z)
# տպել ("Gyroscope: GX:", sensorObj.floatp_value (x), end = "")
# տպել («GY:», sensorObj.floatp_value (y), վերջ = '')
# տպել ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometer (x, y, z)
# տպել ("Մագնիսաչափ. MX:", sensorObj.floatp_value (x), վերջ = ")
# տպել («ԻՄ:», sensorObj.floatp_value (y), ավարտ = '')
# տպել ("MZ:", sensorObj.floatp_value (z))
modulo2 = sensorObj.floatp_value (x) ** 2+sensorObj.floatp_value (y) ** 2+sensorObj.floatp_value (z) ** 2
# տպել (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0.5))
# տպել (modulo2)
arq = բաց ('/tmp/dados.txt', 'w')
տեքստ =
texto.append (str (modulo2)+","+str (modulo1))
arq.writelines (texto)
arq.close ()
# հղում = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# տպել ('enviando dados')
# ուղարկել = urllib2.urlopen (հղում)
# էջ = send.read ()
# տպել (էջ)
# հղում = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# տպել ('enviando dados')
# ուղարկել = urllib2.urlopen (հղում)
# էջ = send.read ()
# տպել (էջ)
# տպել ("peratերմաստիճանը.", sensor.getTemperature ())
# տպել ()
# ժամանակ. քուն (.5)
եթե _name_ == '_ հիմնական_':
հիմնական ()
Código do Servidor Local
ներմուծման ժամանակը
ներմուծել BaseHTTPS սերվեր
HOST_NAME = '172.17.56.9' # !!! ՀԻՇԵՔ ԱՅՍ ՓՈԽԵԼ !!!
PORT_NUMBER = 80 # Գուցե սա սահմանեք 9000 -ի:
a = 0
դաս MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (ներ) ՝
s.send_response (200)
s.send_header («Բովանդակության տեսակ», «տեքստ/html»)
s.end_headers ()
def do_GET (ներ) ՝
dados = le_dados ()
տպել (հայրոս)
"" "Պատասխան GET հարցմանը" "":
եթե s.path == "/1":
s.send_response (200)
s.send_header («Բովանդակության տեսակ», «տեքստ/պարզ»)
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header («Բովանդակության տեսակ», «տեքստ/պարզ»)
s.end_headers ()
s.wfile.write («2»)
այլ:
s.send_response (200)
s.send_header («Բովանդակության տեսակ», «տեքստ/պարզ»)
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("չի գտնվել !!")
def le_dados ():
arq = բաց ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
վերադարձնել տեքստը
եթե _name_ == '_ հիմնական_':
server_class = BaseHTTPServer. HTTPS սերվեր
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
տպման ժամանակ. asctime (), "Սերվերը սկսվում է - %s: %s" %(HOST_NAME, PORT_NUMBER)
փորձել:
a = a+2
httpd.serve_forever ()
բացառությամբ Ստեղնաշարի
անցնել
httpd.server_close ()
տպման ժամանակ. asctime (), "Սերվերի կանգառներ - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
արձագանք «սկսած mag_python»
sudo python mag_python.py &
echo «սկսել սերվեր»
sudo python server2.py
Քայլ 6: Արդյունքների եզրափակիչ
Feito isso as aulas poderão ser auxiliadas e incrementadas pelo projeto Smart դասի նպատակն է օգտագործել Dragonboard 410c- ը: Vառայությունների դյուրացման և աջակցության ծառայություններ, որոնք կարող են ծառայել մեր համակարգերի կողմից ՝ որպես մասնավոր մասնավոր պաշտպանություն:
LINK առանց Google Play հավելվածի ՝
Հղում դեպի Py Py:
Խորհուրդ ենք տալիս:
Խելացի գրասեղանի LED լույս - Խելացի լուսավորություն W/ Arduino - Neopixels Workspace: 10 քայլ (նկարներով)
Խելացի գրասեղանի LED լույս | Խելացի լուսավորություն W/ Arduino | Neopixels Workspace. Այժմ մի օր մենք շատ ժամանակ ենք անցկացնում տանը ՝ ուսումնասիրելով և աշխատելով վիրտուալ կերպով, ուստի ինչու՞ մեր աշխատանքային տարածքն ավելի մեծ չդարձնել Arduino և Ws2812b լուսադիոդների վրա հիմնված սովորական և խելացի լուսավորության համակարգով: Ահա ես ձեզ ցույց եմ տալիս, թե ինչպես կառուցել ձեր Smart Գրասեղանի LED լույս, որը
IoT- ի վրա հիմնված խելացի այգեգործություն և խելացի գյուղատնտեսություն ՝ օգտագործելով ESP32: 7 քայլ
IoT- ի վրա հիմնված խելացի այգեգործություն և խելացի գյուղատնտեսություն ՝ օգտագործելով ESP32. Աշխարհը փոխվում է ժամանակի և գյուղատնտեսության հետ միասին: Այսօր մարդիկ ամենուր ինտեգրում են էլեկտրոնիկան, և գյուղատնտեսությունը դրանում բացառություն չէ: Էլեկտրոնիկայի այս միաձուլումը գյուղատնտեսությունում օգնում է ֆերմերներին և այգիներ կառավարող մարդկանց: Այս
ESP32 EEPROM- ի կազմաձևումը կառավարելու դաս. 5 քայլ
ESP32 EEPROM- ի կոնֆիգուրացիան կառավարելու դաս. Բարև, ես ուզում եմ ձեզ հետ կիսել իմ մշակած բոլոր դասերը, և դա պարզեցնում է ESP32 սարքերում կազմաձևման տեղեկատվություն ավելացնելու խնդիրը: Դասը հետևյալ խնդիրներն են. համակարգը ESP32 սարքերում
Դաս 2. Arduino- ի օգտագործումը որպես հոսանքի աղբյուր շրջանի համար. 6 քայլ
Դաս 2. Arduino- ի օգտագործումը որպես էլեկտրական հոսանքի աղբյուր Նրանց համար, ովքեր չեն տեսել իմ առաջին դասը, որը նկարագրում է սխեմաների շատ, շատ հիմունքները, խնդրում ենք դա տեսնել հիմա: Նրանց համար, ովքեր արդեն տեսել են իմ նախորդ հանդիպումը
Arduino Tank Car դաս 6-Bluetooth և Wifi տաք կետերի կառավարում. 4 քայլ
Arduino Tank Car Դաս 6-Bluetooth և Wifi Hot Spot Control. Այս դասում մենք սովորում ենք, թե ինչպես վերահսկել Robot մեքենայի բջջային հավելվածը WiFi- ի և Bluetooth- ի միջոցով: մենք պարզապես օգտագործում ենք esp8266 wifi espasion տախտակը որպես ընդլայնման տախտակ և կառավարում տանկի մեքենան: նախորդ դասերին IR ընդունիչի միջոցով: Այս դասում մենք կսովորենք