Isi kandungan:

Pelajaran Pintar: 6 Langkah
Pelajaran Pintar: 6 Langkah

Video: Pelajaran Pintar: 6 Langkah

Video: Pelajaran Pintar: 6 Langkah
Video: 5 Cara Merubah Pribadi yang BODOH Menjadi PINTAR (Pengembangan Diri) 2024, Julai
Anonim
Pelajaran Pintar
Pelajaran Pintar

O projeto Smart Lesson visa criar um produto no qual os profesor possam utilizar como um conteúdo a mais para ensinar seus alunos os levando a um nível de aprendizado muito superior por conseguir mostrar os conteúdos de forma dinâmica e interativa, proporcionando Experiencan não presenci nasa presencias de aula konvensional.

Langkah 1: Materiais

Materiais
Materiais

Para programar Dragonboard 410c:

- Dragonboard 410c;

- Cabo HDMI;

- Teclado melalui USB -Mouse melalui USB -Monitor;

- Papan 96 Mezzanine;

Para pelaksana atau projeto:

- Dragonboard 410c;

- Papan 96 Mezzanine;

- Sensor Grove IMU 10DOF MPU - 9250 (não limitado ao uso de um único sensor);

- Fonte de alimentação externa 11.1V;

- Jumper fêmea-fêmea;

Langkah 2: Dragonboard 410c Com Mezzanine 96 Papan: Configuração E Pinagem

Dragonboard 410c Com Mezzanine 96Badan: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Badan: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Badan: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Badan: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Badan: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Badan: Configuração E Pinagem

O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (level shifter), yang sesuai dengan 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;

Corrente de funcionamento: 6mA;

Comunicação Serial;

Pinos: VCC, GND, SDA dan SCL;

Antara muka I2C;

Para este exemplo juga telah memanfaatkan um dos conectores Grove I2C0 (5V), que proporciona a comunicação Serial e a alimentação needária para funcionamento do sensor. (ver imagem)

Langkah 3: Integração: Unity + Vuforia

Integração: Perpaduan + Vuforia
Integração: Perpaduan + Vuforia

1- Laman web da vuforia na érea de desenvolved atau e crie uma chave.

2- Tab tab Pengurus Sasaran e adicione uma textura para fazer o Penjejakan (quanto mais complexa melhor).

3- Feito mengeluarkan pangkalan data untuk o Unity e importe.

4- No Unity configure um image target 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- Apss modo os komponenes da aula em algum programa 3D dan bersiap sebagai aula em cima do image target (pode ser uma aula de Biologia ou Física…).

Langkah 4: Perpaduan: Konfigurasikan Android SDK

Unity: Konfigurasikan Android SDK
Unity: Konfigurasikan Android SDK

1- Baixe o SDK melakukan Android, vá em Keutamaan kesatuan dan selecione o seu diretório.

2- Padamkan plataform build un Unity para o android, assim conseguiremos gerar o APK.

3- Instal o apk em um dispositivo (não esqueça de permitir fontes desconhecidas nas configurações).

Langkah 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 sebagai configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa e utilizar várias linguagens como C ++, Java, Python, dan lain-lain, sebagai criar o software que será executado. Perisian perisian responsiveveler receiver os dados lidos pelo sensor, processar e tratar estes dadosonfe solicitado pelo programa. 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 / ular sawa

# Pengarang: Jon Trulson

# Hak Cipta (c) 2015 Intel Corporation.

#

# Kebenaran dengan ini diberikan, secara percuma, kepada setiap orang yang memperolehnya

# salinan perisian ini dan fail dokumentasi yang berkaitan (# "Perisian"), untuk menangani Perisian tanpa sekatan, termasuk

# tanpa had hak untuk menggunakan, menyalin, mengubah, menggabungkan, menerbitkan, # sebarkan, sublesen, dan / atau jual salinan Perisian, dan ke

# membenarkan orang yang diperuntukkan oleh Perisian untuk melakukannya, tertakluk kepada

# syarat berikut:

#

# Notis hak cipta di atas dan notis kebenaran ini adalah

# disertakan dalam semua salinan atau sebahagian besar Perisian.

#

# PERISIAN DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN SETIAP JENIS, # EKSPRESI ATAU TERSIRAT, TERMASUK TAPI TIDAK TERHAD KEPADA JAMINAN

# KELEBIHAN, KESESUAIAN UNTUK TUJUAN TERTENTU DAN

# PENGHARGAAN. DALAM TIADA PERISTIWA YANG HARUS DILAKUKAN OLEH PENULIS ATAU PEMEGANG HAK CIPTA

# BERTANGGUNGJAWAB UNTUK SETIAP TUNTUTAN, KEROSAKAN ATAU KEWAJIBAN LAIN, DI MANA TINDAKAN

# KONTRAK, TORT ATAU LAINNYA, BERMULA DARI, KELUAR ATAU DALAM Sambungan

# DENGAN PERISIAN ATAU PENGGUNAAN ATAU PENGHASILAN LAIN DALAM PERISIAN.

dari _future_ import_fungsi_fungsi

masa import, sys, signal, atexit, urllib, urllib2, math

dari upm import pyupm_mpu9150 sebagai sensorObj

def utama ():

# data = {}

# data ['magnetrometro'] = raw_input ("Maklumkan temperatura")

# data = urlib.urlencode (data)

# post_request = urlib2. Permintaan (post_url, data, header)

# cuba:

# post_response = urlib2.urlopen (post_request)

# cetak post_response.read ()

# kecuali URLError sebagai e:

# cetak "Ralat:", alasan

# Buat MPU9250 pada bas I2C 0

sensor = sensorObj. MPU9250 ()

## Pengendali keluar ##

# Fungsi ini menghentikan python daripada mencetak stacktrace ketika anda menekan control-C

def SIGINTHandler (signum, bingkai):

menaikkan SystemExit

# Fungsi ini membolehkan anda menjalankan kod semasa keluar

def exitHandler ():

cetak ("Keluar")

sys.exit (0)

# Daftar pengendali keluar

atexit.register (exitHandler)

signal.signal (signal. SIGINT, SIGINTHandler)

sensor.init ()

x = sensorObj.new_floatp ()

y = sensorObj.new_floatp ()

z = sensorObj.new_floatp ()

sementara (1):

sensor.kemas kini ()

sensor.getAccelerometer (x, y, z)

# cetak ("Accelerometer:")

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

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

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

# cetak (modulo1)

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

# cetak (modulo1)

#

# sensor.getGyroscope (x, y, z)

# cetak ("Giroskop: GX:", sensorObj.floatp_value (x), end = '')

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

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

sensor.getMagnetometer (x, y, z)

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

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

# cetak ("MZ:", sensorObj.floatp_value (z))

modulo2 = sensorObj.floatp_value (x) ** 2 + sensorObj.floatp_value (y) ** 2 + sensorObj.floatp_value (z) ** 2

# cetak (modulo2)

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

# cetak (modulo2)

arq = terbuka ('/ tmp / dados.txt', 'w')

texto =

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

arq.writelines (texto)

arq.tutup ()

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

# cetak ('enviando dados')

# hantar = urllib2.urlopen (pautan)

# halaman = send.read ()

# cetak (halaman)

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

# cetak ('enviando dados')

# hantar = urllib2.urlopen (pautan)

# halaman = send.read ()

# cetak (halaman)

# cetak ("Suhu:", sensor.getTemperature ())

# cetak ()

# masa. tidur (.5)

jika _nama_ == '_main_':

utama ()

Código do Servidor Local

masa import

import BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!! INGAT TUKAR INI !!!

PORT_NUMBER = 80 # Mungkin tetapkan ini menjadi 9000.

a = 0

kelas MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):

def do_HEAD (s):

s.send_response (200)

s.send_header ("Jenis kandungan", "teks / html")

s.end_headers ()

def do_GET:

dados = le_dados ()

cetak (dados)

"" "Balas permintaan GET." ""

jika s.path == "/ 1":

s.send_response (200)

s.send_header ("Jenis kandungan", "teks / biasa")

s.end_headers ()

s.wfile.write (dados)

elif s.path == "/ 2":

s.send_response (200)

s.send_header ("Jenis kandungan", "teks / biasa")

s.end_headers ()

s.wfile.write ("2")

lain:

s.send_response (200)

s.send_header ("Jenis kandungan", "teks / biasa")

s.end_headers ()

s.wfile.write (dados)

# s.wfile.write ("tidak dijumpai !!")

def le_dados ():

arq = terbuka ('/ tmp / dados.txt', 'r')

texto = arq.readline ()

arq.tutup ()

kembalikan texto

jika _nama_ == '_main_':

server_class = BaseHTTPServer. HTTPServer

httpd = pelayan_kelas ((HOST_NAME, PORT_NUMBER), MyHandler)

time print.asctime (), "Start Server -% s:% s"% (HOST_NAME, PORT_NUMBER)

cuba:

a = a + 2

httpd.serve_forever ()

kecuali KeyboardInterrupt:

lulus

httpd.server_close ()

time print.asctime (), "Berhenti Server -% s:% s"% (HOST_NAME, PORT_NUMBER)

Código de Execução dos Códigos anteriores no Shell

#! / bin / bash

gema "bermula mag_python"

sudo python mag_python.py &

gema "pelayan permulaan"

sudo python server2.py

Langkah 6: Final Resultado

Keputusan Akhir
Keputusan Akhir

Feito isso sebagai aulas poderão ser auxiliadas e incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. Servindo de سہولتador e proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.

LINK untuk aplikasi tanpa Google Play:

Pautan untuk códigos Py:

Disyorkan: