Daftar Isi:
- Langkah 1: Materiais
- Langkah 2: Dragonboard 410c Com Mezzanine 96Boards: Konfigurasi Pinagem
- Langkah 3: Integrao: Unity + Vuforia
- Langkah 4: Unity: Konfigurasikan O Android SDK
- Langkah 5: Criando Servidor Lokal E Recebendo Menginformasikan Em Python
- Langkah 6: Hasil Akhir
Video: Pelajaran Cerdas: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
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
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
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
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
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
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
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:
Lampu LED Meja Cerdas - Pencahayaan Cerdas Dengan Arduino - Ruang Kerja Neopiksel: 10 Langkah (dengan Gambar)
Lampu LED Meja Cerdas | Pencahayaan Cerdas Dengan Arduino | Ruang Kerja Neopiksel: Saat ini kita menghabiskan banyak waktu di rumah, belajar dan bekerja secara virtual, jadi mengapa tidak membuat ruang kerja kita lebih luas dengan sistem pencahayaan khusus dan cerdas berbasis Arduino dan LED Ws2812b. Di sini saya tunjukkan cara membangun Smart Anda Lampu LED Meja yang
Jam Alarm Cerdas: Jam Alarm Cerdas Dibuat Dengan Raspberry Pi: 10 Langkah (dengan Gambar)
Jam Alarm Cerdas: Jam Alarm Cerdas yang Dibuat Dengan Raspberry Pi: Pernahkah Anda menginginkan jam pintar? Jika iya, ini solusinya untuk Anda! Saya membuat Smart Alarm Clock, ini adalah jam yang bisa Anda ubah waktu alarmnya sesuai dengan website. Saat alarm berbunyi, akan ada suara (buzzer) dan 2 lampu akan
Berkebun Cerdas Berbasis IoT dan Pertanian Cerdas Menggunakan ESP32: 7 Langkah
Berkebun Cerdas dan Pertanian Cerdas Berbasis IoT Menggunakan ESP32: Dunia berubah seiring waktu dan pertanian. Saat ini, Orang mengintegrasikan elektronik di setiap bidang dan pertanian tidak terkecuali untuk ini. Penggabungan elektronik dalam pertanian ini membantu petani dan orang-orang yang mengelola kebun.Dalam hal ini
Fotometer LED DIY Dengan Arduino untuk Pelajaran Fisika atau Kimia: 5 Langkah (dengan Gambar)
Fotometer LED DIY Dengan Arduino untuk Pelajaran Fisika atau Kimia: Halo! Cairan atau benda lain tampak berwarna karena memantulkan atau memancarkan warna tertentu dan pada gilirannya menelan (menyerap) warna lain. Dengan apa yang disebut fotometer, warna-warna tersebut (panjang gelombang) dapat ditentukan, yang diserap oleh cairan. Dasar pri
Pelajaran 2: Menggunakan Arduino Sebagai Sumber Daya untuk Sirkuit: 6 Langkah
Pelajaran 2: Menggunakan Arduino Sebagai Sumber Daya untuk Sirkuit: Halo lagi, siswa, untuk pelajaran kedua saya dari kursus saya untuk mengajarkan elektronik dasar. Bagi mereka yang belum melihat pelajaran pertama saya, yang menjelaskan dasar-dasar sirkuit yang sangat, sangat, silakan lihat itu sekarang. Bagi yang sudah melihat file saya sebelumnya