#1 Re: Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-08 20:59:36

2024-01-08_193659.jpg

check_sum_1 = (N^ID^CMD^data[0]^data[1]^...^data[N-8]) & 0xFE   -   (N XOR ID XOR CMD XOR data[0] XOR data[1] XOR ... XOR data[N-8])  И   0xFE

сheck_sum_2 = (~check_sum_1) & 0xFE  -  (~check_sum_1)  И   0xFE

Я правильно понял, все через логическое XOR и в конце, через И ?

#2 Re: Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-08 10:22:07

dimich пише:

А він точно з керуванням по послідовному протоколу?
На сайті виробника по назві DM0900 знаходиться два серво:
DM0900 10.5KG Digital Metal Gear Servo
Digital Metal Gear Servo DM0900
Обидва з PWM-керуванням. У маркетологів PWM також вважається "digital" smile
Може в описі товару тупо переплутали, написавши про послідовну шину. Таке буває.

PWM так же пробовал, результа 0

MG996R - работает норм по ШИМ
https://youtube.com/shorts/umBPXf9SeYQ


dimich пише:

Так, програма у вас видає Dynamixel Protocol 1.0.
Ще є Protocol 2.0. А на сторінці товару посилання на даташит для A1-16, де протокол схожий, але несумісний ні з Dynamixel 1.0, ні з 2.0. Кожен виробник модифікує протокол як хоче, аби було несумісно з продукцією конкурентів.

Протоколы все перепробовал, качал еще пару альтернативных программ

Так же, что нашел по примерам ардуино, все глухо.

dimich пише:

Теоретично, якщо зі сторони серво відкритий колектор з підтяжкою

Нет подтяжки.

На плате сервопривода, два резистора 1кОм припаяны вместе, отводы распаяны на разные входы микросхемы.

#3 Re: Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-08 00:57:43

dimich пише:

9.6 МГц і фʼюз CKDIV8

9.6 , делитель снят, тоесть на полной скорости

#4 Re: Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-08 00:41:09

dimich пише:

Не та версія протокола?

Родной бы документ от него, или хотя бы рабочий проект, там бы возможно разобрался бы по командам
Документ, что прилагается не от него, от похожего
https://www.pololu.com/file/0J1212/A1-16_datasheet_20151229.pdf



dimich пише:

// Attiny в ролі буфера з відкритим колектором - це сильно  smile

Готового решения сразу не нашел )

Хотя ранее были https://arduino.ua/ru/prod3963-ttlusb-adapter-dlya-ypravleniya-servoprivodom-sovmestima-s-arduino

Ну и на соседних есть, как оказалось https://electroradiogroup.com.ua/ua/p2008450927-adapter-ttlusb-dlya.html

#5 Re: Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-07 23:42:18

dimich пише:

Покажіть cхему підключення


ttl_ser.jpg

Прошивка переходника на Attiny13A

		.DSEG		; Сегмент ОЗУ
		.CSEG
		.org 0                 ;Задание нулевого адреса старта программы
		rjmp reset          ;Безусловный переход к метке reset
		.org 1
		reti ;Prer
		.org 2
		reti ;Pin Change Interrupt0
		.org 3
		reti ;timer0_ovf 
		.org 4
		reti ;EEPROM write complete
		.org 5
		reti ;Analog Comparator Interrupt
		.org 6
		reti ;timerA;Timer_Counter0A; Compare Match A
		.org 7
		reti ;Timer_Counter0B; Compare Match B
		.org 8
		reti ;Watchdog Timeout
		.org 9
		reti ;conversion;ADC Conversion Complete Handle 
reset:	

		wdr; Reset Watchdog Timer
		;ldi r16,24
		;out WDTCR, r16;
		;ldi r16,12 
		;out WDTCR, r16;
		LDI	ZL,Low(SRAM_START)	; Адрес начала ОЗУ в индекс
		LDI	ZH,High(SRAM_START)
		CLR	R16			; Очищаем R16
Flush:	ST 	Z+,R16			; Сохраняем 0 в ячейку памяти
		CPI	ZH,High(RAMEND+1)	; Достигли конца оперативки?
		BRNE	Flush			; Нет? Крутимся дальше!
		CPI	ZL,Low(RAMEND+1)	; А младший байт достиг конца?
		BRNE	Flush
		CLR	ZL			; Очищаем индекс
		CLR	ZH
		LDI	ZL, 30		; Адрес самого старшего регистра	
		CLR	ZH		; А тут у нас будет ноль
		DEC	ZL		; Уменьшая адрес
		ST	Z, ZH		; Записываем в регистр 0
		BRNE	PC-2		; Пока не перебрали все не успокоились		
		ldi r16, RAMEND ;Загрузка в регистр r16 адреса верхней границы ОЗУ
		out SPL, r16


		cbi DDRB, 0
		cbi PORTB, 0
		cbi DDRB, 1
		cbi PORTB, 1
		cbi DDRB, 2
		cbi PORTB, 2
		cbi DDRB, 3
		cbi PORTB, 3
		cbi DDRB, 4
		sbi PORTB, 4
		ldi r16,0

main:

sbic PINB,1 ;пропустить если бит в регистре очищен
rjmp t_in_test

		sbi DDRB, 0 ; установить
		cbi DDRB, 2 ;out очистить
		cbr r16, 1 ; очистить бит 0 в r16

rjmp main

t_in_test:
		sbrc r16, 0 ; Пропустить если бит 0 в r16 очищен
rjmp rxrid
		cbi DDRB, 0 ; очистить
		sbr r16, 1 ; Установить бит 0 в r16
		nop
		nop
		nop
		nop
rjmp main

rxrid:
sbic PINB,0 ;пропустить если бит в регистре очищен
rjmp rx_test

		sbi DDRB, 2 ; установить
		cbr r16, 2 ; очистить бит 1 в r16

rjmp main

rx_test:
		sbrc r16, 1 ; Пропустить если бит 1 в r16 очищен
rjmp main
		cbi DDRB, 2 ; очистить
		sbr r16, 2 ; Установить бит 1 в r16
		nop
		nop
		nop
		nop
rjmp main

Аналог схемы
2024-01-07_230008.jpg
https://arduino.ua/files/1_USB-TTL_sch.pdf

photo_2024-01-07_22-06-23.jpg
2024-01-07_222758.jpg
2024-01-07_222902.jpg



Режим сканера, на разных скоростях

2024-01-07_223501.jpg
2024-01-07_224156.jpg
2024-01-07_224305.jpg

#6 Re: Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-07 09:46:16

dIma5 пише:

https://www.youtube.com/watch?v=S0tb3jnfdw4&t=1s тут прекрасно все описано если непонятно и не заработает отпешитесь

На видео сервопривод управляется по ШИМ, а этот по TTL

#7 Апаратні питання » K-POWER Цифровой серво-привод DM0900 » 2024-01-06 16:14:52

AndDay
відповідей: 13

Приветствую.
Неделю не могу подружить сервопривод с компом.
Уже и ардуино пробовал, ни как.
Хотя на видео красиво работает
https://youtu.be/_syxCwIINN8?si=Rms5gVFGZDeGqiBT

Есть у кого готовое решение, или хоть наработки ?

Підвал форуму