Всем добрый день. Такой вопрос - совместимы ли эти две платы Arduino Mega 2560 XBee Shield Я имею в веду возможность установить xbee поверх mega. Спасибо за внимание.
Arduino Mega совместима практически со всеми существующими платами расширения Arduino Shields (включая популярную Arduino Xbee), кроме текущей ревизии Arduino Ethernet.
благодарю вас за ответ) Тогда у меня ещё один вопрос - после установки модуля Xbee на mega она отказывается прошиваться. С ч ем это может быть связано ?
Это связано с тем, что XBee Shield использует одни и те же выводы контроллера, что и USB. Если есть необходимость прошить плату, XBee надо снять, потом поставить обратно. Для конфигурации модуля XBee с помощью AT-команд, потребуется подключить его к компьютеру, через COM порт. На платах с съёмным процессором это можно сделать просто вынув процессор из панельки. Есть более простой способ, перевести выводы процессора в режим входа, этот способ выручает когда процессор запаян, как в случае с Мегой. void setup() { pinMode(0, INPUT); pinMode(1, INPUT); } void loop() { }
Спасибо, долго бы ещё выяснял, почему она не пошивается. Проблема, кстати, наблюдается и на Mege+Mega IO Кстати, в описании Wireless Shield SD(и в каком-то руководстве, от Джереми кажется) упонимается джампер переключения режимов работа с Arduino/прошивка модуля XBee. Он не позволяет прошивать Ардуину, не снимая модуль XB?
AFAIK, нет, не позволяет: модуль всё равно будет отвечать всякими нелепостями на serial-команды, предназначенные для прошивки МК на Arduino и тем самым портить канал.
Вот здесь youtube.com/watch?v=YXFGt8Gyza0#t=7m2s говорит, мол, можно перекинуть джамперы и шить. Но, во первых, на сайте таки положения "работает XB" и "прошиваем XB(с оговоркой " If the microcontroller is left in the Arduino board, it will be able to talk to the computer normally via USB, but neither the computer nor the microcontroller will be able to talk to the Xbee module.")". А во-вторых, XBee shield уже не производится, а на Wireless четко либо работает XB c контроллером, либо прибиваем контроллер и програмируем XB, либо снимаем всё лишнее и програмируем контроллер.
Вообще, на Меге же есть ещё три сериал порта. Вопрос только с уровнями сигнала/питания(не проблема, схема в докуметации к тому же IO щиту есть, питание вообще готовое) и с выходами 12 и 15. 15 можно в разъем XBee на щите впихнуть, он лампочкой мигает, а вот с 12 не понял. Судя по схеме, он подключен к RESET'у самой Ардуины? Его тогда тоже можно просто в разъем XBee кинуть. Ну и ножки у XBee узкие-короткие, нужны разъемы под 2мм. Схема щита, если станет интересно, в pdf-ке.
Да, такая же фигня, не прошивается XBee S1 (и S2) на шилде на Меге (только на отдельном USB адаптере). Программа XCTU Version: 6.3.0 на отдельном USB адаптере обе XBee прошивает на ура (и координатор, и конечный) Это говорит о том, что ничего не заработает? а можно не уродовать шилды отрезая ноги? п.с. вот фотки девайса (бутерброд, XBee - 4 я сверху, итак: Mega 2560, Arduino Motor Shield DFRobot (L293), DFRobot IO Expansion Shield for Arduino V7.1, XBee S1. п.п.с. отдельно обе XBee мигают, но данные не передаются. (библиотеками не пользуюсь, использую только Serial) С уважением, Владимир.
текст стандартный: Передатчик (джойстик к ардуино) int JoyStick_X = 0; //x int JoyStick_Y = 1; //y int JoyStick_Z = 3; //key void setup() { Serial.begin(9600); //скорость последовательного порта в бодах } void loop() { int x,y,z; x=analogRead(JoyStick_X); if(x>600) Serial.print(1, DEC); if(x<400) Serial.print(3, DEC); y=analogRead(JoyStick_Y); if(y>600) Serial.print(4, DEC); if(y<400) Serial.print(2, DEC); z=digitalRead(JoyStick_Z); if(z==0) Serial.print(0, DEC); delay(100); } Приемник: int EN1 = 6;//частота вращения мотора 1 int EN2 = 5;//частота вращения мотора 2 int IN1 = 7;//направление вращения мотора 1 int IN2 = 4;//направление вращения мотора 2 int val; void setup() { Serial.begin(9600); for(int i=4;i<=7;i++) pinMode(i, OUTPUT); //моторы } void loop() { delay(300); if(Serial.available()) { val = Serial.read(); switch(val) { case 1: //налево Motor1(100,true); Motor2(100,true); break; case 3: //направо Motor1(100,false); Motor2(100,false); break; case 2: //назад Motor1(100,false); Motor2(100,true); break; case 4: //вперед Motor1(100,true); Motor2(100,false); break; case 0: //stop Motor1(0,false); Motor2(0,false); break; } } }