جدول المحتويات:

الدرس الذكي: 6 خطوات
الدرس الذكي: 6 خطوات

فيديو: الدرس الذكي: 6 خطوات

فيديو: الدرس الذكي: 6 خطوات
فيديو: درس 6 | خطوات عملية حتى تكون مخلصا | سلسلة الهباء المنثور | راغب السرجاني 2024, يوليو
Anonim
درس ذكي
درس ذكي

تأشيرات الدرس الذكي ، بطاقة التأشيرة غير المؤهلة لأساتذة نظام التشغيل ، يمكنك استخدام أي من هذه التأشيرات ، بالإضافة إلى تقديم الدعم والتجربة الجديدة دي aula convencional.

الخطوة 1: المواد

المواد
المواد

Para programar a Dragonboard 410c:

- دراغون بورد 410 ج ؛

- كابل HDMI ؛

- Teclado عبر USB - الماوس عبر USB - مراقب ؛

- 96 لوح الميزانين ؛

الفقرة التنفيذية أو المشروع:

- دراغون بورد 410 ج ؛

- 96 لوح الميزانين ؛

- مستشعر Grove IMU 10DOF MPU - 9250 (مستشعر não limitado ao uso de um único) ؛

- Fonte de alimentação externa 11.1V ؛

- الطائر fêmea-fêmea ؛

الخطوة 2: Dragonboard 410c Com Mezzanine 96Boards: 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 يستخدم مستشعر foi um magnetômetro 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) ، وهي مناسبة لاستخدامها في جهاز استشعار. (ver imagem)

الخطوة 3: Integração: Unity + Vuforia

Integração: Unity + Vuforia
Integração: Unity + Vuforia

1- موقع Vá ao da vuforia na área de desenvolvedor e crie uma chave.

2 - لا يوجد علامة تبويب مدير الهدف و adicione uma textura para fazer o Tracking (quanto mais complexa melhor).

3-Feito هو أيضا قاعدة بيانات لاستيراد الوحدة.

4- لا توجد وحدة تكوين هدف صورة com a textura escolhida e dentro dele adicione os modelos 3D que deseja utilizar، os mesmos estarão ativos quando a imagem for localizada pelo app.

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

6- Após isso modele os elementes da aula em algum programa 3D e Prepar as aulas em cima do image target (pode ser uma aula de Biologia ou Física…).

الخطوة 4: الوحدة: تكوين O Android SDK

الوحدة: تكوين O Android SDK
الوحدة: تكوين O Android SDK

1- Baixe o SDK do Android، vá em unity preferences e-selecione o diretório.

2- قم بتعديل منصة البناء ، قم بالوحدة للعبة android، assim conseguiremos gerar o APK.

3- تثبيت apk em umpositivo (não esqueça de allowir fontes desconhecidas nas configurações).

الخطوة 5: Criando Servidor Local E Recebendo Informações Em Python

Criando Servidor Local E Recebendo Informações Em Python
Criando Servidor Local E Recebendo Informações Em Python

Concluídas مثل configurações apresentadas ، podemos acessar o Sistema Linaro dentro da placa e useizar 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 para o 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

# المؤلف: جون ترولسون

# حقوق النشر (c) 2015 شركة إنتل.

#

# يُمنح الإذن بموجب هذا مجانًا لأي شخص يحصل عليه

# نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (ملف

# "البرامج") ، للتعامل في البرنامج دون قيود ، بما في ذلك

# على سبيل المثال لا الحصر ، حقوق الاستخدام والنسخ والتعديل والدمج والنشر ،

# توزيع نسخ البرنامج و / أو ترخيصها من الباطن و / أو بيعها و

# السماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك ، وفقًا لـ

# الشروط التالية:

#

# يجب أن يكون إشعار حقوق النشر أعلاه وإشعار الإذن هذا

# مضمنة في جميع النسخ أو الأجزاء الأساسية من البرنامج.

#

# يتم توفير البرنامج "كما هو" ، بدون ضمان من أي نوع ،

# صريحة أو ضمنية ، بما في ذلك على سبيل المثال لا الحصر ضمانات

# القابلية للتسويق والملاءمة لغرض معين و

# عدم الانتهاك. لن يكون المؤلفون أو حاملو حقوق الطبع والنشر بأي حال من الأحوال

# مسؤول عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء كانت في دعوى

رقم عقد أو ضرر أو غير ذلك ، ناشئ عن أو خارج أو متصل

# مع البرنامج أو الاستخدام أو المعاملات الأخرى في البرنامج.

من _future_ استيراد print_function

وقت الاستيراد ، النظام ، الإشارة ، atexit ، urllib ، urllib2 ، الرياضيات

من upm استيراد pyupm_mpu9150 as sensorObj

def main ():

# بيانات = {}

# data ['magnetrometro'] = raw_input ("الإعلام بدرجة حرارة")

# data = urlib.urlencode (بيانات)

# post_request = urlib2. Request (post_url ، البيانات ، الرؤوس)

# محاولة:

# post_response = urlib2.urlopen (post_request)

# print post_response.read ()

# باستثناء URLError مثل e:

# طباعة "خطأ:" ، السبب الإلكتروني

# إنشاء MPU9250 على ناقل I2C 0

المستشعر = sensorObj. MPU9250 ()

## معالجات الخروج ##

# تمنع هذه الوظيفة بيثون من طباعة تتبع تراكم عندما تضغط على control-C

def SIGINTHandler (إشارة ، إطار):

رفع SystemExit

# تتيح لك هذه الوظيفة تشغيل التعليمات البرمجية عند الخروج

def exitHandler ():

طباعة ("خروج")

sys.exit (0)

# تسجيل معالجات الخروج

atexit.register (exitHandler)

signal.signal (إشارة SIGINT ، SIGINTHandler)

sensor.init ()

س = sensorObj.new_floatp ()

y = sensorObj.new_floatp ()

z = sensorObj.new_floatp ()

بينما (1):

sensor..update ()

sensor.getAccelerometer (x ، y ، z)

# print ("Accelerometer:")

# print ("AX:٪.4f"٪ sensorObj.floatp_value (x)، end = ")

# print ("AY:٪.4f"٪ sensorObj.floatp_value (y)، end = ")

# print ("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

# print (modulo1)

modulo1 = ("٪.1f"٪ abs (((modulo1 ** 0.5) -1) * 9.8))

# print (modulo1)

#

# sensor.getGyroscope (x ، y ، z)

# print ("الجيروسكوب: 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 ("مقياس المغناطيسية: 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

# print (modulo2)

modulo2 = ("٪.2f"٪ (modulo2 ** 0.5))

# print (modulo2)

arq = مفتوح ('/ tmp / dados.txt'، 'w')

نص =

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

arq.writelines (texto)

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 ("Temperature:"، sensor.getTemperature ())

# مطبعة()

# وقت النوم (.5)

إذا _name_ == '_main_':

الأساسية()

Código do Servidor Local

وقت الاستيراد

استيراد BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!! تذكر لتغيير هذا !!!

PORT_NUMBER = 80 # ربما قم بتعيين هذا على 9000.

أ = 0

فئة MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):

def do_HEAD (ق):

s.send_response (200)

s.send_header ("نوع المحتوى"، "text / html")

s.end_headers ()

def do_GET (s):

الأب = le_dados ()

طباعة (دادوس)

"" "الاستجابة لطلب GET." ""

إذا كان s.path == "/ 1":

s.send_response (200)

s.send_header ("نوع المحتوى" ، "نص / عادي")

s.end_headers ()

s.wfile.write (دادوس)

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 (دادوس)

# s.wfile.write ("غير موجود !!")

def le_dados ():

arq = مفتوح ('/ tmp / dados.txt'، 'r')

texto = arq.readline ()

arq.close ()

إرجاع texto

إذا _name_ == "_الرئيسية_":

server_class = BaseHTTPServer. HTTPServer

httpd = server_class ((HOST_NAME ، PORT_NUMBER) ، MyHandler)

print time.asctime ()، "Server Starts -٪ s:٪ s"٪ (HOST_NAME، PORT_NUMBER)

محاولة:

أ = أ + 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

#! / بن / باش

صدى "بدء mag_python"

sudo python mag_python.py &

صدى "بدء الخادم"

sudo python server2.py

الخطوة 6: النتيجة النهائية

نتيجة نهائي
نتيجة نهائي

Feito isso as aulas poderão ser auxiliadas e incrementadas pelo projeto درس ذكي desenvolvido com a Dragonboard 410c. Servindo de Facessador e Proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.

LINK para app no Google Play:

رابط الفقرة códigos Py:

موصى به: