תוכן עניינים:

שיעור חכם: 6 שלבים
שיעור חכם: 6 שלבים

וִידֵאוֹ: שיעור חכם: 6 שלבים

וִידֵאוֹ: שיעור חכם: 6 שלבים
וִידֵאוֹ: שיעור 6 מתוך 12 - האדם נברא בכדי להיות שותף במחשבת הבריאה - פתוח כעת לעם ישראל 2024, יולי
Anonim
שיעור חכם
שיעור חכם

O projeto שיעור חכם ויזואלי לא יכולנו להכין פרופסורים שיכולים להשתמש בתכנים או במתנה לאירועי סינוסים או לבנדו או באב ניוול אפרנזיו יותר מעולה לקונסררררררבבבבבבבבבבבבבבבבבבבבויות דה אולה כנסייה.

שלב 1: Materiais

Materiais
Materiais

לתכנת תוכנת Dragonboard 410c:

- דרגוןבורד 410c;

- קאבו HDMI;

-טקלדו באמצעות USB -עכבר באמצעות USB -צג;

- 96 לוחות ביניים;

עבור מנהל או פרויקט:

- דרגוןבורד 410c;

- 96 לוחות ביניים;

- Sensor Grove IMU 10DOF MPU - 9250 (לא ניתן להגביל חיישן);

- Fonte de alimentação externa 11.1V;

- מגשר fêmea-fêmea;

שלב 2: Dragonboard 410c Com Mezzanine 96 לוחות: Configuração E Pinagem

Dragonboard 410c Com Mezzanine 96 לוחות: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96 לוחות: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96 לוחות: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96 לוחות: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96 לוחות: Configuração E Pinagem
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 משתמש בחיישן מגנטומטר חיישן MPU -9250 Grove -IMU 10DOF, תכונות מיוחדות:

Tensão de Entrada: 5V / 3.3V;

Corrente de funcionamento: 6mA;

Comunicação סדרתי;

פינו: VCC, GND, SDA e SCL;

ממשק I2C;

לדוגמא, למשל, שימוש בכל הקונקטורים Grove I2C0 (5V), que proporciona and comunicação series and a alimentação needsária for funcionamento do sensor. (ver imagem)

שלב 3: Integração: אחדות + וופוריה

Integração: אחדות + וופוריה
Integração: אחדות + וופוריה

1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.

2- בכרטיסייה Target Manager ניתן לקרוא טקסט למעקב אחר מעקב (כמות מורכבת).

3- Feito isso baixe a database for a Unity e import.

4- No Unity להגדיר את יעד התמונה באמצעות טקסט ועיצוב מודלים תלת מימדיים שיכולים להשתמש בתכשירי 3D, או לאפשר לנו להשתמש בתמונות עבור יישום מקומי.

5- Adicione a chave de licença da vuforia nas configurações dentro do Unity.

6- חלקים שונים של רכיבי התוכנה התלת-ממדיים והכנתם כמטרות תדמית (pode ser uma aula de Biologia ou Física…).

שלב 4: אחדות: הגדר את O SDK אנדרואיד

אחדות: הגדר O Android SDK
אחדות: הגדר O Android SDK

1- הורדות SDK לאנדרואיד, והעדפות אחדות ואפשרויות בחירה.

2- בוץ על בניית פלטפורמה של Unity עבור אנדרואיד, תוכנת שיחות או APK.

3- התקנה של apk em um dispositivo.

שלב 5: Criando Servidor מקומי E מידע על פייתון

Criando Servidor Local E מידע על מידע על Python
Criando Servidor Local E מידע על מידע על Python

מסקנות כמו תצורות apresentadas, podemos accesses או מערכת Linaro dentro da placa e utilizar várias linguagens como C ++, Java, Python, וכו '. תוכנת Este יכולה להגיב על חיישן חיישן, מעבדים ואמצעים להתאים את התוכנה. Depois carrega esses dados para o 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 עבור Unity e são apresentados em um app.

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

# מחבר: ג'ון טרולסון

# זכויות יוצרים (ג) 2015 Intel Corporation.

#

# הרשאה ניתנת בזאת, ללא תשלום, לכל אדם שישיג

# עותק של תוכנה זו וקבצי תיעוד נלווים (# "תוכנה"), לעסוק בתוכנה ללא הגבלה, כולל

# ללא הגבלה הזכויות לשימוש, להעתיק, לשנות, למזג, לפרסם, # להפיץ, לתת רישיון משנה ו/או למכור עותקים של התוכנה, ול

# לאפשר לאנשים שהתוכנה מסופקת להם לעשות זאת, בכפוף

# התנאים הבאים:

#

# הודעת זכויות היוצרים לעיל והודעת הרשאה זו יהיו

# כלול בכל העותקים או בחלקים ניכרים של התוכנה.

#

# התוכנה מסופקת "כפי שהיא", ללא אחריות מכל סוג שהוא, # מפורש או משתמע, כולל אך לא מוגבל לאחריות של

# סחירות, התאמה למטרה מיוחדת ו

# פרה. בשום מקרה לא יהיו המחברים או מחזיקי הזכויות

# אחריות לכל תביעה, נזקים או אחריות אחרת, אם כן בפעולה

מספר חוזה, עוולה או אחרת, העולים משם, מחוץ או בקשר

# עם התוכנה או השימוש או התנהגויות אחרות בתוכנה.

מ _ עתיד_ ייבוא הדפסה_פונקציה

זמן יבוא, sys, signal, atexit, urllib, urllib2, מתמטיקה

מאת upm יבוא pyupm_mpu9150 כחיישן Obj

def main ():

# נתונים = {}

# data ['magnetrometro'] = raw_input ("הודע טמפרטורה")

# data = urlib.urlencode (נתונים)

# post_request = urlib2. Request (post_url, נתונים, כותרות)

# נסה:

# post_response = urlib2.urlopen (פוסט_בקשה)

# print post_response.read ()

# למעט URLError בתור e:

# הדפסה "שגיאה:", e.reason

# הפעל MPU9250 באוטובוס I2C 0

חיישן = sensorObj. MPU9250 ()

## מטפלים ביציאה ##

# פונקציה זו עוצרת את פיתון מהדפסת עקבות בעת הפגיעה ב- C-C

def SIGINTHandler (סימן, מסגרת):

להעלות את SystemExit

# פונקציה זו מאפשרת לך להריץ קוד ביציאה

def exitHandler ():

הדפס ("יוצא")

sys.exit (0)

# רשום מטפלים ביציאה

atexit.register (exitHandler)

signal.signal (signal. SIGINT, SIGINTHandler)

sensor.init ()

x = sensorObj.new_floatp ()

y = sensorObj.new_floatp ()

z = sensorObj.new_floatp ()

בעוד (1):

sensor.update ()

sensor.getAccelerometer (x, y, z)

# print ("מד תאוצה:")

# print ("AX: %.4f" % sensorObj.floatp_value (x), end = '')

# print ("AY: %.4f" % sensorObj.floatp_value (y), end = '')

# הדפסה ("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)

# print ("Gyroscope: GX:", sensorObj.floatp_value (x), end = '')

# print ("GY:", sensorObj.floatp_value (y), end = '')

# print ("GZ:", sensorObj.floatp_value (z))

sensor.getMagnetometer (x, y, z)

# print ("Magnetometer: MX:", sensorObj.floatp_value (x), end = '')

# print ("MY:", sensorObj.floatp_value (y), end = '')

# print ("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 = open ('/tmp/dados.txt', 'w')

טקסט =

texto.append (str (modulo2)+","+str (modulo1))

arq.writelines (טקסט)

arq.close ()

# link = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))

# print ('enviando dados')

# שלח = urllib2.urlopen (קישור)

# page = send.read ()

# הדפס דף)

# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))

# print ('enviando dados')

# שלח = urllib2.urlopen (קישור)

# page = send.read ()

# הדפס דף)

# print ("טמפרטורה:", sensor.getTemperature ())

# הדפס()

# time.sleep (.5)

אם _name_ == '_ עיקר_':

רָאשִׁי()

Código do Servidor Local

זמן יבוא

ייבא BaseHTTPServer

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 ()

הדפס (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 = open ('/tmp/dados.txt', 'r')

texto = arq.readline ()

arq.close ()

החזר טקסט

אם _name_ == '_ עיקר_':

server_class = BaseHTTPServer. HTTPServer

httpd = class_ server ((HOST_NAME, PORT_NUMBER), MyHandler)

print time.asctime (), "שרת מתחיל - %s: %s" %(HOST_NAME, PORT_NUMBER)

לְנַסוֹת:

a = a+2

httpd.serve_forever ()

למעט מקלדת הפרעה:

לַעֲבוֹר

httpd.server_close ()

print time.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 &

הד "התחל שרת"

sudo python server2.py

שלב 6: גמר התוצאה

גמר התוצאה
גמר התוצאה

Feito isso as aulas poderão ser auxiliadas e incrementadas foro projeto Lesson Lesson desenvolvido com a Dragonboard 410c. שירות המנחה והפרופורציה במאור אינפורמציה של מערכת ההפעלה.

LINK לאפליקציה ללא Google Play:

קישור ל- Cydigos Py:

מוּמלָץ: