Программирование Arduino+NXTI2CDEVICE
- Войдите на сайт для отправки комментариев
Вс, 03/02/2013 - 13:40
Вообщем я только начал осваиваться с arduino ,мне необходимо реализовать управление 2 сервами через serial ,serial часть у меня работает и все вроде бы хорошо но нужно подключить сервы от lego примерно так
http://robotclub.ab.ca/articles/33 ,вроде закидываю библиотеку вот сюда >> Desktop\arduino-1.0.2\libraries\тут папка NXTI2CDevice и в ней файлы cpp и .h , так как у меня версия 1,02 я во всех файлах папки во всех .h и .cpp заменил
#include "WProgram.h"
на:
#if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif
вот как то так но мне при компиляции примера пишет вот что
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp: In member function 'uint8_t* NXTI2CDevice::readRegisters(uint8_t, uint8_t, uint8_t*, uint8_t, bool)':
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp:84: error: 'class TwoWire' has no member named 'send'
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp:93: error: 'class TwoWire' has no member named 'receive'
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp: In member function 'bool NXTI2CDevice::writeRegisters(uint8_t, uint8_t, uint8_t*)':
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp:152: error: 'class TwoWire' has no member named 'send'
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp:158: error: 'class TwoWire' has no member named 'send'
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\/../Wire/utility/twi.h: In member function 'bool NXTI2CDevice::checkAddress()':
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\/../Wire/utility/twi.h:44: error: too few arguments to function 'uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t)'
E:\Users\Борис\Desktop\arduino-1.0.2\libraries\NXTI2CDevice\BaseNXTI2CDevice.cpp:235: error: at this point in file
мне как бы главное чтобы компилировались и работали эти примера а дальше я уже сам допилю их до нужного мне уровня
заранее спасибо!
PLEAAASE! HEEEELP! ME!
Замените содержимое файлов:
NXTI2CDevice.h
NXTI2CDevice.cpp
или скачайте уже отредактированную либу.
Спасибо большое сейчас проверю , отпишусь
P.S. Так и думал что вы ответите )
побегал по темам вы почти везде даете дельные советы
да спасибо все откомпилилось
и если не секрет... где вы берете свежие библиотеки?
Максим? дело в том , что программы все компилируются ,но двигатели не крутятся и скетч который считывает данные с них на com порт отсылает это:
Vendor:
Device:
Попробуйте в NXTI2CDevice.cpp изменить строку 235
на
сейчас ок!
хммм нету .cpp есть только .h
строчку нашел в cpp файле и заменил
но ничего ничего не изменилось
Так а как у вас все подключено? Дуина какая?
Arduino UNO Atmega328P-P'J
подключено так : +5V Arduino -->> VBUS
GND Arduino -->> GRND
ANALOG IN A5 Arduino -->> SCL
ANALOG IN A4 Arduino -->> SDA
mailru агентом пользуетесь? добавьте если что я заявку кинул там по быстрее =)
если что Borolis@mail.ru
В примерах есть I2CScanner, попробуйте, найдет ли он ваши девайсы.
залил
В общем, попробуйте с другой стороны зайти. Скачайте Arduino0023 и эту библиотеку в оригинале.
происходит все в точности тоже самое
я только вот немогу понять одно, в том видео у мужичка подключено 2 таких сервы и на одном моменте написано как подключено http://youtu.be/ixUF2UhLpk8?t=34s всетаки там же 2 сервы и какн он их тогда подключил? обе посадил на одни и те же контакты?
если есть возможность зайдите в агент?
происходит все в точности тоже самое
я только вот немогу понять одно, в том видео у мужичка подключено 2 таких сервы и на одном моменте написано как подключено http://youtu.be/ixUF2UhLpk8?t=34s всетаки там же 2 сервы и какн он их тогда подключил? обе посадил на одни и те же контакты?
хорошо сейчас все подключу обратно
я вот незнаю что делать , завтра пойду поменяю сервы на другие,может с этими что не так?
Вот еще какой момент был упущен - на линиях SDA и SCL должны стоять подтягивающие резисторы к +5V по 4,7кОм.
если к +5V то как я понимаю можно активировать Внутреннй подтягивающий резистор.
В микроконтроллерах ATmega168 и ATmega328 есть внутренние подтяжки. Они имеют номинал 20Ком и включаются программно. Нужно иметь в виду что внутренняя подтяжка "Прижимает" пин только к +5в ?
Или это возможно только для цифровых пинов?
Сейчас притянул SDA и SCL к +5в но все по прежнему
Сопротивление подтяжки около 60кОм, что примерно в 12 раз больше нужного, попробуйте поставить резисторы на 4,7кОм и посмотреть через I2CScanner.
Подтянул резисторами 4,67 кОм и ничего не изменилось
Еще раз перепроверьте правильность подключения и прозвоните линии, выложите фото.
И попробуйте вот этот сканер:
Вопрос до сих пор не решен, с заведомо рабочими серво-двигателями тоже не работает,проблема либо в коде либо в подключении