Специальные цены   новые товары
Закрытая тема
Показано с 1 по 12 из 12

Электронные полезности для коптеровода

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Возникла у меня необходимость в паре электронных устройств, которые с ходу не нашел в магазинах по адекватной цене. Так как ...

  1. #1

    Регистрация
    05.10.2011
    Адрес
    Москва
    Возраст
    43
    Сообщений
    1,962
    Записей в дневнике
    9

    Электронные полезности для коптеровода

    Возникла у меня необходимость в паре электронных устройств, которые с ходу не нашел в магазинах по адекватной цене. Так как программировать не умею и в микроконтроллерах не разбираюсь, пришлось взять "звонок другу")).
    Итак, первое устройство которое было сделано по моей просьбе - RC Shuter для камер Sony nex 5-7. Выглядит это так: (пик с обратной стороны)



    Привожу схему и прошивку в том виде, в каком получил от друга (копирайты внутри):
    Код:
    ;**********************************************************************
    ;   This file is a basic code template for assembly code generation   *
    ;   on the PIC12F508. This file contains the basic code               *
    ;   building blocks to build upon.                                    *
    ;                                                                     *
    ;   Refer to the MPASM User's Guide for additional information on     *
    ;   features of the assembler (Document DS33014).                     *
    ;                                                                     *
    ;   Refer to the respective PIC data sheet for additional             *
    ;   information on the instruction set.                               *
    ;                                                                     *
    ;**********************************************************************
    ;                                                                     *
    ;    Filename:	    main.asm                                          *
    ;    Date:                                                            *
    ;    File Version:  1.00                                              *
    ;                                                                     *
    ;    Author:        Dmitry Filimonchuk                                *
    ;    Company:       dmitrystu@gmail.com                               *
    ;    License:       FREE FOR NON COMMERCIAL                           *
    ;                                                                     *
    ;**********************************************************************
    ;                                                                     *
    ;    Files Required: P12F509.INC                                      *
    ;                                                                     *
    ;**********************************************************************
    ;                                                                     *
    ;    Notes: NEX IR shutter                                            *
    ;                                                                     *
    ;**********************************************************************
    ;code can be recompiled for 12F508 or 10F200
    ;
    ;   +5V ---*-------------------------------+
    ;   GND --------------------+              |
    ;          |   +-------+    |   0.1uF      |
    ;          +-1-|o      |-8--*--||----------*
    ;            2-|       |-7-----|<|--[331]--*  COMMAND LED (optional)
    ;            3-|       |-6-----|<|--[331]--*  CARRIER LED (optional)
    ; INPUT -----4-|       |-5-----|<|--[101]--+  IR LED
    ;              +-------+
    ;
    
    	list      p=12F509            ; list directive to define processor
    	#include <p12F509.inc>        ; processor specific variable definitions
    ; '__CONFIG' directive is used to embed configuration word within .asm file.
    ; The lables following the directive are located in the respective .inc file. 
    ; See respective data sheet for additional information on configuration word.
    	__CONFIG   _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
    
    	IFDEF __12F509
    _nRBWU		EQU	0x80
    _nRBPU		EQU	0x40
    _TOEXTCLK	EQU	0x20
    _T0HITOLO	EQU	0x10
    _PSAWDT		EQU	0x08
    _PSA_256	EQU	0x07
    _PSA_128	EQU	0x06
    _PSA_064	EQU	0x05
    _PSA_032	EQU	0x04
    _PSA_016	EQU	0x03
    _PSA_008	EQU	0x02
    _PSA_004	EQU	0x01
    _PSA_002	EQU	0x00
    	ENDIF
    
    
    movlf	macro	byte,reg
    	movlw	byte
    	movwf	reg
    	endm
    
    set_ir_command	macro content
    	movlf	content & 0xFF, IR_BYTE0
    	movlf	content>>0x08 & 0xFF, IR_BYTE1
    	movlf	content>>0x10 & 0xFF,IR_BYTE2
    	endm
    
    
    
    
    #define	IR_OUT			GP2		;IR LED (active low)
    #define	IN_CH			GP3		;channel IN
    #define LED_DETECTED	GP0		;command LED (active low)
    #define	LED_CARRIER		GP1		;carrier LED (active low)
    
    
    #define	VAL_PULSEWIDTH	0x00 - (D'600' / D'32') ;0.6ms SONY IR pulse width
    #define	VAL_GAP			D'45000' / D'600'		;45ms  SONY IR packet period
    #define	VAL_PACKETS		D'4'					;4     SONY IR number of packets in telegram 
    #define	VAR_TRG_PWIDTH	D'1500' / D'64'			;1.5ms trigger pulse width
    #define	VAR_TRG_PCOUNT	D'3'					;3     number of pulses in series to activate trigger
    
    ;***** VARIABLE DEFINITIONS
    	cblock	0x08
    T_GAPCOUNTER			;IR telegtam period counter 
    T_PACKETS				;IR telegram packets counter
    T_BYTE0					;temporary shift register byte0
    T_BYTE1					;temporary shift register byte1
    T_BYTE2					;temporary shift register byte2
    IR_BYTE0				;IR command register byte0
    IR_BYTE1				;IR command register byte1
    IR_BYTE2				;IR command register byte2
    I_PULSEWIDTH			;input pulse width register (in 64us counts) for trigger
    I_PULSECOUNT			;input pulse count register for trigger
    	endc
    
    ;**********************************************************************
    	
    
    	ORG     0x1FF             ; processor reset vector
    
    ; Internal RC calibration value is placed at location 0x1FF by Microchip
    ; as a movlw k, where the k is a literal value.
    
    	ORG     0x000             ; coding begins here
    	goto	start
    
    
    
    proc_send_pulse								
    ;make 600us 38kHz carrier pulse for SONY IR
    	movlw	VAL_PULSEWIDTH
    	movwf	TMR0
    _psp_loop_10								
    	bcf		GPIO,IR_OUT			;0 - LED ON
    	goto	$+1
    	goto	$+1	
    	goto	$+1
    	bsf		GPIO,IR_OUT			;1 -LED OFF
    	goto	$+1						
    	goto	$+1
    	goto	$+1	
    	goto	$+1
    	goto	$+1
    	goto	$+1
    	goto	$+1
    	nop
    	btfsc	TMR0,7
    	goto	_psp_loop_10
    	decf	T_GAPCOUNTER,f
    	retlw	0
    
    proc_send_space
    ;make 600us space
    	movlw	VAL_PULSEWIDTH
    	movwf	TMR0
    _pss_loop:
    	btfsc	TMR0,7	
    	goto	_pss_loop
    	decf	T_GAPCOUNTER,f
    	retlw	0
    
    
    ;send telegram to IR
    ;data located in IR_BYTEX 1st TX bit is IR_BYTE2 MSB
    ;S means 2400us pulse 600us space. start pulse TX
    ;1 means 1200us pulse 600us space. logical 1 TX
    ;0 means 600us pulse 600us space. logical 0 TX
    ;last 1 in data means the stop bit and not transmitted
    ;for example B'10001100 10111100 00001000' transmitted as S110001100101111000000
    ;         MSB  IR_BYTE2 IR_BYTE1 IR_BYTE0  LSB
    proc_send_ir
    ;init packets counter
    	movlw	VAL_PACKETS
    	movwf	T_PACKETS	
    ;start to transmit packet
    _psi_start
    ;init gap counter
    	movlw	VAL_GAP
    	movwf	T_GAPCOUNTER
    ;set temporary register
    	movfw	IR_BYTE0
    	movwf	T_BYTE0
    	movfw	IR_BYTE1
    	movwf	T_BYTE1
    	movfw	IR_BYTE2
    	movwf	T_BYTE2
    ;TX start pulse (2.4ms pulse 0.6ms space)
    	call	proc_send_pulse
    	call	proc_send_pulse
    	call	proc_send_pulse
    	call	proc_send_pulse
    	call	proc_send_space
    ;start sending packet
    _psi_send_bit
    	call	proc_send_pulse
    	bcf		STATUS,C
    	rlf		T_BYTE0,f
    	rlf		T_BYTE1,f
    	rlf		T_BYTE2,f
    	btfsc	STATUS,C
    	call	proc_send_pulse
    	call	proc_send_space
    	movfw	T_BYTE0
    	iorwf	T_BYTE1,w
    	btfss	STATUS,Z
    	goto	_psi_send_bit
    	iorwf	T_BYTE2,w
    	xorlw	0x80
    	btfss	STATUS,Z
    	goto	_psi_send_bit
    ;TX complete
    ;start intergap
    _psi_send_gap
    	call	proc_send_space	
    	btfss	STATUS,Z
    	goto	_psi_send_gap
    ;send next packet
    	decfsz	T_PACKETS,f
    	goto	_psi_start
    	retlw	0
    
    
    
    start	
    	movwf   OSCCAL            ; update register with factory cal value 
    ;setup inputs
    	movlw	1<<IN_CH 
    	tris	GPIO
    main_init:	
    	movlw	0xFF
    	movwf	GPIO
    	clrf	I_PULSECOUNT
    main_loop
    ;setup MCU TMR 128us/tick @ 4MHz internal clock, disable Wake-Up on pin change
    	movlw	_PSA_128 | _nRBWU
    	option
    ;wait for pulse raise (logic 0 to 1 in IN_CH)
    	clrf	TMR0
    _pmp_waitzero
    	btfss	GPIO,IN_CH
    	goto	_pmp_waitone
    	movlw	0x01
    	addwf	TMR0,w
    	btfsc	STATUS,Z
    	goto	main_init			;timeout (32ms) go reinit
    	goto	_pmp_waitzero
    _pmp_waitone
    	btfsc	GPIO,IN_CH
    	goto	_pmp_start
    	movlw	0x01
    	addwf	TMR0,w
    	btfsc	STATUS,Z
    	goto	main_init			;timeout (32ms) go reinit
    	goto	_pmp_waitone
    ;start pulse measurement
    _pmp_start
    ;setup MCU TMR 64us/tick @ 4MHz internal clock, disable Wake-Up on pin change
    	movlw	_PSA_064 | _nRBWU
    	option
    	clrf	TMR0
    ;wait for pulse fall (logic 1 to 0 in IN_CH)
    _pmp_waitfall
    	btfss	GPIO,IN_CH
    	goto	_pmp_read
    	movlw	0x01
    	addwf	TMR0,w
    	btfsc	STATUS,Z
    	goto	main_init				;pulse width > 16ms. fail. go reinit
    	goto	_pmp_waitfall
    _pmp_read
    ;pulse length in TMR0 in 64us ticks
    	movfw	TMR0
    	movwf	I_PULSEWIDTH
    	bcf		GPIO,LED_CARRIER		;pulse detected. ON CARRIER LED
    	movlw	VAR_TRG_PWIDTH
    	subwf	I_PULSEWIDTH,w
    	btfsc	STATUS,C				;unlike a normal CPU, C set when borrow DID NOT occured
    	goto	_m_detected
    	clrf	I_PULSECOUNT
    	bsf		GPIO,LED_DETECTED		;trigger pulse not detecded. OFF DETECTED LED
    	goto	main_loop
    _m_detected
    	bcf		GPIO,LED_DETECTED		;trigger pulse detecded. ON DETECTED LED
    	incf	I_PULSECOUNT,f
    	movlw	VAR_TRG_PCOUNT
    	subwf	I_PULSECOUNT,w
    	btfss	STATUS,Z
    	goto	main_loop
    ;trigger catched (series of 3 pulse's detected)
    ;setup MCU TMR 32us/tick @ 4MHz internal clock, disable Wake-Up on pin change
    	movlw	_PSA_032 | _nRBWU
    	option
    	set_ir_command	B'101101001011100011111000'		;shutter for NEX
    ;	set_ir_command	B'100011001011110000001000'		;shutter for HANDYCAM
    	call	proc_send_ir
    	goto	main_loop
    
    	END                       ; directive 'end of program'
    Устройство мной опробовано, работает отлично. Но, как известно, бочки меда без ложки дегтя не бывает.) В данном случае учудили маркетологи сони. Дело в том, что режим срабатывания затвора выбирается среди других, не менее полезных режимов съемки. На пример таких как брекетинг, ночная съемка, непрерывная съемка и режимы с использованем таймера. В общем, либо с пульта и простой режим, либо интелектуальные режимы, но старая , добрая серва.)
    Продолжение следует...
    Последний раз редактировалось Gurdzhy; 01.02.2013 в 05:18.

  2.  
  3. #2

    Регистрация
    09.03.2010
    Адрес
    Киев - Мальта
    Возраст
    38
    Сообщений
    7,620
    Записей в дневнике
    5
    Георгий, а можно готовый ХЕКС попросить под PIC 10F202 ? А то у меня их завалялось, лежат без дела. Ну и схемку естественно

  4. #3

    Регистрация
    05.10.2011
    Адрес
    Москва
    Возраст
    43
    Сообщений
    1,962
    Записей в дневнике
    9
    Саш, схема в коде, в первых строках. Хекса у меня нет, но я попрошу - если осталась у друга - выложу.

  5. #4

    Регистрация
    10.10.2008
    Адрес
    Москва ЮВАО
    Возраст
    47
    Сообщений
    2,563
    наткнулся тут у немцев на пару тем:
    http://forum.mikrokopter.de/topic-24157.html
    http://forum.mikrokopter.de/topic-16565-1.html
    если коротко, то расширяем у Спектрумов количество каналов до ДВЕНАДЦАТИ.

    может кому будет полезно.

  6.  
  7. #5

    Регистрация
    07.06.2011
    Адрес
    Харьков
    Возраст
    53
    Сообщений
    492
    Записей в дневнике
    4
    Чтобы не забывать выключать передатчик - маленькая полезная штучка - http://forum.rcdesign.ru/blogs/90045/blog13027.html

  8. #6

    Регистрация
    05.10.2011
    Адрес
    Москва
    Возраст
    43
    Сообщений
    1,962
    Записей в дневнике
    9
    Второе устройство кторое мне было строго необходимо - RC комутатор между тремя камерами и двумя Video Tx. Зачем это нужно? В идеале хотелось иметь возможность комутировать видеовыход фотика, курсовой камеры и камеры, установленной в корме коптера. Так же, коммутируются питающие напряжения передатчиков, дабы не держать оба передатчика постоянно включенными. На плате разведены 2 шины питания. Так же, есть сквозной канал для звука. Для дальних полетов или полетов на пересеченной местности, хотелось иметь на борту два видео передатчика, с возможностью удаленного переключения между ними. В итоге, обрисовал техзадание нашему камраду alexeykozin и через непродолжительное время получил готовый девайс. Данный девайс описан на странице автора. Скриншоты с пульта управления - Futaba 10 CAG. Позже выложу скриншоты с пульта Futaba T8FG. Получилось так, что эта идея была озвучена и автору первого устройства (RC Shutter) и на свет появилась другая реальзация этого дивайса на микроконтроллере Пик. Но о ней позже.

  9. #7

    Регистрация
    11.10.2009
    Адрес
    г.Коломна (Моск.обл)
    Возраст
    53
    Сообщений
    5,990
    Цитата Сообщение от Gurdzhy Посмотреть сообщение
    Второе устройство кторое мне было строго необходимо
    Чтобы управлять двумя видео передатчиками использую два вот таких свитча http://www.hobbyking.com/hobbyking/s...d_Switch_.html работающих в реверсном включении в одном свободном канале пульта управления. (Если один включен, то второй выключен) Но, а двух (трех) канальных видеокомутаторов в инете полно. Ранее с ними была одна проблема. Все они нормально работали с питанием до 3.7-4 вольт. Пока это узнали….то до этого накупил много их, выискивая как бы рабочий вариант и даже свой лудить захотелось. Думалось, что бракованные попадаются . Питали их естественно согласно руководства от 5 вольт. Под них еще один канал. Сумарно задействуется два канала, но крайне удобно в управлении все этой горой коммутации

  10.  
  11. #8

    Регистрация
    07.08.2009
    Адрес
    Азов
    Возраст
    33
    Сообщений
    2,498
    Записей в дневнике
    4
    Подниму темку
    Озадачился шутером для Panasonic GH2 нашол готовые девайсы но цена не устраивает . Нашел схемку

    Проверил, работае ,тоесть запись стартует и останавливается при условии наличия резистора на 38-42К между первым и вторым контактами разъема 2.5мм и резким спадом сопротивления до 3К тоесть если шунтирывать первый резистор. Но вот как реализовать управление от приемника это вопрос. Понятно что надежней и проще на PIC но в програмирывании я не шарю. Если кто уже делал такое поделитесь опытом.

  12. #9

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    46
    Сообщений
    6,826
    Записей в дневнике
    25
    вместо выключателей оптроны
    а управлять ими можно ардуинкой с протейшим скетчем читающим управляющий импульс с радоприемника и включающий оптроны

  13. #10

    Регистрация
    07.08.2009
    Адрес
    Азов
    Возраст
    33
    Сообщений
    2,498
    Записей в дневнике
    4
    Ардуинка по габаритам не подходит.Надо чтонить типа атини.

  14. #11
    Давно не был
    Регистрация
    11.04.2012
    Адрес
    Воронеж
    Возраст
    35
    Сообщений
    2,539
    Записей в дневнике
    4
    Ардуина на 8ми ногой тиньке

  15. #12

    Регистрация
    07.08.2009
    Адрес
    Азов
    Возраст
    33
    Сообщений
    2,498
    Записей в дневнике
    4
    Недолго думая соорудил на плате от микросервы и оптопары



Закрытая тема

Похожие темы

  1. Заседание Высокого общества коптероводов
    от Covax в разделе Квадрокоптеры. Общие вопросы
    Ответов: 9783
    Последнее сообщение: Вчера, 23:14
  2. Продам Набор начинающего коптеровода
    от kedrikov в разделе Барахолка. Квадрокоптеры и другие многороторные системы
    Ответов: 6
    Последнее сообщение: 19.12.2012, 13:28
  3. Ответов: 24
    Последнее сообщение: 07.12.2012, 23:32
  4. Ошибки начинающего коптеровода или полетит/не полетит.
    от XrayT1 в разделе Квадрокоптеры. Общие вопросы
    Ответов: 5
    Последнее сообщение: 16.04.2012, 21:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения