embeded/arduino(genuino)2016. 4. 27. 09:08

아두이노 예제에 있는데 머하는 넘인지 찾아 봐야지




[링크 : https://www.arduino.cc/en/Reference/Firmata]

[링크 : https://github.com/firmata/protocol]

[링크 : http://www.firmata.org/wiki/Main_Page]

'embeded > arduino(genuino)' 카테고리의 다른 글

arduino nano 스펙(PWM)  (0) 2016.11.25
아두이노 프로세싱(언어)  (0) 2016.05.09
attiny2313 usb client  (0) 2016.04.19
arduino usb joystic / atmega32u4  (0) 2016.04.19
processing / arduino / mpu-6050  (0) 2016.04.14
Posted by 구차니
embeded/arduino(genuino)2016. 4. 19. 22:07

attiny 12MHz로 일반 gpio를 이용 저속 usb 통신하는 녀석..

int0 / int1 인가.. gpio로 pd2 / pd3 일려나..


[링크 : http://codeandlife.com/2012/01/22/avr-attiny-usb-tutorial-part-1/]

[링크 : http://codeandlife.com/2012/01/25/avr-attiny-usb-tutorial-part-2/]

[링크 : http://codeandlife.com/2012/01/29/avr-attiny-usb-tutorial-part-3/]

[링크 : http://codeandlife.com/2012/02/04/avr-attiny-usb-tutorial-part-4/]



USBtiny is a software implementation of the USB low-speed protocol for the Atmel ATtiny microcontrollers.

[링크 : http://dicks.home.xs4all.nl/avr/usbtiny/]


V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.




[링크 : https://www.obdev.at/products/vusb/index.html]

'embeded > arduino(genuino)' 카테고리의 다른 글

아두이노 프로세싱(언어)  (0) 2016.05.09
arduino firmata  (0) 2016.04.27
arduino usb joystic / atmega32u4  (0) 2016.04.19
processing / arduino / mpu-6050  (0) 2016.04.14
아두이노.. gpio로 pwm 신호 출력  (0) 2016.04.13
Posted by 구차니
embeded/arduino(genuino)2016. 4. 19. 21:59

아두이노로 조이스틱이나 키보드 만드는게 보여서 검색을 해보니

특정 버전의 아두이노에서만 되는 이유가

ATmega??U4 시리즈에는 USB 컨트롤러가 내장되어 있어서 였군 -_-


ATmega16U4/ATmega32U4

8-bit Microcontroller with 16/32K bytes of ISP Flash and USB Controller

[링크 : http://www.atmel.com/images/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf]


[링크 : http://www.instructables.com/id/Add-USB-Game-Controller-to-Arduino-LeonardoMicro/]

[링크 : https://github.com/MHeironimus/ArduinoJoystickLibrary]




'embeded > arduino(genuino)' 카테고리의 다른 글

arduino firmata  (0) 2016.04.27
attiny2313 usb client  (0) 2016.04.19
processing / arduino / mpu-6050  (0) 2016.04.14
아두이노.. gpio로 pwm 신호 출력  (0) 2016.04.13
아두이노 스테핑 모터..  (0) 2016.04.13
Posted by 구차니
embeded/arduino(genuino)2016. 4. 14. 17:07

음... euler angle 이란걸 발견해서 이미지로 검색하다 보니..

역시 세상은 넓고 찾아 쓰는것도 빡세구나..



[링크 : http://itempage3.auction.co.kr/DetailView.aspx?ItemNo=A850550620]


이미지에 보니.. FreeIMU 란게 보이는데.. 보드네?

[링크 : http://www.varesano.net/projects/hardware/FreeIMU]



[링크 : http://diyhacking.com/arduino-mpu-6050-imu-sensor-tutorial/]

[링크 : http://www.geekmomprojects.com/mpu-6050-dmp-data-from-i2cdevlib/]

[링크 : https://en.wikipedia.org/wiki/Gimbal_lock]

[링크 : https://github.com/jrowberg/i2cdevlib] 라이브러리

'embeded > arduino(genuino)' 카테고리의 다른 글

attiny2313 usb client  (0) 2016.04.19
arduino usb joystic / atmega32u4  (0) 2016.04.19
아두이노.. gpio로 pwm 신호 출력  (0) 2016.04.13
아두이노 스테핑 모터..  (0) 2016.04.13
아두이노 내장 온도 센서 테스트  (0) 2016.04.11
Posted by 구차니
embeded/arduino(genuino)2016. 4. 13. 15:42

그냥 정말 날로 먹는 코드

D3와 D6을 스피커로 연결해서

GPIO를 통해 해보니..

492.8Hz 로 duty 50% 정도의 PWM 파형이 나오는데

이걸로 음악을 어떻게 해볼까...




void setup() {
  // put your setup code here, to run once:
  pinMode(3, OUTPUT);
  pinMode(6, OUTPUT);
  digitalWrite(6, 0);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(3, 1);
  delay(1);
  digitalWrite(3, 0);
  delay(1);
}


'embeded > arduino(genuino)' 카테고리의 다른 글

arduino usb joystic / atmega32u4  (0) 2016.04.19
processing / arduino / mpu-6050  (0) 2016.04.14
아두이노 스테핑 모터..  (0) 2016.04.13
아두이노 내장 온도 센서 테스트  (0) 2016.04.11
아두이노 3.3V  (0) 2016.04.09
Posted by 구차니
embeded/arduino(genuino)2016. 4. 13. 09:39

와... 몰라도 쓸수 있을 것만 같은 기분?

어째... 달링턴 쓰는게 더 직관적인 기분이지?


[링크 : http://wiki.vctec.co.kr/opensource/arduino/steppermotor] L293D / 아두이노 스테핑 라이브러리

[링크 : http://www.ohm.co.kr/...&num1=999987&num2=00000&lock=N] UNL2003 달링턴 어레이


'embeded > arduino(genuino)' 카테고리의 다른 글

processing / arduino / mpu-6050  (0) 2016.04.14
아두이노.. gpio로 pwm 신호 출력  (0) 2016.04.13
아두이노 내장 온도 센서 테스트  (0) 2016.04.11
아두이노 3.3V  (0) 2016.04.09
아두이노 퓨즈비트 설정관련  (0) 2016.04.07
Posted by 구차니
embeded/arduino(genuino)2016. 4. 11. 18:33

믿을만 한건가...?


// Internal Temperature Sensor // Example sketch for ATmega328 types. // // April 2012, Arduino 1.0 void setup() {  Serial.begin(9600);  Serial.println(F("Internal Temperature Sensor")); } void loop() {  // Show the temperature in degrees Celcius.  Serial.println(GetTemp(),1);  delay(1000); } double GetTemp(void) {  unsigned int wADC;  double t;  // The internal temperature has to be used  // with the internal reference of 1.1V.  // Channel 8 can not be selected with  // the analogRead function yet.  // Set the internal reference and mux.  ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));  ADCSRA |= _BV(ADEN);  // enable the ADC  delay(20);            // wait for voltages to become stable.  ADCSRA |= _BV(ADSC);  // Start the ADC  // Detect end-of-conversion  while (bit_is_set(ADCSRA,ADSC));  // Reading register "ADCW" takes care of how to read ADCL and ADCH.  wADC = ADCW;  // The offset of 324.31 could be wrong. It is just an indication.  t = (wADC - 324.31 ) / 1.22;  // The returned temperature is in degrees Celcius.  return (t); }


실내온도 25도

손으로 대면 약간 따스함이 느껴지는걸 봐서는 37도~38도 정도 되지 않을까 싶은데...

19.4도는 손을 댄 시점..

20.2

20.2

20.2

21.1

20.2

20.2

20.2

21.1

20.2

21.1

20.2

20.2

19.4

19.4

18.6

19.4

19.4

20.2

19.4

20.2

21.1

20.2

20.2

20.2

20.2

20.2

20.2

21.1

20.2

21.1

20.2

21.1

20.2


그냥 레지스터 출력

349.0

349.0

349.0

348.0

348.0

348.0

348.0

348.0

349.0

349.0

348.0

349.0

349.0 


[링크 : http://playground.arduino.cc/Main/InternalTemperatureSensor]

2016/03/31 - [embeded/arduino(genuino)] - 아두이노 나노 내장 온도센서



아무튼.. 아래 계산식에 의해 349를 계산해보면

349 = (Vin * 1024) / 1.1

Vin = (349 * 1.1) / 1024

Vin = 0.37490234375 = 374mV 인가?



대충.. 10bit니까 1024.. rev가 1.1로 내장 전원을 쓰니

단순하게(?) 출력으로 나오는 값에서 10으로 나눠주면 되려나?

그런데.. k랑 Tos값은 제품 테스트의 일부로 EEPROM에 테스트 해서 저장해야 한다고?!?!


[링크 : http://www.atmel.com/images/...328p_datasheet_complete.pdf]



[링크 : https://www.arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf]


AREF는 0.0V로 연결되서.. 코드에서 내부 1.1V로 설정한 듯?


ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));

Internal 1.1V Voltage Reference with external capacitor at AREF pin



회로도에서 찾아 보니.. AVcc는 5V랑 묶여 있으니..

데이터시트에서 해당내용을 찾아 변경하면..


음.. 너무 빠듯하게 나오네..


ADMUX = (_BV(REFS0) | _BV(MUX3)); // (_BV(REFS1) | 


79.0

79.0

79.0

79.0

79.0

79.0

79.0 



+

offset도 .. gain도 많이 다르네?


static const float offset = 335.2; // change this by calibration result

static const float gain = 1.06154;

[링크 : http://www.avdweb.nl/arduino/hardware-interfacing/temperature-measurement.html]

Posted by 구차니
embeded/arduino(genuino)2016. 4. 9. 23:27

올... 이미 다 설정이 있네? ㄷㄷ

조금 번거로워도.. 거상인 GS-08A Atmega8 을 이걸 가지고

조금 수정해서

3.3V 용으로 퓨즈비트랑 설정한 다음 stk-500 계열로 avrisp 이용해서 구으면 될려나?




[링크 : https://learn.sparkfun.com/tutorials/using-the-arduino-pro-mini-33v]

[링크 : https://www.sparkfun.com/products/11114]

Posted by 구차니
embeded/arduino(genuino)2016. 4. 7. 10:25

기본값으로 설치되었다는 전제하에

아래 경로에 플래시 구울때 사용하는 설정들이 존재한다.


아두이노는 기본적으로 USB 파워나 외부 전원을 통해(7805) 5V를 공급하도록 되어있는데

7805를 들어내거나 결선을 바꾸거나 외부 Vcc에다가 3.3V를 넣어 주고

클럭을 다운시켜 작동하면 좀 간편할지도?


아니면 프로미니 3.3V 이런거라던가?


ATmega328 running at 8MHz with external resonator (0.5% tolerance)

Low-voltage board needs no interfacing circuitry to popular 3.3V devices and modules (GPS, accelerometers, sensors, etc)

[링크 : https://www.sparkfun.com/products/11114]


C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt

##############################################################


nano.name=Arduino Nano


nano.upload.tool=avrdude

nano.upload.protocol=arduino


nano.bootloader.tool=avrdude

nano.bootloader.unlock_bits=0x3F

nano.bootloader.lock_bits=0x0F


nano.build.f_cpu=16000000L

nano.build.board=AVR_NANO

nano.build.core=arduino

nano.build.variant=eightanaloginputs


## Arduino Nano w/ ATmega328

## -------------------------

nano.menu.cpu.atmega328=ATmega328


nano.menu.cpu.atmega328.upload.maximum_size=30720

nano.menu.cpu.atmega328.upload.maximum_data_size=2048

nano.menu.cpu.atmega328.upload.speed=57600


nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF

nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA

nano.menu.cpu.atmega328.bootloader.extended_fuses=0x05

nano.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex


nano.menu.cpu.atmega328.build.mcu=atmega328p


## Arduino Nano w/ ATmega168

## -------------------------

nano.menu.cpu.atmega168=ATmega168


nano.menu.cpu.atmega168.upload.maximum_size=14336

nano.menu.cpu.atmega168.upload.maximum_data_size=1024

nano.menu.cpu.atmega168.upload.speed=19200


nano.menu.cpu.atmega168.bootloader.low_fuses=0xff

nano.menu.cpu.atmega168.bootloader.high_fuses=0xdd

nano.menu.cpu.atmega168.bootloader.extended_fuses=0x00

nano.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex


nano.menu.cpu.atmega168.build.mcu=atmega168 


[링크 : https://forum.arduino.cc/index.php?topic=236128.0]



Arduino Duemilanove or Nano w/ ATmega328


Low Fuse 0xFF

High Fuse 0xDA

Extended Fuse 0x05 


[링크 : http://www.codingwithcody.com/2011/04/arduino-default-fuse-settings/]

[링크 : http://www.engbedded.com/fusecalc/] 퓨즈비트 계산기



+

어제 퇴근길에 본거 겨우 링크 찾았네..

[링크 : http://www.ba0sh1.com/tutorial-3-3v-hacking-for-arduino-nano/]

Posted by 구차니
embeded/arduino(genuino)2016. 4. 7. 09:58

툴에서 설정을 해놨다면 그걸 이용해서

스케치 - 프로그래머를 이용해 업로드

를 함으로서 stk500 호환 usbisp 등을 이용해 업로드가 가능해진다.





[링크 : https://www.arduino.cc/en/Hacking/Bootloader?from=Tutorial.Bootloader]


Tools->Boards->Your Board

Tools->Programmer->Your Programmer

Sketch->Upload Using a Programmer

[링크 : https://www.arduino.cc/en/Hacking/Programmer]

Posted by 구차니