SlideShare uma empresa Scribd logo
1 de 28
ANDROID VE ELEKTRONİKANDROID VE ELEKTRONİK
Muharrem TaçMuharrem Taç
M2 BilişimM2 Bilişim
Bilim dalı olarak elektronikBilim dalı olarak elektronik
Elektronik, serbest elektronların (valans elektron) denetiminiElektronik, serbest elektronların (valans elektron) denetimini
konu edinen bir bilim dalıdır. Atom çekirdeğinin en dışkonu edinen bir bilim dalıdır. Atom çekirdeğinin en dış
yörüngesindeki elektronun atom çekirdeğine daha zayıf biryörüngesindeki elektronun atom çekirdeğine daha zayıf bir
kuvvetle bağlı olmasından dolayı valans elektronun enerjikuvvetle bağlı olmasından dolayı valans elektronun enerji
seviyesinin arttırılması sonucu atom çekirdeğinden koparılmasıseviyesinin arttırılması sonucu atom çekirdeğinden koparılması
prensibidir.prensibidir.
Elektronik cihazların temel yapı taşlarında silisyum, germanyum,Elektronik cihazların temel yapı taşlarında silisyum, germanyum,
ve galyum elementleri kullanılarak imal edilir. Bu maddelerve galyum elementleri kullanılarak imal edilir. Bu maddeler
aralarında mikro veya nano boşluklar bırakılarak elektronların buaralarında mikro veya nano boşluklar bırakılarak elektronların bu
elementler arasında kuantum sıçramaları yani elektronların orbitalelementler arasında kuantum sıçramaları yani elektronların orbital
(yörünge) değiştirmesi sağlanarak mantıksal işlemler yaptırılır.(yörünge) değiştirmesi sağlanarak mantıksal işlemler yaptırılır.
Bilgisayarın ve elektronik cihazların temel çalışma prensibi buBilgisayarın ve elektronik cihazların temel çalışma prensibi bu
ilkeye dayanır.ilkeye dayanır.
http://tr.wikipedia.org/wiki/Elektronik
Mühendislik olarak elektronikMühendislik olarak elektronik
Elektronik, elektrik akımını geçiren, iletken, yarıElektronik, elektrik akımını geçiren, iletken, yarı
iletken, üstün iletken, direnç, kondansatör,iletken, üstün iletken, direnç, kondansatör,
indüktans, vakum tüpleri ve nano ölçekli yapılarlaindüktans, vakum tüpleri ve nano ölçekli yapılarla
imal edilen elemanların ve bu elemanların montajıylaimal edilen elemanların ve bu elemanların montajıyla
meydana gelen cihazların geliştirilmesiyle ilgilenenmeydana gelen cihazların geliştirilmesiyle ilgilenen
mühendislik dalıdır.mühendislik dalıdır.
http://www.nuveforum.net/731-muhendislik-bilimleri-bolumu/31090-elektronik-nedir-elektronik-hakkinda/
TarihçeTarihçe
James Clerk Maxwell Michael Faraday Antonio Meucci Nikola Tesla
John Bardeen,
William Shockley
ve Walter Brattain
Jack KilbyGeoffrey Dummer
Georg Simon Ohm
Alessandro Volta
André-Marie Ampère
Luigi Galvani
John von Neumann
Elektronik devre elemanlarıElektronik devre elemanları
Direnç Kondansatör Transistör Diyot Güç kaynağı Transformatör
…
Elektronik devre şemalarıElektronik devre şemaları
Dijital elektronikDijital elektronik
Mantıksal kapılarMantıksal kapılar
http://www.schoolphysics.co.uk/age16-19/Electronics/Logic%20gates/text/Logic_gates/index.html
Dijital elektronikDijital elektronik
Entegre devrelerEntegre devreler
Mikro işlemciler ve mikro denetleyicilerMikro işlemciler ve mikro denetleyiciler
MikroişlemciMikroişlemci
http://elektroteknoloji.com/blog/mikroislemci-ve-mikrodenetleyici-arasindaki-farklar/
Bir mikroişlemci görevini yerine getirebilmesi için mutlaka, verilerin
saklanacağı bellek birimine, dış dünyadan veri alış-verişinin düzenli
yapılmasını sağlayan giriş/çıkış birimine ihtiyaç duyar. Bunlar bir
mikroişlemcili sistemde ayrı ayrı birimler (entegreler) şeklinde yerini alır.
Örnek: Intel Core i7
MikrodenetleyiciMikrodenetleyici
Mikrodenetleyicilerde tüm bu birimler (işlemci, bellek ve G/Ç, bunlara
ADC ve DAC gibi sinyal dönüştürücü elemanlarda eklenebilmektedir)
bir arada bulunmaktadır.
Örnek: Atmel Atmega 2560
ProteusProteus
http://www.labcenter.com/
ArduinoArduino
Arduino UNOArduino UNO
ArduinoArduino
Bir prototyping platform,Bir prototyping platform,
Çeşitli modelleri var,Çeşitli modelleri var,
Temelde Atmel marka mikrodenetleyiciler içeriyor,Temelde Atmel marka mikrodenetleyiciler içeriyor,
Programlama dili olarak Processing ve Wiring’e dayanan kendi dili kullanılıyor,Programlama dili olarak Processing ve Wiring’e dayanan kendi dili kullanılıyor,
Java ile yazılmış bir IDE’si var,Java ile yazılmış bir IDE’si var,
Shield adı verilen eklentiler ile zenginleştirilebiliyor,Shield adı verilen eklentiler ile zenginleştirilebiliyor,
Açık kaynaklı (Open Hardware),Açık kaynaklı (Open Hardware),
Büyük topluluk desteğine sahip,Büyük topluluk desteğine sahip,
Hemen her konuda kütüphaneler var,Hemen her konuda kütüphaneler var,
Hemen her türlü eklenti ve shieldları Türkiye’de bulunuyor, Dealextreme’de hepsi varHemen her türlü eklenti ve shieldları Türkiye’de bulunuyor, Dealextreme’de hepsi var
ama geç ulaşıyor,ama geç ulaşıyor,
Tüm platformlarda destek var…Tüm platformlarda destek var…
ArduinoArduino
Arduino ShieldsArduino Shields
ArduinoArduino
Arduino IDEArduino IDE
Android ve Arduino Mega ADKAndroid ve Arduino Mega ADK
Android ve Arduino Mega ADKAndroid ve Arduino Mega ADK
ADK: Android Acessory Development Kit’inADK: Android Acessory Development Kit’in
kısaltmasıkısaltması
Android Open Accessory support is included in Android 3.1 (API Level 12)
and higher, and supported through an Add-On Library in Android 2.3.4 (API
Level 10) and higher.
Android 4.1 and higher has support for audio output over a USB
connection or Bluetooth. Find out how to build audio docks and other
plug-in audio output hardware for Android.
http://source.android.com/tech/accessories/index.html
Android ArduinoAndroid Arduino
Android ArduinoAndroid Arduino
<uses-library android:name="com.android.future.usb.accessory"></uses-library>
AndroidManifest.xmlAndroidManifest.xml
private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)) {
synchronized (this) {
UsbAccessory accessory = UsbManager.getAccessory(intent);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
openAccessory(accessory);
} else {
Log.d(TAG, "permission denied for accessory " + accessory);
}
mPermissionRequestPending = false;
}
} else if (UsbManager.ACTION_USB_ACCESSORY_DETACHED.equals(action)) {
UsbAccessory accessory = UsbManager.getAccessory(intent);
if (accessory != null && accessory.equals(mAccessory)) {
closeAccessory();
}
}
}
};
import com.android.future.usb.UsbAccessory;
import com.android.future.usb.UsbManager;
Android ArduinoAndroid Arduino
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mUsbManager = UsbManager.getInstance(this);
mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION),
0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED);
registerReceiver(mUsbReceiver, filter);
if (getLastNonConfigurationInstance() != null) {
mAccessory = (UsbAccessory) getLastNonConfigurationInstance();
openAccessory(mAccessory);
}
setContentView(R.layout.activity_main);
buttonLED = (ToggleButton) findViewById(R.id.toggleButtonLED);
}
codecode
Android ArduinoAndroid Arduino
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mUsbManager = UsbManager.getInstance(this);
mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION),
0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED);
registerReceiver(mUsbReceiver, filter);
if (getLastNonConfigurationInstance() != null) {
mAccessory = (UsbAccessory) getLastNonConfigurationInstance();
openAccessory(mAccessory);
}
setContentView(R.layout.activity_main);
buttonLED = (ToggleButton) findViewById(R.id.toggleButtonLED);
}
codecode
Android ArduinoAndroid Arduino
@Override
public void onResume() {
super.onResume();
if (mInputStream != null && mOutputStream != null) {
return;
}
UsbAccessory[] accessories = mUsbManager.getAccessoryList();
UsbAccessory accessory = (accessories == null ? null : accessories[0]);
if (accessory != null) {
if (mUsbManager.hasPermission(accessory)) {
openAccessory(accessory);
} else {
synchronized (mUsbReceiver) {
if (!mPermissionRequestPending) {
mUsbManager.requestPermission(accessory,mPermissionIntent);
mPermissionRequestPending = true;
}
}
}
} else {
Log.d(TAG, "mAccessory is null");
}
}
codecode
Android ArduinoAndroid Arduino
private void openAccessory(UsbAccessory accessory) {
mFileDescriptor = mUsbManager.openAccessory(accessory);
if (mFileDescriptor != null) {
mAccessory = accessory;
FileDescriptor fd = mFileDescriptor.getFileDescriptor();
mInputStream = new FileInputStream(fd);
mOutputStream = new FileOutputStream(fd);
Log.d(TAG, "accessory opened");
} else {
Log.d(TAG, "accessory open fail");
}
}
codecode
Android ArduinoAndroid Arduino
public void blinkLED(View v){
byte[] buffer = new byte[1];
if(buttonLED.isChecked())
buffer[0]=(byte)0; // button says on, light is off
else
buffer[0]=(byte)1; // button says off, light is on
if (mOutputStream != null) {
try {
mOutputStream.write(buffer);
} catch (IOException e) {
Log.e(TAG, "write failed", e);
}
}
}
Java codeJava code
private void closeAccessory() {
try {
if (mFileDescriptor != null) {
mFileDescriptor.close();
}
} catch (IOException e) {
} finally {
mFileDescriptor = null;
mAccessory = null;
}
}
Android ArduinoAndroid Arduino
#include <Max3421e.h>
#include <Usb.h>
#include <AndroidAccessory.h>
#define LED_PIN 13
AndroidAccessory acc("Manufacturer", "Model", "Description", "1.0", "http://yoursite.com", "0000000012345678");
void setup()
{
// set communiation speed
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
acc.powerOn();
}
void loop()
{
byte msg[0];
if (acc.isConnected()) {
int len = acc.read(msg, sizeof(msg), 1); // read data into msg variable
if (len > 0) {
if (msg[0] == 1) // compare received data
digitalWrite(LED_PIN,HIGH); // turn on light
else
digitalWrite(LED_PIN,LOW); // turn off light
}
}
else
digitalWrite(LED_PIN , LOW); // turn off light
}
Arduino CodeArduino Code
Arduino Android UygulamalarıArduino Android Uygulamaları
Arduino CommanderArduino Commander
ADK DemokitADK Demokit
ADK 2012ADK 2012
……..
Android Yüklenebilen Açık PlatformlarAndroid Yüklenebilen Açık Platformlar
Panda BoardPanda Board
Raspberry PiRaspberry Pi
……
TeşekkürlerTeşekkürler
muharrem.tac@m2bilisim.com.trmuharrem.tac@m2bilisim.com.tr
muharremtac@gmail.commuharremtac@gmail.com
www.gelecekonline.comwww.gelecekonline.com
www.muharremtac.comwww.muharremtac.com
facebook.com/muharremtacfacebook.com/muharremtac
twitter.com/muharremtactwitter.com/muharremtac

Mais conteúdo relacionado

Semelhante a Android ve Elektronik

Aritmetik devreler
Aritmetik devrelerAritmetik devreler
Aritmetik devrelerErol Dizdar
 
Staj Defterim-2013/1
Staj Defterim-2013/1Staj Defterim-2013/1
Staj Defterim-2013/1Erol BALABAN
 
Işlemsel yükselteç
Işlemsel yükselteçIşlemsel yükselteç
Işlemsel yükselteçErol Dizdar
 
Bulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin Arvas
Bulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin ArvasBulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin Arvas
Bulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin ArvasEmin Arvas
 
Arduinoİle Programlama
Arduinoİle ProgramlamaArduinoİle Programlama
Arduinoİle ProgramlamaHARUN PEHLIVAN
 
Temel devre uygulamaları
Temel devre uygulamalarıTemel devre uygulamaları
Temel devre uygulamalarıErol Dizdar
 
Güneş Takip Sistemleri ve Güneşli Pişiriciler
Güneş Takip Sistemleri ve Güneşli PişiricilerGüneş Takip Sistemleri ve Güneşli Pişiriciler
Güneş Takip Sistemleri ve Güneşli PişiricilerMuhammed Hatal
 
Transistör ve fet
Transistör ve fetTransistör ve fet
Transistör ve fetErol Dizdar
 

Semelhante a Android ve Elektronik (11)

Aritmetik devreler
Aritmetik devrelerAritmetik devreler
Aritmetik devreler
 
Staj Defterim-2013/1
Staj Defterim-2013/1Staj Defterim-2013/1
Staj Defterim-2013/1
 
Flip flop
Flip   flopFlip   flop
Flip flop
 
Işlemsel yükselteç
Işlemsel yükselteçIşlemsel yükselteç
Işlemsel yükselteç
 
Bulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin Arvas
Bulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin ArvasBulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin Arvas
Bulut bilişim ve Nesnelerin İnterneti IoT sunum - Emin Arvas
 
Arduinoİle Programlama
Arduinoİle ProgramlamaArduinoİle Programlama
Arduinoİle Programlama
 
Osilatör
OsilatörOsilatör
Osilatör
 
Temel devre uygulamaları
Temel devre uygulamalarıTemel devre uygulamaları
Temel devre uygulamaları
 
Güneş Takip Sistemleri ve Güneşli Pişiriciler
Güneş Takip Sistemleri ve Güneşli PişiricilerGüneş Takip Sistemleri ve Güneşli Pişiriciler
Güneş Takip Sistemleri ve Güneşli Pişiriciler
 
Ağ yapıları
Ağ yapılarıAğ yapıları
Ağ yapıları
 
Transistör ve fet
Transistör ve fetTransistör ve fet
Transistör ve fet
 

Android ve Elektronik

  • 1. ANDROID VE ELEKTRONİKANDROID VE ELEKTRONİK Muharrem TaçMuharrem Taç M2 BilişimM2 Bilişim
  • 2. Bilim dalı olarak elektronikBilim dalı olarak elektronik Elektronik, serbest elektronların (valans elektron) denetiminiElektronik, serbest elektronların (valans elektron) denetimini konu edinen bir bilim dalıdır. Atom çekirdeğinin en dışkonu edinen bir bilim dalıdır. Atom çekirdeğinin en dış yörüngesindeki elektronun atom çekirdeğine daha zayıf biryörüngesindeki elektronun atom çekirdeğine daha zayıf bir kuvvetle bağlı olmasından dolayı valans elektronun enerjikuvvetle bağlı olmasından dolayı valans elektronun enerji seviyesinin arttırılması sonucu atom çekirdeğinden koparılmasıseviyesinin arttırılması sonucu atom çekirdeğinden koparılması prensibidir.prensibidir. Elektronik cihazların temel yapı taşlarında silisyum, germanyum,Elektronik cihazların temel yapı taşlarında silisyum, germanyum, ve galyum elementleri kullanılarak imal edilir. Bu maddelerve galyum elementleri kullanılarak imal edilir. Bu maddeler aralarında mikro veya nano boşluklar bırakılarak elektronların buaralarında mikro veya nano boşluklar bırakılarak elektronların bu elementler arasında kuantum sıçramaları yani elektronların orbitalelementler arasında kuantum sıçramaları yani elektronların orbital (yörünge) değiştirmesi sağlanarak mantıksal işlemler yaptırılır.(yörünge) değiştirmesi sağlanarak mantıksal işlemler yaptırılır. Bilgisayarın ve elektronik cihazların temel çalışma prensibi buBilgisayarın ve elektronik cihazların temel çalışma prensibi bu ilkeye dayanır.ilkeye dayanır. http://tr.wikipedia.org/wiki/Elektronik
  • 3. Mühendislik olarak elektronikMühendislik olarak elektronik Elektronik, elektrik akımını geçiren, iletken, yarıElektronik, elektrik akımını geçiren, iletken, yarı iletken, üstün iletken, direnç, kondansatör,iletken, üstün iletken, direnç, kondansatör, indüktans, vakum tüpleri ve nano ölçekli yapılarlaindüktans, vakum tüpleri ve nano ölçekli yapılarla imal edilen elemanların ve bu elemanların montajıylaimal edilen elemanların ve bu elemanların montajıyla meydana gelen cihazların geliştirilmesiyle ilgilenenmeydana gelen cihazların geliştirilmesiyle ilgilenen mühendislik dalıdır.mühendislik dalıdır. http://www.nuveforum.net/731-muhendislik-bilimleri-bolumu/31090-elektronik-nedir-elektronik-hakkinda/
  • 4. TarihçeTarihçe James Clerk Maxwell Michael Faraday Antonio Meucci Nikola Tesla John Bardeen, William Shockley ve Walter Brattain Jack KilbyGeoffrey Dummer Georg Simon Ohm Alessandro Volta André-Marie Ampère Luigi Galvani John von Neumann
  • 5. Elektronik devre elemanlarıElektronik devre elemanları Direnç Kondansatör Transistör Diyot Güç kaynağı Transformatör …
  • 7. Dijital elektronikDijital elektronik Mantıksal kapılarMantıksal kapılar http://www.schoolphysics.co.uk/age16-19/Electronics/Logic%20gates/text/Logic_gates/index.html
  • 9. Mikro işlemciler ve mikro denetleyicilerMikro işlemciler ve mikro denetleyiciler MikroişlemciMikroişlemci http://elektroteknoloji.com/blog/mikroislemci-ve-mikrodenetleyici-arasindaki-farklar/ Bir mikroişlemci görevini yerine getirebilmesi için mutlaka, verilerin saklanacağı bellek birimine, dış dünyadan veri alış-verişinin düzenli yapılmasını sağlayan giriş/çıkış birimine ihtiyaç duyar. Bunlar bir mikroişlemcili sistemde ayrı ayrı birimler (entegreler) şeklinde yerini alır. Örnek: Intel Core i7 MikrodenetleyiciMikrodenetleyici Mikrodenetleyicilerde tüm bu birimler (işlemci, bellek ve G/Ç, bunlara ADC ve DAC gibi sinyal dönüştürücü elemanlarda eklenebilmektedir) bir arada bulunmaktadır. Örnek: Atmel Atmega 2560
  • 12. ArduinoArduino Bir prototyping platform,Bir prototyping platform, Çeşitli modelleri var,Çeşitli modelleri var, Temelde Atmel marka mikrodenetleyiciler içeriyor,Temelde Atmel marka mikrodenetleyiciler içeriyor, Programlama dili olarak Processing ve Wiring’e dayanan kendi dili kullanılıyor,Programlama dili olarak Processing ve Wiring’e dayanan kendi dili kullanılıyor, Java ile yazılmış bir IDE’si var,Java ile yazılmış bir IDE’si var, Shield adı verilen eklentiler ile zenginleştirilebiliyor,Shield adı verilen eklentiler ile zenginleştirilebiliyor, Açık kaynaklı (Open Hardware),Açık kaynaklı (Open Hardware), Büyük topluluk desteğine sahip,Büyük topluluk desteğine sahip, Hemen her konuda kütüphaneler var,Hemen her konuda kütüphaneler var, Hemen her türlü eklenti ve shieldları Türkiye’de bulunuyor, Dealextreme’de hepsi varHemen her türlü eklenti ve shieldları Türkiye’de bulunuyor, Dealextreme’de hepsi var ama geç ulaşıyor,ama geç ulaşıyor, Tüm platformlarda destek var…Tüm platformlarda destek var…
  • 16. Android ve Arduino Mega ADKAndroid ve Arduino Mega ADK
  • 17. Android ve Arduino Mega ADKAndroid ve Arduino Mega ADK ADK: Android Acessory Development Kit’inADK: Android Acessory Development Kit’in kısaltmasıkısaltması Android Open Accessory support is included in Android 3.1 (API Level 12) and higher, and supported through an Add-On Library in Android 2.3.4 (API Level 10) and higher. Android 4.1 and higher has support for audio output over a USB connection or Bluetooth. Find out how to build audio docks and other plug-in audio output hardware for Android. http://source.android.com/tech/accessories/index.html
  • 19. Android ArduinoAndroid Arduino <uses-library android:name="com.android.future.usb.accessory"></uses-library> AndroidManifest.xmlAndroidManifest.xml private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (ACTION_USB_PERMISSION.equals(action)) { synchronized (this) { UsbAccessory accessory = UsbManager.getAccessory(intent); if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { openAccessory(accessory); } else { Log.d(TAG, "permission denied for accessory " + accessory); } mPermissionRequestPending = false; } } else if (UsbManager.ACTION_USB_ACCESSORY_DETACHED.equals(action)) { UsbAccessory accessory = UsbManager.getAccessory(intent); if (accessory != null && accessory.equals(mAccessory)) { closeAccessory(); } } } }; import com.android.future.usb.UsbAccessory; import com.android.future.usb.UsbManager;
  • 20. Android ArduinoAndroid Arduino @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUsbManager = UsbManager.getInstance(this); mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED); registerReceiver(mUsbReceiver, filter); if (getLastNonConfigurationInstance() != null) { mAccessory = (UsbAccessory) getLastNonConfigurationInstance(); openAccessory(mAccessory); } setContentView(R.layout.activity_main); buttonLED = (ToggleButton) findViewById(R.id.toggleButtonLED); } codecode
  • 21. Android ArduinoAndroid Arduino @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUsbManager = UsbManager.getInstance(this); mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED); registerReceiver(mUsbReceiver, filter); if (getLastNonConfigurationInstance() != null) { mAccessory = (UsbAccessory) getLastNonConfigurationInstance(); openAccessory(mAccessory); } setContentView(R.layout.activity_main); buttonLED = (ToggleButton) findViewById(R.id.toggleButtonLED); } codecode
  • 22. Android ArduinoAndroid Arduino @Override public void onResume() { super.onResume(); if (mInputStream != null && mOutputStream != null) { return; } UsbAccessory[] accessories = mUsbManager.getAccessoryList(); UsbAccessory accessory = (accessories == null ? null : accessories[0]); if (accessory != null) { if (mUsbManager.hasPermission(accessory)) { openAccessory(accessory); } else { synchronized (mUsbReceiver) { if (!mPermissionRequestPending) { mUsbManager.requestPermission(accessory,mPermissionIntent); mPermissionRequestPending = true; } } } } else { Log.d(TAG, "mAccessory is null"); } } codecode
  • 23. Android ArduinoAndroid Arduino private void openAccessory(UsbAccessory accessory) { mFileDescriptor = mUsbManager.openAccessory(accessory); if (mFileDescriptor != null) { mAccessory = accessory; FileDescriptor fd = mFileDescriptor.getFileDescriptor(); mInputStream = new FileInputStream(fd); mOutputStream = new FileOutputStream(fd); Log.d(TAG, "accessory opened"); } else { Log.d(TAG, "accessory open fail"); } } codecode
  • 24. Android ArduinoAndroid Arduino public void blinkLED(View v){ byte[] buffer = new byte[1]; if(buttonLED.isChecked()) buffer[0]=(byte)0; // button says on, light is off else buffer[0]=(byte)1; // button says off, light is on if (mOutputStream != null) { try { mOutputStream.write(buffer); } catch (IOException e) { Log.e(TAG, "write failed", e); } } } Java codeJava code private void closeAccessory() { try { if (mFileDescriptor != null) { mFileDescriptor.close(); } } catch (IOException e) { } finally { mFileDescriptor = null; mAccessory = null; } }
  • 25. Android ArduinoAndroid Arduino #include <Max3421e.h> #include <Usb.h> #include <AndroidAccessory.h> #define LED_PIN 13 AndroidAccessory acc("Manufacturer", "Model", "Description", "1.0", "http://yoursite.com", "0000000012345678"); void setup() { // set communiation speed Serial.begin(115200); pinMode(LED_PIN, OUTPUT); acc.powerOn(); } void loop() { byte msg[0]; if (acc.isConnected()) { int len = acc.read(msg, sizeof(msg), 1); // read data into msg variable if (len > 0) { if (msg[0] == 1) // compare received data digitalWrite(LED_PIN,HIGH); // turn on light else digitalWrite(LED_PIN,LOW); // turn off light } } else digitalWrite(LED_PIN , LOW); // turn off light } Arduino CodeArduino Code
  • 26. Arduino Android UygulamalarıArduino Android Uygulamaları Arduino CommanderArduino Commander ADK DemokitADK Demokit ADK 2012ADK 2012 ……..
  • 27. Android Yüklenebilen Açık PlatformlarAndroid Yüklenebilen Açık Platformlar Panda BoardPanda Board Raspberry PiRaspberry Pi ……