Isi kandungan:
- Langkah 1: Materiais
- Langkah 2: Dragonboard 410c Com Mezzanine 96 Papan: Configuração E Pinagem
- Langkah 3: Integração: Unity + Vuforia
- Langkah 4: Perpaduan: Konfigurasikan Android SDK
- Langkah 5: Criando Servidor Local E Recebendo Informações Em Python
- Langkah 6: Final Resultado
Video: Pelajaran Pintar: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
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
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
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
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
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
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
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:
Pad Aktiviti Sukatan Pelajaran: 6 Langkah (dengan Gambar)
Pad aktiviti suku kata bergaul: Pad aktiviti suku kata bergaul dicipta sebagai alat pengajaran Teknologi Bantuan untuk murid-murid yang Bermasalah Pendengaran. Dalam pengalaman di kelas saya dan setelah berbual dengan Pakar Perunding Pendengaran, 3 petua teringat dalam penciptaan
Fotometer LED DIY Dengan Arduino untuk Pelajaran Fizik atau Kimia: 5 Langkah (dengan Gambar)
Fotometer LED DIY Dengan Arduino untuk Fizik atau Kimia Pelajaran: Hello! Cecair atau objek lain kelihatan berwarna kerana merefleksikan atau menghantar warna tertentu dan seterusnya menelan (menyerap) yang lain. Dengan apa yang disebut fotometer, warna tersebut (panjang gelombang) dapat ditentukan, yang diserap oleh cecair. Prinsip asas
Pelajaran 2: Menggunakan Arduino Sebagai Sumber Kuasa untuk Litar: 6 Langkah
Pelajaran 2: Menggunakan Arduino Sebagai Sumber Kuasa untuk Litar: Halo sekali lagi, pelajar, ke pelajaran kedua kursus saya untuk mengajar elektronik asas. Bagi mereka yang belum melihat pelajaran pertama saya, yang menjelaskan asas-asas litar, sila lihat sekarang. Bagi mereka yang sudah melihat le
Bengkel Java - Pelajaran # 1: 9 Langkah
Bengkel Java - Pelajaran # 1: Selamat Datang di Bengkel Java - Pelajaran # 1. Pelajaran ini diberikan kepada anda oleh kelas Code () di Virginia Tech
Arduino Tank Car Pelajaran 6 - Bluetooth dan Wifi Hot Spot Control: 4 Langkah
Arduino Tank Car Pelajaran 6 - Bluetooth dan Wifi Hot Spot Control: Dalam pelajaran ini, kita belajar bagaimana mengendalikan aplikasi Robot mobil mudah alih melalui WiFi dan Bluetooth., Kita hanya menggunakan papan espion wifi esp8266 sebagai papan pengembangan dan mengawal kereta tangki melalui penerima IR dalam pelajaran sebelumnya. Dalam pelajaran ini, kita akan belajar