Show Posts
|
|
Pages: 1 ... 9 10 [11]
|
|
152
|
Using Arduino / Project Guidance / Re: Sailing Box Timer V1.0
|
on: January 31, 2011, 06:25:46 am
|
|
Your code at first glance seems fine, the amplifier seems to be good, im not sure what input voltages and such it needs, you may need to investigate that, and the regulator and battery seem to be good. I am not understanding the issue with the sketch not saving, are you uploading it to the correct port? Please elaborate on the steps you make.
|
|
|
|
|
153
|
Using Arduino / Project Guidance / Re: Help to choice a right board
|
on: January 31, 2011, 06:15:51 am
|
A few thoughts, I'll start with the bluetooth. Bluetooth is not as easy as it seems, especially if you have little to no experience with electronics. If you use a board like this: http://iteadstudio.com/store/index.php?main_page=product_info&cPath=18&products_id=179 or similar, you will need to have use a serial connection to communicate with it. that is digital pins 0 and 1 spoken for there. You will, if, as you said, need two bluetooth units, you will use pins 2 and 3 for the second unit. You will then need an LCD, I would suggest a simple Serially accessible one, http://www.sparkfun.com/products/9393, that takes another two pins. Then you will need to write a buttload of code and somehow use two lots of standard digital pins as software serial ports, not an easy task, but doable. You may then run into issues where the Arduino just isn't fast enough to run three serial streams at once, but I don't know how that works as i have never tried. If you are serious about this project, then please, by all means, do it, I, for one, want to know if its possible.
|
|
|
|
|
155
|
Using Arduino / Project Guidance / Re: New to Arduino, but not electronics. Therefore, which board?
|
on: January 31, 2011, 05:51:37 am
|
|
The mega has been out for nearly as long as the standard format Arduinos (Diecemielia, Uno). It is more expensive, larger and not as easy to use due to sheer size. It is faster, more capable and uses more power too, but these trade offs are what make less people want it for their projects. The main Arduino crowd are happy to make smaller projects and just make do with the cheaper one, and this is why there are more options for the smaller ones. It is all about market share and popularity. Therefore I do not think that there will be a similar following to the mega as there has been with the standard ones. The real question is "What do you want to make with the board?" This question is the important one, if you want to make something complex, then chances are you will need more than just standard shields and will want to make your own. If you are comfortable coding, maybe you should get a Uno, and challenge yourself with making hardware that, when coupled with clever code, can make what seems limited by physical limitations become much more flexible and functional. Things like using Two Wire serial connections to address devices, make inputs attach to shift registers etc. Other things you may want to try, make a shield that converts a mega into a two shield Uno carrier. The options are endless.
|
|
|
|
|
157
|
Forum 2005-2010 (read only) / Syntax & Programs / BlinkM Color from analog inputs.
|
on: January 22, 2011, 01:20:17 am
|
|
Hi, I have an interesting issue here, I have a touchscreen, from which I can get two values, one X position, one Y position. I wish to use these two values to manipulate a BlinkM I2C RGB LED to make it produce some colours. The colours are (int rgb hex color values):
Red (0xFF,0x00,0x00) Purple (0x66,0x33,0xFF) Yellow (0xFF,0xFF,0x00) Blue (0x00,0x00,0xFF) White (0xFF,0xFF,0xFF)
I wish to have each of the first colors acutated to their full values at the four corners of the pad, and as you move your finger between corners, I wish to morph the colors in the space between the corners, possibly using white as the vale of having your finger at the dead center of the screen.
I believe I will need to design an algorithim or three to use the two input values and to produce each channel of color, which I will send to the I2C bus. I am perfectly comfortable using the I2C setup, I just need to work out how to get to work on the algorithim. Can anyone point me in the right direction?
|
|
|
|
|
160
|
Forum 2005-2010 (read only) / Development / Re: Help- using an arduino to make a midi controller
|
on: January 23, 2011, 09:24:54 am
|
OK, I am building one of these devices, I designed and coded 90% of it before looking at this thread. ill share my code here and see what you think so far. I am having trouble with the code for the BlinkM, but thats in another thread so ill skip it. //Touchpad #define TouchX 0 // X axis #define TouchY 1 // Y Axis //Rotary Encoder #define RotorA 3 //Interrupt pin 1 #define RotorB 6 //Digital IO 6 //Hold button #define HoldButton 2 //Interrupt 0 //Switches #define S1 4 //GP button 1 #define S2 5 //GP Button 2 #define debounce 10 //Debounce value //Led #define LED 13 // LED Pin
//Touchpad Variables int touchX = 0; int touchY = 0;
//Hold Flag volatile int holdflag = LOW; //Hold Flag
//Rotary encoder int currVal = 1; //Value of rotation
void setup() { //Serial Setup for output of MIDI Serial.begin(31250);//midi=31250 baud pinMode(LED, OUTPUT); attachInterrupt(0, hold, HIGH);//Hold Button interrupt pin attachInterrupt(1, rotate, HIGH);//Rotary Encoder interrupt pin //Blinkm I2C setup Wire.begin(); // set up I2C on 4 and 5 analog Wire.beginTransmission(0x09);// join I2C, talk to BlinkM 0x09 Wire.send('c'); // 'c' == fade to color Wire.send(0xff); // value for red channel Wire.send(0xff); // value for blue channel Wire.send(0xff); // value for green channel Wire.endTransmission(); // leave I2C bus }
void loop() { if (touched()) { midiCC(0xB0,92,127); //Touchpad down command midiX = map(touchX,0,1016,0,127); // maps the value range of the axis to midi 0->127 midiCC(0xB0, 12, midix); // sends midi control change for touch pad X axis
midiy = map(touchy,0,1016,0,127); // maps the value range of the axis to midi 0->127 midiCC(0xB0, 13, midiy); // sends midi control change for touch pad y axis } else { if(holdflag) { digitalWrite(LED, HIGH); } else { midiCC(0xB0,92,0) //Touchpad off digitalWrite(LED, LOW); } }
// return TRUE if touched, and coords in touchX and touchY boolean touched() { boolean touch = false;
// wait a bit, then read from Top delay(10); touchX = analogRead(TouchchX);
// wait a bit, then read from Right delay(10); touchY = analogRead(TouchchY);
// Only if coords are below 1000 and above 0 //TODO set up calibration for not touching. if(0 < touchX < 1000 and 0 < touchY < 1000) touch = true;
return touch; }
//Toggles hold on interrupt 0 goes high void hold() { delay(debounce) //Wait a bit if(digitalRead(HoldButton) == HIGH) //Check if its still toggled. { holdflag = !holdflag; //Set flag } } //Interrupt called by rotary encoder interrupt void rotate() {
if(digitalRead(RotorB) == HIGH) //Interrupt is called, means RotorA has changed, direction can be found by lookign at RotorB currVal++; //If High, ++ if(digitalRead(RotorB) == LOW) currVal--; //If low, -- //sanitise output and wrap to 127 programs. if(currVal > 127) currVal = currVal - 127; if(currVal < 0) currVal = currVal + 127; midiCC(0xB0,0xC0,currVal); //0xC0 is the Program change cc so send midi command.
//Send MIDI command void midiCC(char command, char value1, char value2){ Serial.print(command, BYTE); Serial.print(value1, BYTE); Serial.print(value2, BYTE); }
Ideas and comments please.
|
|
|
|
|
161
|
Forum 2005-2010 (read only) / Exhibition / Re: Arduino-Controlled RC Transmitter
|
on: April 06, 2010, 02:50:03 am
|
|
Hi all, i know this is an old thread, but its still relevant. I saw this today and ive just ripped out the transmitter board out of a HobbyKing HK-T6A and attempted to interface it with an arduino. it has 4 interfae pins, VCC_+5v , GND, SW1 and PPM. interfacing is simple using the code mentioned previously, connect PPM pin to pin 10 on arduino, connect power and gnd up to +5v and gnd respectively and leave SW1 alone, its essentially just used to bind the transmitter when grounded. So far it looks promising, but i have yet to connect it to a proper serial setup so i can control it using my PC.
|
|
|
|
|