Lecture 9 Programming Beans Topics Bean Android SDK
Lecture 9: Programming Beans Topics: Bean Android SDK Date: Mar 29, 2016
References (study these) • https: //punchthrough. com/bean/guides/features/accelerometer/ • https: //github. com/Punch. Through/bean-sdk-android • https: //github. com/nirjon/Beanocular
We will use a ‘Bean’ To get a Bean for free: https: //punchthrough. com/bean/guides/everything-else/free-bean/
Installation/Setup • Coding: • Install Arduino + Bean IDE Patch (for laptop) • Install Droid. Edit App (coding on the phone!) • Loading/Running Code on Bean: • Install Bean. Loader App (Phone or Laptop) https: //punchthrough. com/bean/guides/everything-else/downloads/
Coding and Loading: Way #1 Coding + Wireless loading Arduino studio + Bean patch + Beanloader (laptop)
Coding and Loading: Way #2 File Copy Arduino studio + Bean Patch Wireless Loading Android Bean. Loader App
Coding and Loading: Way #3 File Select Droid. Edit App Wireless Loading Android Bean. Loader App
Let’s see Bean. Loader in action
Programming: Bean + Android BLE Write code for Arduino Write code for Android (need new lib)
Code for Arduino void setup() { Serial. begin(57600); } void loop() { Acceleration. Reading reading = Bean. get. Acceleration(); char x = abs(reading. x. Axis) / 2; char y = abs(reading. y. Axis) / 2; char z = abs(reading. z. Axis) / 2; Write code: Read Acceleration Send over Serial Bean. set. Led(x, y, z); } Serial. println(x); //Serial. println(y); //Serial. println(z);
Code for Android • Setup Android Project: • /app/build. grade (dependencies) compile 'com. punchthrough. bean. sdk: 1. 0. 1' • /app/build. grade (default. Config) min. Sdk. Version 18 target. Sdk. Version 22 • Android. Manifest. xml Permissions <uses-permission android: name="android. permission. BLUETOOTH"/> <uses-permission android: name="android. permission. BLUETOOTH_ADMIN"/> <uses-permission android: name="android. permission. ACCESS_FINE_LOCATION" /> https: //github. com/Punch. Through/bean-sdk-android
Code for Android • Bean Discovery Listener: Bean. Manager. get. Instance(). start. Discovery(bdl); Bean. Discovery. Listener bdl = new Bean. Discovery. Listener() { @Override public void on. Bean. Discovered(Bean bean, int rssi) { Log. v("NIRJON", "" + bean. get. Device() + ", " + rssi); b = bean; // Bean b was declared in Activity. } @Override public void on. Discovery. Complete() { } };
Code for Android • Bean Listener: b. connect(get. Base. Context(), blsnr); Bean. Listener blsnr = new Bean. Listener() { @Override public void on. Connected() { Log. v("NIRJON", "Bean is connected!!!"); } //several other auto generated functions }
Code for Android • Bean Reading Acceleration: b. read. Acceleration(new Callback<Acceleration>() { @Override public void on. Result(Acceleration result) { Log. v("NIRJON", "" + result. x() + ", " + result. y() + ", " + result. z()); } });
DIY and Remarks • 1 Bean per group • Install Bean. Loader App and RENAME bean • Test today’s Android code with your Bean • Handle the Bean with care • Do not keep the battery ON • Do not lose the Bean, battery, plastic, or package.
- Slides: 15