สารบัญ:

บทเรียนอันชาญฉลาด: 6 ขั้นตอน
บทเรียนอันชาญฉลาด: 6 ขั้นตอน

วีดีโอ: บทเรียนอันชาญฉลาด: 6 ขั้นตอน

วีดีโอ: บทเรียนอันชาญฉลาด: 6 ขั้นตอน
วีดีโอ: เรียนรู้เก่งขึ้นด้วย 8 วิธีง่ายๆ | เรียนเก่ง ฉลาดขึ้น | อาหารสมอง 6 โมงเย็น 2024, พฤศจิกายน
Anonim
บทเรียนอัจฉริยะ
บทเรียนอัจฉริยะ

O โครงการ 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 ão mostrar os conteúdos de for, for s â € เดอ เอาลา ตามธรรมดา

ขั้นตอนที่ 1: Materiais

Materiais
Materiais

โปรแกรมสำหรับ Dragonboard 410c:

- กระดานมังกร 410c;

- คาโบ HDMI;

- Teclado ผ่าน USB - เมาส์ผ่าน USB - จอภาพ;

- ชั้นลอย 96 บอร์ด;

ผู้ปฏิบัติการสำหรับโครงการ:

- กระดานมังกร 410c;

- ชั้นลอย 96 บอร์ด;

- Sensor Grove IMU 10DOF MPU - 9250 (เซ็นเซอร์จำกัดการใช้งาน ao uso de um único);

- Fonte de alimentação externa 11.1V;

- จัมเปอร์ fêmea-fêmea;

ขั้นตอนที่ 2: Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem

Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: กำหนดค่า E Pinagem

O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (level shifter), ใช้งานได้จริง 1.8V de saída O เซ็นเซอร์ที่ใช้ foi um magnetômetro Sensor MPU – 9250 Grove -IMU 10DOF, เฉพาะ:

Entrada เทนเซา: 5V / 3.3V;

Corrente ของ funcionameto: 6mA;

Comunicação อนุกรม;

Pinos: VCC, GND, SDA และ SCL;

อินเทอร์เฟซ I2C;

ตัวอย่างการใช้งานและการเชื่อมต่อ Grove I2C0 (5V), มาตรฐานและการสื่อสาร Serial e alimentação necessária para funcionamento do sensor. (ver imagem)

ขั้นตอนที่ 3: Integração: Unity + Vuforia

Integração: ความสามัคคี + Vuforia
Integração: ความสามัคคี + Vuforia

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

2- แท็บในแท็บ Target Manager e adicione uma textura para fazer o Tracking (quanto mais complexa melhor)

3- Feito isso baixe ฐานข้อมูลสำหรับ Unity e นำเข้า

4- No Unity กำหนดค่า 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- Após isso modele os componentes da aula em algum programa 3D e prepare as aulas em cima do image target (pode ser uma aula de Biologia ou Física…).

ขั้นตอนที่ 4: ความสามัคคี: กำหนดค่า O Android SDK

ความสามัคคี: กำหนดค่า O Android SDK
ความสามัคคี: กำหนดค่า O Android SDK

1- Baixe o SDK สำหรับ Android, vá em Unity preferences และ selecione o seu diretório

2- สร้างแพลตฟอร์ม build ให้เป็น Unity สำหรับ Android, assim conseguiremos gerar o APK

3- ติดตั้ง apk em um dispositivo (não esqueça de permitir fontes desconhecidas nas configurações)

ขั้นตอนที่ 5: Criando Server Local E Recebendo Informações Em Python

Criando Server Local E Recebendo Informações Em Python
Criando Server Local E Recebendo Informações Em Python

สรุปเป็น configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa e utilizar várias linguagens como C++, Java, Python, etc., para criar o software que será executado. Este software ตอบกลับโดย receber os dados lidos pelo sensor, processar e tratar estes dadoscompliante solicitado pelo programa. Depois carrega ess dados para o servidor alocado na própria placa para enviar os dados já tratados para a plataforma Unity. ตัวอย่างจาก código deste projeto estão em linguagem Phyton Os dados são transferidos da Dragonboard 410c สำหรับ Unity e são apresentados em um app

Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (เซิร์ฟเวอร์ในเครื่อง), Executável no Shell:

Código mag_python.py

#!/usr/bin/python

# ผู้แต่ง: Jon Trulson

# ลิขสิทธิ์ (c) 2015 Intel Corporation

#

# ได้รับอนุญาตนี้ให้ฟรีกับบุคคลใด ๆ ที่ได้รับ

# สำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง (# "ซอฟต์แวร์") เพื่อจัดการในซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึง

#ไม่จำกัดสิทธิ์ในการใช้ คัดลอก แก้ไข ผสาน เผยแพร่

# แจกจ่าย อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และ

# อนุญาตให้บุคคลที่ซอฟต์แวร์ได้รับการติดตั้งให้ทำเช่นนั้นภายใต้

#เงื่อนไขดังต่อไปนี้

#

# ประกาศลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะเป็น

# รวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์

#

# ซอฟต์แวร์มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ

# ไม่ว่าโดยชัดแจ้งหรือโดยนัย รวมถึงแต่ไม่จำกัดเพียงการรับประกันของ

# ความสามารถในการขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะและ

# การไม่ละเมิด ผู้เขียนหรือผู้ถือลิขสิทธิ์ไม่ว่าในกรณีใด ๆ

# รับผิดสำหรับการเรียกร้อง ความเสียหาย หรือความรับผิดอื่น ๆ ไม่ว่าจะอยู่ในการดำเนินการ

# ของสัญญา การละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือในการเชื่อมต่อ

# กับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ในซอฟต์แวร์

จาก _future_ นำเข้า print_function

เวลานำเข้า, sys, สัญญาณ, atexit, urllib, urllib2, math

จาก upm นำเข้า pyupm_mpu9150 เป็น sensorObj

def หลัก ():

# ข้อมูล = {}

# data['magnetrometro'] = raw_input(" แจ้งอุณหภูมิ")

# data = urlib.urlencode (ข้อมูล)

# post_request = urlib2. Request (post_url ข้อมูล ส่วนหัว)

# ลอง:

# post_response = urlib2.urlopen (post_request)

# พิมพ์ post_response.read()

# ยกเว้น URLError เป็น e:

# พิมพ์ "ข้อผิดพลาด: ", e.reason

# ยกตัวอย่าง MPU9250 บนบัส I2C 0

เซ็นเซอร์ = sensorObj. MPU9250()

## ตัวจัดการทางออก ##

# ฟังก์ชันนี้หยุด python จากการพิมพ์ stacktrace เมื่อคุณกด control-C

def SIGINTHandler(สัญลักษณ์, เฟรม):

ยก SystemExit

# ฟังก์ชั่นนี้ให้คุณเรียกใช้รหัสเมื่อออก

def exitHandler():

พิมพ์ ("ออก")

sys.exit(0)

# ลงทะเบียนตัวจัดการทางออก

atexit.register(exitHandler)

สัญญาณ.สัญญาณ(สัญญาณ. SIGINT, SIGINTHandler)

เซ็นเซอร์.init()

x = sensorObj.new_floatp()

y = sensorObj.new_floatp()

z = sensorObj.new_floatp()

ในขณะที่ (1):

เซ็นเซอร์. อัปเดต ()

sensor.getAccelerometer(x, y, z)

# พิมพ์ ("มาตรความเร่ง:")

# พิมพ์ ("AX: %.4f" % sensorObj.floatp_value(x), end=' ')

# พิมพ์ (" AY: %.4f" % sensorObj.floatp_value(y), end=' ')

# พิมพ์ (" 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

#พิมพ์(โมดูโล1)

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

#พิมพ์(โมดูโล1)

#

# sensor.getGyroscope(x, y, z)

# print("Gyroscope: GX: ", sensorObj.floatp_value(x), end=' ')

# พิมพ์ (" GY: ", sensorObj.floatp_value (y), end=' ')

# พิมพ์ (" GZ: ", sensorObj.floatp_value(z))

sensor.getMagnetometer(x, y, z)

# print("เครื่องวัดสนามแม่เหล็ก: MX: ", sensorObj.floatp_value(x), end=' ')

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

# พิมพ์ (" 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 = open('/tmp/dados.txt', 'w')

ข้อความ =

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

arq.writelines(ข้อความ)

arq.close()

# ลิงค์ = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))

# พิมพ์ ('enviando dados')

# send = urllib2.urlopen (ลิงค์)

# หน้า = send.read()

#พิมพ์(หน้า)

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

# พิมพ์ ('enviando dados')

# send = urllib2.urlopen (ลิงค์)

# หน้า = send.read()

#พิมพ์(หน้า)

# พิมพ์ ("อุณหภูมิ: ", sensor.getTemperature ())

# พิมพ์ ()

# เวลานอน(.5)

ถ้า _name_ == '_main_':

หลัก()

Código do Server Local

เวลานำเข้า

นำเข้า BaseHTTPServer

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("ประเภทเนื้อหา", "ข้อความ/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(ดาดอส)

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 (ดาดอส)

#s.wfile.write("ไม่พบ!!")

def le_dados():

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

texto = arq.readline()

arq.close()

ส่งคืนข้อความ

ถ้า _name_ == '_main_':

server_class = BaseHTTPServer. HTTPServer

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

พิมพ์ time.asctime(), "เซิร์ฟเวอร์เริ่ม - %s:%s" % (HOST_NAME, PORT_NUMBER)

ลอง:

a=a+2

httpd.serve_forever()

ยกเว้น KeyboardInterrupt:

ผ่าน

httpd.server_close()

พิมพ์ time.asctime(), "เซิร์ฟเวอร์หยุด - %s:%s" % (HOST_NAME, PORT_NUMBER)

Código de Execução dos Códigos anteriores ไม่มีเชลล์

#!/bin/bash

echo "เริ่มต้น mag_python"

sudo python mag_python.py &

echo "เริ่มเซิร์ฟเวอร์"

sudo python server2.py

ขั้นตอนที่ 6: ผลลัพธ์สุดท้าย

ผลลัพธ์ รอบชิงชนะเลิศ
ผลลัพธ์ รอบชิงชนะเลิศ

Feito isso as aulas poderão ser auxiliadas e incrementadas pelo projeto Smart Lesson ที่มาจาก Dragonboard 410c. บริการของผู้อำนวยความสะดวก และ proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado

ลิงค์สำหรับแอปไม่มี Google Play:

ลิงก์สำหรับรหัส Py:

แนะนำ: