Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Cara Membuat Aplikasi Android Kustom untuk Proyek Arduino Anda menggunakan MIT App Inventor

Dalam Tutorial Arduino ini kita akan belajar bagaimana membangun aplikasi Android kustom untuk mengendalikan Arduino menggunakan aplikasi online MIT App Inventor. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini.

Ringkasan

Untuk tutorial ini kami memiliki dua contoh. Contoh pertama adalah mengendalikan LED sederhana dan yang kedua mengendalikan Motor Stepper menggunakan smartphone. Dalam tutorial saya sebelumnya, kita telah mempelajari cara membuat komunikasi Bluetooth antara Papan Arduino dan Smartphone menggunakan modul Bluetooth HC-05 dan menjelaskan kode Arduino yang diperlukan untuk contoh pertama.

Kode Arduino

Berikut ikhtisar singkat tentang kode itu. Jadi, melalui port serial kami menerima data yang masuk dari smartphone dan menyimpannya dalam variabel 'status'. Jika kami menerima karakter '0' yang dikirim dari smartphone ketika tombol 'LED:OFF' ditekan, kami akan mematikan LED dan mengirim kembali ke smartphone String "LED:OFF". Di sisi lain, jika kita menerima karakter '1' kita akan menyalakan LED dan mengirim kembali String “LED:ON”.

/* Arduino and HC-05 Bluetooth Module Tutorial
 * 
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 */
 
#define ledPin 7
int state = 0;

void setup() {
 pinMode(ledPin, OUTPUT);
 digitalWrite(ledPin, LOW);
 Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
 state = Serial.read(); // Reads the data from the serial port
 }

 if (state == '0') {
 digitalWrite(ledPin, LOW); // Turn LED OFF
 Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON"
 state = 0;
 }
 else if (state == '1') {
 digitalWrite(ledPin, HIGH);
 Serial.println("LED: ON");;
 state = 0;
 } 
}Code language: Arduino (arduino)

Jadi sekarang kita perlu membangun aplikasi Android kustom kita yang akan mengirim karakter '0' dan '1' ketika tombol tertentu ditekan, serta, menerima String yang masuk dari Arduino.

Penemu Aplikasi MIT

Dari situs web MIT App Inventor, kita perlu masuk ke aplikasi pembuatan online dengan mengeklik tombol “Buat aplikasi!” tombol. Untuk masuk kita harus memiliki akun Gmail. Setelah kita login sekarang kita dapat membuat proyek pertama kita. Berikut tampilan jendela desain dan sekarang kita dapat mulai membuat aplikasi.

Namun sebelum melakukan itu, kita dapat menghubungkan smartphone kita ke proyek ini sehingga kita dapat melihat bagaimana aplikasi tersebut terbentuk secara langsung di smartphone kita secara real time. Untuk melakukan itu pertama-tama kita harus mengunduh aplikasi MIT AI2 Companion dari Play Store dan menginstalnya di smartphone kita. Kemudian dari menu Connect dari editor online kita akan memilih AI Companion dan akan muncul barcode yang tinggal kita scan atau masukkan kode ke dalam aplikasi smartphone dan koneksi antara editor online dan aplikasi smartphone akan terjalin.

Jadi sekarang misalnya, jika kita memasukkan tombol di layar editor online, tombol itu juga akan muncul secara real time di smartphone. Mirip dengan ini, jika Anda tidak ingin menggunakan ponsel cerdas Anda saat membangun aplikasi, Anda dapat menginstal Emulator Android di komputer Anda dan menggunakannya dengan cara yang sama. Anda dapat menemukan detail selengkapnya tentang cara menyiapkan Emulator di situs web mereka.

Membangun Aplikasi – Contoh 1

Sekarang kita siap untuk membangun contoh pertama. Kami akan mulai dengan tata letak program. Pertama kita akan menambahkan beberapa HorizontalArrangements dari Palette layout dan mengatur propertinya seperti tinggi, lebar dan perataan agar sesuai dengan tampilan yang diinginkan program kita. Kemudian dari Palet UserInterface kita akan menambahkan ListPicker dan melampirkan gambar ke dalamnya. ListPicker akan digunakan untuk memilih perangkat Bluetooth yang akan dihubungkan dengan ponsel cerdas kita.

Selanjutnya kita akan menambahkan HorizontalArrangements di mana kita akan menempatkan Label. Label ini akan menunjukkan apakah smartphone terhubung atau tidak ke modul Bluetooth dan itulah sebabnya kami akan mengatur teks awal label ini menjadi "Tidak Terhubung". Label selanjutnya akan digunakan untuk menampilkan status LED, apakah mati atau menyala. Status awal akan menjadi "LED:OFF". Selanjutnya kita akan menambahkan dua tombol, 'Turn On' dan 'Turn Off' untuk mengontrol LED. Pada titik ini ada baiknya untuk mengganti nama komponen agar kita lebih mudah mengenali dan menggunakannya di editor Blok nanti. Yang tersisa sekarang adalah menambahkan BluetoothClient yang merupakan komponen Non-visible serta jam yang akan digunakan untuk indikasi status koneksi secara real time.

Editor Blok

Sekarang di editor Blok kami siap untuk menghidupkan program kami. Dari sisi kiri kami mendapatkan semua blok dan fungsi yang terkait dengan komponen yang ditambahkan sebelumnya.

Kita akan mulai dengan BluetoothList ListPicker. Dari sana pertama-tama kita akan menambahkan blok 'BeforePicking' dan melampirkan blok 'set Bluetooth Elements'. Kemudian dari blok BluetoothClient kami akan menambahkan blok 'BluetoothClient AddressesAndNames'. Apa yang akan dilakukan oleh kumpulan blok ini adalah mengatur daftar perangkat Bluetooth yang telah dipasangkan dengan telepon kita sehingga ketika kita mengklik "Tombol Sambung" ListPicker, daftar semua perangkat yang dipasangkan akan muncul.

Selanjutnya kita harus mengatur apa yang akan terjadi setelah kita akan memilih atau memilih modul Bluetooth tertentu kita. Dari blok BluetoothClient kita akan menambahkan blok 'call BluetoothClient .Connect address' dan tambahkan blok 'BluetoothList Selection' ke dalamnya, yang berarti ponsel kita akan terhubung ke alamat Bluetooth yang telah kita pilih sebelumnya.

Selanjutnya dari blok Jam kita akan menambahkan blok “.Timer”. Dalam blok ini kami akan membuat indikasi waktu nyata apakah ponsel terhubung atau tidak ke modul Bluetooth menggunakan blok “teks set” dari label bernama “Tersambung”.

Selanjutnya kita perlu menghidupkan kedua tombol tersebut. Jadi ketika "TurnOn_Button" akan diklik kita akan menggunakan fungsi klien Bluetooth "Send1ByteNumber" untuk mengirim nomor ke modul Bluetooth Arduino. Dalam kasus kami itu nomor 49 yang sesuai dengan karakter '1' menurut tabel ASCII dan yang akan menyalakan LED. Tepat setelah itu kita akan menggunakan fungsi BluetoothClient "ReceiveText" untuk menerima String masuk yang dikirim kembali dari Arduino ke telepon. String ini disetel ke Label “LED_Status”.

Prosedur yang sama berlaku untuk "TurnOff_Button" di mana nomor pengiriman harus diubah menjadi 48 yang sesuai dengan karakter '0'. Yang tersisa sekarang adalah mengunduh dan menginstal program di ponsel cerdas kita. Kita dapat melakukannya dari menu "Build" dengan menyimpannya ke komputer kita dan kemudian mentransfernya ke telepon kita atau memindai kode QR untuk mengunduh program secara online. Berikut demonstrasi contohnya.

Berikut adalah file unduhan proyek MIT App Inventor di atas:

BluetoothTest.aia

1 file 5.16 KB Unduh

Contoh Kontrol Motor Stepper


Sekarang mari kita lihat contoh kedua, mengendalikan motor stepper. Di bagian atas layar kami memiliki komponen yang sama untuk koneksi Bluetooth seperti contoh sebelumnya. Selanjutnya kita memiliki komponen Canvas yang digunakan untuk menggambar dan menyisipkan gambar. Saya memasukkan dua gambar transparan yang saya gambar sebelumnya. Yang pertama adalah gambar pengukur yang akan tetap di tempatnya dan yang kedua adalah gambar penunjuk yang akan berputar. Selanjutnya kita memiliki tombol Periksa untuk beralih antara Manual dan Otomatis atau mode terus berjalan dan tombol untuk mengubah arah putaran. Pada tombol kami memiliki penggeser untuk mengubah kecepatan putaran motor stepper.

Berikut adalah blok dan kode Arduino di balik contoh ini. Jadi, di editor Blok lagi kami memiliki blok yang sama untuk koneksi Bluetooth seperti contoh sebelumnya.

Sekarang untuk memutar gambar pointer kita menggunakan fungsi ImageSprite “.PointInDirection” yang memutar gambar dari posisi 0° ke koordinat X dan Y dimana Kanvas telah disentuh. Pada saat yang sama kami mengatur judul ImageSprite yang diputar ke label teks di atas. Setelah itu kita panggil prosedur yang dibuat khusus, atau fungsi yang sebenarnya delay 10m detik.

Terakhir kami mengirim nilai heading sebagai Teks ke Arduino menggunakan fungsi Bluetooth "SendText". Nilai ini akan diterima oleh Arduino dan akan memutar motor stepper sesuai dengan itu.

Berikutnya adalah blok CheckBox. Jadi jika CheckBox dicentang kami akan mengirimkan teks “Auto” ke Arduino yang akan mengaktifkan motor stepper untuk berputar terus menerus. Saat kita dalam mode ini jika kita menekan tombol “Reverse”, kita akan mengirimkan teks “Reverse” ke Arduino yang akan mengubah arah putaran motor. Juga, saat kita berada dalam mode ini, kita dapat mengubah kecepatan rotasi. Jika kita mengubah posisi slider, nilai saat ini dari posisi slider akan dikirim ke Arduino yang akan mengubah kecepatan putaran stepper. Jika kami menghapus centang pada Kotak Centang, kami akan kembali ke mode manual. Berikut demonstrasi contohnya.

Berikut adalah file unduhan proyek MIT App Inventor di atas, serta dua gambar yang digunakan dalam proyek:

StepperMotorTest.aia

1 file 60.96 KB Unduh

Gambar Pengukur Motor Stepper dan Penunjuk

1 file 27.34 KB Unduh

Berikut kode Arduino dari contoh kedua:

/*  Stepper Motor Control via HC-05 Bluetooth Module
 *      
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *  
 */

// Defining variables
const int stepPin = 7; 
const int dirPin = 6;
String state = ""; 
int currentHeading=0;
int currentAngle=0;
int lastAngle=0;
int angle=0;
int rotate=0;
int runContinuously=0;
String mode = "Manual";
boolean dirRotation = HIGH;
int rotSpeed = 1500;
 
void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
  delayMicroseconds(1);
  if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.readString(); // Reads the data from the serial port
 }
 // When Auto Button is pressed
 if (mode == "Auto") {
  if (state == "Reverse") {
    delay(10);
    if (dirRotation == HIGH) {
      dirRotation = LOW;
    }
    else {
      dirRotation = HIGH;
    }  
    digitalWrite(dirPin,dirRotation);
    delay(10);
    state = "";
  }
  rotSpeed = state.toInt();
  if (rotSpeed >= 300 && rotSpeed <= 3000) {
  digitalWrite(stepPin,HIGH); 
  delayMicroseconds(rotSpeed); 
  digitalWrite(stepPin,LOW); 
  delayMicroseconds(rotSpeed);
  }
  else {
  digitalWrite(stepPin,HIGH); 
  delayMicroseconds(1500); 
  digitalWrite(stepPin,LOW); 
  delayMicroseconds(1500);
  }
  
  if (state == "Manual"){
    mode = state;
  }
 }
 // When Program is in Manual mode
 else if (mode == "Manual"){ 
 currentHeading = state.toInt();
 //Serial.println(angle);
 //Serial.println(state);
 if (currentHeading < 0 ){
  currentHeading = 360+currentHeading;
 }
 currentAngle = map(currentHeading,0,359,0,200);
 digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  if (currentAngle != lastAngle){
    if(currentAngle > lastAngle){  
      rotate = currentAngle - lastAngle;  
      for(int x = 0; x < rotate; x++) {
      digitalWrite(stepPin,HIGH); 
      delayMicroseconds(500); 
      digitalWrite(stepPin,LOW); 
      delayMicroseconds(500); 
      }
    }

    if(currentAngle < lastAngle){  
      rotate = lastAngle - currentAngle; 
      digitalWrite(dirPin,LOW); //Changes the rotations direction
      for(int x = 0; x < rotate; x++) {
      digitalWrite(stepPin,HIGH); 
      delayMicroseconds(500); 
      digitalWrite(stepPin,LOW); 
      delayMicroseconds(500); 
      }
    }
  }
  lastAngle = currentAngle;
  if (state == "Auto"){
    mode = state;
  }
 }
}
Code language: Arduino (arduino)

Proses manufaktur

  1. Bangun Sistem Pemulihan Parasut Balistik untuk Drone Anda
  2. Bagaimana Memilih Bahan yang Tepat untuk Proyek Anda?
  3. Membuat Monitor Ambilight Menggunakan Arduino
  4. Kontrol Jarak Jauh Universal menggunakan Arduino, 1Sheeld, dan Android
  5. Cara Membangun Peta Jalan Otomasi Anda dalam 7 Langkah
  6. Magnesium Vs. Aluminium:Cara Memilih Paduan untuk Proyek Pengecoran Kustom Anda
  7. Cara Memilih Derek yang Tepat Untuk Proyek Anda
  8. Pemesinan Kustom:Inilah Cara Mempersiapkan Penawaran Proyek Anda
  9. Cara Memperkirakan Kebutuhan Baja untuk Proyek Anda
  10. Manfaat Sandblasting untuk Proyek Fabrikasi Logam Kustom Anda