Medicine guide for foreigners using Augmented reality
One of the main difficulties as a foreigner in a different country is find the exact medicine when we are feeling sick. Because of the language barrier might be difficult to express our pain, or understand if the medicine is that we need, then using technology to cover such necessities is paramount.
Tools for this software are listed below:
- Unity 2018.2.4f1
- Vuforia SDK
- Visual Studio
On Vuforia’s developer account, create a target and obtain the Target’s licence key for using on the model which is going to be read by Vuforia’s camera.
The targets are going to recognize the the following models:
The information about these medicines will be displayed using a Canvas with different languages such as seen below:
According to the users selection, different languages will be displayed on the Scenes, with the explanation of the medicine as well as how to take it and the chemicals that contains.
For this canvas to be displayed, the following code needs to be added to Vuforia’s camera.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
using System.IO;
public class Clicks : MonoBehaviour {
public GameObject Canvas_info
public GameObject info_Paracetamol_EN, info_Paracetamol_AR, info_Paracetamol_ES, info_Paracetamol_FR;
// Use this for initialization
void Start () {
Canvas_info.SetActive(false);
info_Paracetamol_EN.SetActive(false);
info_Paracetamol_AR.SetActive(false);
info_Paracetamol_ES.SetActive(false);
info_Paracetamol_FR.SetActive(false);
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.tag == "TagParacetamol_AR")
{
Canvas_info.SetActive(true);
info_Paracetamol_AR.SetActive(true);
info_Paracetamol_FR.SetActive(false);
info_Paracetamol_ES.SetActive(false);
info_Paracetamol_EN.SetActive(false);
}
if (hit.collider.tag == "TagParacetamol_EN")
{
Canvas_info.SetActive(true);
info_Paracetamol_ES.SetActive(false);
info_Paracetamol_EN.SetActive(true);
info_Paracetamol_AR.SetActive(false);
info_Paracetamol_FR.SetActive(false);
}
if (hit.collider.tag == "TagParacetamol_FR")
{
Canvas_info.SetActive(true);
info_Paracetamol_EN.SetActive(false);
info_Paracetamol_FR.SetActive(true);
info_Paracetamol_ES.SetActive(false);
info_Paracetamol_AR.SetActive(false);
}
if (hit.collider.tag == "TagParacetamol_ES")
{
Canvas_info.SetActive(true);
info_Paracetamol_EN.SetActive(false);
info_Paracetamol_AR.SetActive(false);
info_Paracetamol_ES.SetActive(true);
info_Paracetamol_FR.SetActive(false);
}
if (Application.platform == RuntimePlatform.Android)
{
if (Input.GetKeyUp(KeyCode.Escape))
{
//quit application on return button
Application.Quit();
return;
}
}
}
}
}
public void Close_canvas()
{
Canvas_info.SetActive(false);
}
}
A game object should be created for the pattern recognition as shown in the image below:
Here, there are 4 buttons with different languages(French, English, Spanish and Arabic), each button will display the information contained in the canvas for further reading, until the exit button is pressed as shown below:
This project was successful, but for further improvement needs to use other meanings for recognition that doesn’t need be keep updating directly, such as direct search from different search engines such as Baidu, Bing and others.
The Demo APK can be downloaded from HERE
Demonstration of the APK