فهرست مطالب:
- مرحله 1: مواد
- مرحله 2: Dragonboard 410c Com Mezzanine 96 تابلوها: Configuração E Pinagem
- مرحله 3: Integração: Unity + Vuforia
- مرحله 4: Unity: O SDK Android را پیکربندی کنید
- مرحله 5: Criando Servidor Local E Recebendo Informações Em Python
- مرحله 6: نتیجه نهایی
تصویری: درس هوشمند: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
O projeto Smart درس ویزا criar um produto no qual os professores possam useitar como um conteúdo a mais para ensinar seus alunos os levando a um nível de aprendizado muito superior for conseguir mostrar os conteúdos de forma dinâmica e interato nomo ، proporcasand و proporcionand em proporcionand. de aula معمولی.
مرحله 1: مواد
برای برنامه نویسی Dragonboard 410c:
- Dragonboard 410c ؛
- Cabo HDMI ؛
-Teclado از طریق USB -ماوس از طریق USB -مانیتور ؛
- تخته میزانسن 96 ؛
برای اجرای برنامه:
- Dragonboard 410c ؛
- تخته میزانسن 96 ؛
- Sensor Grove IMU 10DOF MPU - 9250 (بدون محدودیت یا استفاده از سنسور único) ؛
- Fonte de alimentação externa 11.1V ؛
- جهنده 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 (سطح ترانسفورماتور) ، شما می توانید از راه دور 1.8 ولت استفاده کنید. O sensor utilizado foi um magnetômetro Sensor MPU -9250 Grove -IMU 10DOF، especificações:
Tensão de Entrada: 5 ولت / 3.3 ولت ؛
Corrente de funcionamento: 6mA ؛
سریال Comunicação؛
Pinos: VCC ، GND ، SDA و SCL ؛
رابط I2C ؛
برای این منظور می توانید از Grove I2C0 (5V) استفاده کنید و به عنوان یک سریال و یک تغذیه ضروری برای عملکرد حسگر عمل کنید. (ver imagem)
مرحله 3: Integração: Unity + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- در بخش مدیریت هدف و همچنین در زمینه پیگیری و پیگیری (quanto mais complexa melhor).
3- Feito isso baixe a database para o Unity e importe.
4- No Unity پیکربندی تصویر هدف را با استفاده از متن و روش های دیگر برای استفاده از مدل های سه بعدی و استفاده از برنامه ، به عنوان یک برنامه برای برنامه محلی برنامه ریزی کنید.
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: Unity: O SDK Android را پیکربندی کنید
1- Baixe یا SDK را برای Android ، و ترجیحات Unity و selecione یا seu diretório انجام دهید.
2- Mude a build plataform do Unity para 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 ++ ، جاوا ، پایتون و غیره استفاده کنند و برای نرم افزار و اجرای آن استفاده کنند. این نرم افزار برای گیرنده و دریافت کننده سنسور لیدوس پلو ، پردازش و استفاده از این برنامه ، بر اساس برنامه درخواست شما انجام می شود. Depois carrega esses dados para servidor alocado na própria placa para enviar os dados jat 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
# نویسنده: جان ترلسون
# حق چاپ (ج) 2015 شرکت اینتل.
#
# بدینوسیله ، مجوز به صورت رایگان به هر شخصی که کسب کند اعطا می شود
# کپی از این نرم افزار و فایلهای مستندات مرتبط (the
# "نرم افزار") ، برای معامله بدون محدودیت در نرم افزار ، از جمله
# بدون محدودیت حقوق استفاده ، کپی ، تغییر ، ادغام ، انتشار ،
# توزیع ، صدور مجوز و/یا فروش نسخه های نرم افزار و به
# اجازه دهید افرادی که نرم افزار به آنها ارائه شده است این کار را انجام دهند
# شرایط زیر:
#
# اعلامیه حق نسخه برداری فوق و این اخطار مجوز باید باشد
# در همه نسخه ها یا بخشهای قابل توجهی از نرم افزار گنجانده شده است.
#
# نرم افزار "همانطور که هست" ارائه می شود ، بدون گارانتی هر نوع ،
# بیان یا شامل ، شامل ، اما محدود به ضمانت نامه ها نیست
# بازرگانی ، تناسب برای یک هدف خاص و
# غیرقابل تحمل. در هیچ موردی نویسندگان یا دارندگان حق چاپ نباید باشند
# مسئولیت هرگونه ادعا ، خسارت یا مسئولیت دیگر ، هر چند در یک اقدام
# قرارداد ، شکنجه یا غیره ، ناشی از ، خارج یا در ارتباط
# با نرم افزار یا استفاده یا معاملات دیگر در این نرم افزار.
از _future_ وارد کردن عملکرد چاپ
زمان وارد کردن ، sys ، سیگنال ، atexit ، urllib ، urllib2 ، ریاضی
از upm import pyupm_mpu9150 به عنوان sensorObj
def main ():
# داده = {}
# data ['magnetrometro'] = ورودی_خام ("Informe a temperatura")
# data = urlib.urlencode (داده)
# post_request = urlib2. Request (post_url ، data ، headers)
# تلاش كردن:
# post_response = urlib2.urlopen (درخواست_پست]
# print post_response.read ()
# به جز URLError به عنوان e:
# چاپ "خطا:" ، e.reason
# MPU9250 را در گذرگاه I2C 0 نصب کنید
سنسور = sensorObj. MPU9250 ()
## خروج از کنترلرها ##
# این تابع مانع از آن می شود که پایتون با فشار دادن کنترل-C ، stacktrace را چاپ کند
def SIGINTHandler (علامت ، قاب):
SystemExit را افزایش دهید
# این عملکرد به شما امکان می دهد در هنگام خروج کد را اجرا کنید
def exitHandler ():
چاپ ("خروج")
sys.exit (0)
# کنترل کننده های خروج را ثبت کنید
atexit.register (exitHandler)
signal.signal (سیگنال. 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.get ژیروسکوپ (x ، y ، z)
# print ("ژیروسکوپ: GX:" ، sensorObj.floatp_value (x) ، end = "")
# چاپ ("GY:" ، sensorObj.floatp_value (y) ، پایان = "")
# چاپ ("GZ:" ، sensorObj.floatp_value (z))
sensor.getMagnetometer (x، y، z)
# print ("مغناطیس سنج: MX:" ، sensorObj.floatp_value (x) ، end = "")
# چاپ ("من:" ، 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 =
texto.append (str (modulo2)+"،"+str (modulo1))
arq.writelines (texto)
arq.close ()
# link = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO؟private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# چاپ ('enviando dados')
# ارسال = urllib2.urlopen (پیوند)
# page = send.read ()
# چاپ (صفحه)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K؟private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# چاپ ('enviando dados')
# ارسال = urllib2.urlopen (پیوند)
# page = send.read ()
# چاپ (صفحه)
# print ("دما:" ، sensor.getTemperature ())
# چاپ()
# زمان خواب (.5)
اگر _name_ == '_main_':
اصلی ()
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):
s.send_response (200)
s.send_header ("نوع محتوا" ، "text/html")
s.end_headers ()
def do_GET (s):
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 ()
بازگشت texto
اگر _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME ، PORT_NUMBER) ، MyHandler)
print time.asctime () ، "شروع به کار سرور -٪ s:٪ s"٪ (HOST_NAME ، PORT_NUMBER)
تلاش كردن:
a = a+2
httpd.serve_forever ()
به جز KeyboardIntruptrupt:
عبور
httpd.server_close ()
print time.asctime () ، "Server Stop -٪ s:٪ s"٪ (HOST_NAME ، PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
echo "شروع mag_python"
sudo python mag_python.py &
echo "شروع سرور"
sudo python server2.py
مرحله 6: نتیجه نهایی
Feito isso به عنوان ابزارهای مفید و افزایشی و افزایش برنامه های هوشمند درسی را برای Dragonboard 410c آماده کنید. خدمات تسهیل کننده و مساعدت کننده و بزرگتر از همه ما در سیستم های موجود در سیستم انحصاری خود به کار می رود.
LINK بدون برنامه بدون Google Play:
پیوند برای برنامه Py:
توصیه شده:
استراحت در کلاس درس: 8 مرحله
Classroom Dance Break: آیا کلاس شما نیاز به استراحت مغزی دارد و بالا بردن GoNoodle زمان بر است؟ آیا می خواهید از دانش آموزان خود درب منزل استقبال کنید ، اما به دلیل دست دادن به COVID-19 ، در آغوش گرفتن ، و بالا بودن پنج مورد سوال نیست؟ سپس راه حل شما اینجاست! انتخاب دانش آموزان
ردیاب دستشویی کلاس درس Makey Makey: 5 مرحله
ردیاب دستشویی کلاس درس Makey Makey: آیا تا به حال در کلاس خود مشغول بوده اید و متوجه نشده اید کدام دانش آموز (یا اگر بیش از یک نفر) به سرویس بهداشتی رفته است؟ من علوم کامپیوتر دبیرستان را تدریس می کنم و متوجه می شوم که دانش آموزان اغلب سعی می کنند کلاس درس را ترک کنند و & quot؛ از سرویس بهداشتی استفاده کنند & quot؛
کلاس امتحان MP3 کلاس درس: 10 مرحله (همراه با تصاویر)
تابلوی امتحان MP3 کلاس درس: ما به عنوان معلمان سابق همیشه در جستجوی فعالیت های کلاسی هستیم. ما به تازگی یک دیوار تعاملی بزرگ Sound FX ایجاد کرده ایم که فکر می کردیم برای یک کلاس درس عالی خواهد بود … تا زمانی که متوجه شدیم اکثر کلاس های درس یک غول بزرگ خالی ندارند
فیلم سینمایی برای کلاس درس: 4 مرحله
IMovie for the Classroom: در این دستورالعمل ها ، می خواهید نحوه برنامه ریزی ، ایجاد و ویرایش iMovie خود را بیاموزید تا بتوانید در آن تکلیف ویدئویی مزاحم A بگیرید. برای ایجاد iMovie به این مواد نیاز دارید: رایانه Mac ، برنامه iMovie ،
DIY LED-photometer with Arduino for Physics or شیمی درس: 5 مرحله (همراه با تصاویر)
نورسنج LED DIY با Arduino برای درس فیزیک یا شیمی: سلام مایعات یا اجسام دیگر رنگی به نظر می رسند زیرا رنگهای خاصی را منعکس یا منتقل می کنند و به نوبه خود رنگهای دیگر را می بلعند (جذب می کنند). با استفاده از یک فوتومتر ، می توان آن رنگها (طول موج) را تعیین کرد که توسط مایعات جذب می شوند. امتیاز اولیه