Daftar Isi:

Pelajaran Cerdas: 6 Langkah
Pelajaran Cerdas: 6 Langkah

Video: Pelajaran Cerdas: 6 Langkah

Video: Pelajaran Cerdas: 6 Langkah
Video: 13 Kebiasaan Sehari-Hari Yang Membuatmu Semakin CERDAS 2024, Juli
Anonim
Pelajaran Cerdas
Pelajaran Cerdas

aladas projeto Smart Lesson visa criar um produto no qual os professores 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 in de aula konvensional.

Langkah 1: Materiais

Materi
Materi

Untuk memprogram Dragonboard 410c:

- Papan naga 410c;

- Cabo HDMI;

- Teclado melalui USB -Mouse melalui USB -Monitor;

- Mezzanine 96boards;

Para pelaksana atau proyek:

- Papan naga 410c;

- Mezzanine 96boards;

- Sensor Grove IMU 10DOF MPU - 9250 (tanpa batas sensor);

- Fonte de alimentação externa 11.1V;

- Jumper fêmea-fêmea;

Langkah 2: Dragonboard 410c Com Mezzanine 96Boards: Konfigurasi Pinagem

Dragonboard 410c Com Mezzanine 96Papan: Konfigurasi Pinagem
Dragonboard 410c Com Mezzanine 96Papan: Konfigurasi Pinagem
Dragonboard 410c Com Mezzanine 96Papan: Konfigurasi Pinagem
Dragonboard 410c Com Mezzanine 96Papan: Konfigurasi Pinagem
Dragonboard 410c Com Mezzanine 96Papan: Konfigurasi Pinagem
Dragonboard 410c Com Mezzanine 96Papan: Konfigurasi Pinagem

O Shield Mezzanine deve ser acoplado placa Dragonboard 410c, untuk kebutuhan 3.3V / 5V (penggeser level), pois a placa so fornece 1.8V de saída. Sensor menggunakan magnetômetro Sensor MPU – 9250 Grove -IMU 10DOF, khusus:

Tenso de Entrada: 5V / 3.3V;

Fungsi utama: 6mA;

Serial Komunikasi;

Pino: VCC, GND, SDA dan SCL;

antarmuka I2C;

Para este exemplo foi utilizado um dos conectores Grove I2C0 (5V), que proporciona a comunicação Serial e a alimentao perlu untuk melakukan fungsi sensor. (ver imagem)

Langkah 3: Integrao: Unity + Vuforia

Integrao: Persatuan + Vuforia
Integrao: Persatuan + Vuforia

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

2- Vá na tab Manajer Target dan adicione uma textura para fazer o Pelacakan (quanto mais complexa melhor).

3- Feito menjadi database untuk Unity dan import.

4- Tidak Ada Kesatuan, konfigurasikan target gambar dengan tekstur, escolhida, dan tambahan, serta model, 3D, gunakan, dan mulai gambar untuk aplikasi pelo lokal.

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

6- Após isso modele os componentes da aula em algum programa 3D e mempersiapkan sebagai target gambar (pode ser uma aula de Biologia ou Física…).

Langkah 4: Unity: Konfigurasikan O Android SDK

Unity: Konfigurasikan O Android SDK
Unity: Konfigurasikan O Android SDK

1- Baixe o SDK melakukan Android, vá em preferensi Unity dan pilihan atau seu diretório.

2- Mude platform build lakukan Unity untuk android, assim coneguiremos gerar o APK.

3- Instal atau apk em um dispositivo (tidak ada izin fontes desconhecidas nas configurações).

Langkah 5: Criando Servidor Lokal E Recebendo Menginformasikan Em Python

Criando Servidor Lokal E Recebendo Menginformasikan Em Python
Criando Servidor Lokal E Recebendo Menginformasikan Em Python

Menyimpulkan sebagai configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa e utilizar várias linguagens como C++, Java, Python, dll., para criar o software que será executado. Perangkat lunak Este é responsável por receber os dados lidos pelo sensor, proses dan tratar estes dados sesuai solicitado pelo programa. Depois carrega esses dados para o service alocado na própria placa para enviar os dados já tratados para a plataforma Unity. Contoh dari kode deste projeto estão em linguagem Phyton. Os dados são transferidos da Dragonboard 410c untuk aplikasi Unity dan so apresentados em um.

Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py(Servidor local), Executável no Shell:

Kode mag_python.py

#!/usr/bin/python

# Penulis: Jon Trulson

# Hak Cipta (c) 2015 Intel Corporation.

#

# Izin dengan ini diberikan, gratis, kepada siapa pun yang memperoleh

# salinan perangkat lunak ini dan file dokumentasi terkait (the

# "Perangkat Lunak"), untuk menangani Perangkat Lunak tanpa batasan, termasuk

# tanpa batasan hak untuk menggunakan, menyalin, memodifikasi, menggabungkan, menerbitkan, # mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan untuk

# mengizinkan orang-orang yang diberikan Perangkat Lunak untuk melakukannya, dengan tunduk pada

# kondisi berikut:

#

# Pemberitahuan hak cipta di atas dan pemberitahuan izin ini adalah

# disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.

#

# PERANGKAT LUNAK DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, # TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN

# DAGANG, KESESUAIAN UNTUK TUJUAN TERTENTU DAN

# TIDAK PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK AKAN

# BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU KEWAJIBAN LAINNYA, BAIK DALAM TINDAKAN

# DARI KONTRAK, KERUGIAN ATAU LAINNYA, TIMBUL DARI, DARI ATAU BERHUBUNGAN

# DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU TRANSAKSI LAIN DALAM PERANGKAT LUNAK.

dari _future_ impor print_function

waktu impor, sistem, sinyal, atexit, urllib, urllib2, matematika

dari upm impor pyupm_mpu9150 sebagai sensorObj

def utama():

# data = {}

# data['magnetrometro'] = raw_input("Informasikan suhu")

# data = urlib.urlencode(data)

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

# mencoba:

# post_response = urlib2.urlopen(post_request)

# cetak post_response.read()

# kecuali URLError sebagai e:

# print "Error: ", e.reason

# Instansiasi MPU9250 pada bus I2C 0

sensor = sensorObj. MPU9250()

## Keluar dari penangan ##

# Fungsi ini menghentikan python dari mencetak stacktrace saat Anda menekan control-C

def SIGINTHandler(tanda, bingkai):

naikkan SystemExit

# Fungsi ini memungkinkan Anda menjalankan kode saat keluar

def exitHandler():

print("Keluar")

sys.keluar(0)

# Daftarkan penangan 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.update()

sensor.getAkselerometer(x, y, z)

# print("Akselerometer: ")

# 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

# cetak(modulo1)

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

# cetak (modulo1)

#

# sensor.getGiroskop(x, y, z)

# print("Giroskop: 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(" SAYA: ", 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

# cetak(modulo2)

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

# cetak (modulo2)

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

teks =

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

# kirim = urllib2.urlopen(tautan)

# halaman = kirim.baca()

# cetak (halaman)

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

# print ('enviando dados')

# kirim = urllib2.urlopen(tautan)

# halaman = kirim.baca()

# cetak (halaman)

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

# cetak()

# waktu.tidur(.5)

jika _name_ == '_main_':

utama()

Código do Servidor Local

waktu impor

impor BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!!INGAT UNTUK MENGUBAH INI!!!

PORT_NUMBER = 80 # Mungkin setel ini ke 9000.

a=0

kelas MyHandler(BaseHTTPServer. BaseHTTPRequestHandler):

def do_HEAD(s):

s.send_response(200)

s.send_header("Tipe-konten", "teks/html")

s.end_headers()

def do_GET(s):

dados = le_dados()

cetak (dados)

"""Menanggapi permintaan GET."""

jika s.path="/1":

s.send_response(200)

s.send_header("Jenis konten", "teks/polos")

s.end_headers()

s.wfile.write(dados)

elif s.path="/2":

s.send_response(200)

s.send_header("Jenis konten", "teks/polos")

s.end_headers()

s.wfile.write("2")

lain:

s.send_response(200)

s.send_header("Jenis konten", "teks/polos")

s.end_headers()

s.wfile.write(dados)

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

def le_dados():

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

teks = arq.readline()

arq.close()

kembali teks

jika _name_ == '_main_':

server_class = BaseHTTPServer. HTTPServer

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

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

mencoba:

a=a+2

httpd.serve_forever()

kecuali KeyboardInterrupt:

lulus

httpd.server_close()

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

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

#!/bin/bash

echo "memulai mag_python"

sudo python mag_python.py &

gema "mulai server"

sudo python server2.py

Langkah 6: Hasil Akhir

Hasil Akhir
Hasil Akhir

Feito isso as aulas poderão ser auxiliadas and incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. Servindo de facilitador dan proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.

LINK untuk aplikasi no Google Play:

Tautan untuk códigos Py:

Direkomendasikan: