The Aliens Legacy http://forum.alienslegacy.com/ |
|
A new approach on the smart gunner headset http://forum.alienslegacy.com/viewtopic.php?f=3&t=18574 |
Page 1 of 1 |
Author: | knoxvilles_joker [ Sat Dec 21, 2019 9:22 pm ] |
Post subject: | A new approach on the smart gunner headset |
I will still look at the more expensive model setup as it has more broadcast quality options, but probably for the helmet camera. For the headset display: https://www.aliexpress.com/item/7938743 ... 4c4d3Nrnju 1.5 -inch LCD screen video driver board 1.5 -inch LCD driver module 1.5 -inch LCD screen+AV Driver board Module main parameters Model number: ZT015GS01 Video formats: automatic switching double system NTSC/PAL Screen size: 1.5 inch LCD models: 990000601 - V0.1 Than 3 PuBing screen scale: 4 LCD screen size: 37.1 (W) x 32.7 (H) x 2.6 mm (D) Display area: 29.79 (H) x 22.32 mm (V) Resolution: 480 (W) x 240 (H) Distance: 0.0625 (W) x 0.0938 mm (H) The input voltage: DC 3 v to 15 v Power consumption: 0.1 W or less Yellow RCA interface: video input Red: lead the positive input power supply Black: lead to Note: Please connected ACC to 9-12V. Package content: 1. 1.5-inch driver board 2. 1.5 inch 480*240 LTPS Lcd Panel TD015THEB2 3. AV cable |
Author: | knoxvilles_joker [ Sat Dec 21, 2019 9:53 pm ] |
Post subject: | Re: A new approach on the smart gunner headset |
This is an Arduino based shield overlay: http://www.tinyosshop.com/arduino-osd-shield This is a MAX7456 OSD(On Screen Display) shield for Arduino. The user can easily interrupt and overlay text and/or graphics onto a video signal (PAL or NTSC). It's just about “plug-and-play” with an Arduino board. Plug this shield on Arduino main board, uploading test sketch. Plug in your video signal to “Video In”, plug your TV into “Video Out”. It will works. Features: Current consumption 100mA, worst case 5V SPI interface |
Author: | knoxvilles_joker [ Sat Dec 21, 2019 11:49 pm ] |
Post subject: | Re: A new approach on the smart gunner headset |
Attachment: Looks like the following things are displayed on the HUD: weapon temp ammo level lat, long cardinal direction in degrees |
Author: | smrtazzsmrtgnnr [ Tue Dec 24, 2019 10:08 am ] |
Post subject: | |
Remember to focus, my apprentice. ![]() Psst... you're gonna need a lens. |
Author: | knoxvilles_joker [ Tue Dec 24, 2019 8:27 pm ] |
Post subject: | Re: A new approach on the smart gunner headset |
Cheaper can be quicker. Let me get the parts in first. I hope to have a half done smart gunner by the time far point con hits. I hope to have the smart gunner headset done by the time fanboy hits. The main concern is getting the movable monocle situation sorted. |
Author: | seven [ Fri Dec 27, 2019 11:11 pm ] |
Post subject: | |
was thinking about this thread and that tiny screen you were looking at. You know when you look through binnoculars backward and it makes things smaller? that type of lense in front of a screen could probably allow your eye to focus on it better and give it a fish eye look. |
Author: | knoxvilles_joker [ Mon Dec 30, 2019 12:25 pm ] |
Post subject: | Re: A new approach on the smart gunner headset |
I was doing some product research. Apparently there are not a whole lot of smart glasses manufacturers out there and HUD options for helmets is just coming out as well. The military has some options for their fighter pilots but that has been out there for a while. https://newatlas.com/army-heads-up-disp ... tar/49726/ https://www.quora.com/Why-cant-won’t-the-military-give-soldier’s-helmets-with-a-heads-up-display https://newatlas.com/inteliscope-iphone ... ght/27644/ https://www.rideapart.com/articles/2526 ... nd-camera/ https://www.indiegogo.com/projects/hudl ... m=referral http://home.bt.com/tech-gadgets/tech-ne ... 3877420093 https://www.slashgear.com/vuzix-to-intr ... -08207202/ https://www.bikebandit.com/blog/the-fut ... rt-helmets https://www.vuzix.com/products/m-series https://www.vuzix.com/products/blade-smart-glasses |
Author: | knoxvilles_joker [ Sun Feb 02, 2020 12:43 pm ] |
Post subject: | Re: A new approach on the smart gunner headset |
Got the OSD shield working. It displays temp and cardinal direction data. I have an RTC and GPS module on the way. GPS is going to be not so good as area here has severely bad GNSS reception, and I could not find an eLORAN adapter that I could plug into an Arduino I will need to see what options I can do on the cheap for the lens to aid in focusing with near eye positioning... Code: /* VideoTimeInserter.ino Demonstrates a very basic on screen time display.
This example code is in the public domain. Requires Arduino 1.0 or later. History : 1.0 ~ Creation of MAX7456Demo from MAX7456Demo 0.4 2013.01.31 - F. Robert Honeyman <www.coldcoredesign.com> 1.1 ~ for OSD Shield We check the system of video in,and set the sytem of video out same with it. (If the video in system is the PAL,the 1.0 verison will not work well, so we add the checking and setting functions) 2015.02.02 - HuangChao <www.tinysine.com> */ /* This driver uses the Adafruit unified sensor library (Adafruit_Sensor), which provides a common 'type' for sensor data and some helper functions. To use this driver you will also need to download the Adafruit_Sensor library and include it in your libraries folder. You should also assign a unique ID to this sensor for use with the Adafruit Sensor API so that you can identify this particular sensor in any data logs, etc. To assign a unique ID, simply provide an appropriate value in the constructor below (12345 is used by default in this example). Connections: Connect SCL to analog 5, SDA to analog 4, Connect VDD to 3.3-5V DC, Connect GROUND to common ground History: 2015/MAR/03 - First release (KTOWN)*/ /* Set the delay between fresh samples */ // Included Libraries ////////////////////////////////////////////////////////// #include <SPI.h> #include <MAX7456.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BNO055.h> #include <utility/imumaths.h> const byte osdChipSelect = 10; const byte masterOutSlaveIn = MOSI; const byte masterInSlaveOut = MISO; const byte slaveClock = SCK; const byte osdReset = 0; uint16_t BNO055_SAMPLERATE_DELAY_MS = 100; Adafruit_BNO055 bno = Adafruit_BNO055(55, 0x28); MAX7456 OSD( osdChipSelect ); void setup() { unsigned char system_video_in=NULL; SPI.begin(); SPI.setClockDivider( SPI_CLOCK_DIV2 ); OSD.begin(); OSD.setSwitchingTime( 5 ); system_video_in=OSD.videoSystem(); OSD.setDefaultSystem(MAX7456_NTSC) ;OSD.display(); Serial.begin(115200); Serial.println("Orientation Sensor Test"); Serial.println(""); bno.begin(); delay(1000); } // setup() void loop() { int8_t boardTemp = bno.getTemp(); //Serial.print(F("temperature: ")); Serial.println(boardTemp); delay(BNO055_SAMPLERATE_DELAY_MS); sensors_event_t event; bno.getEvent(&event); char date[] = "2020-01-01"; int year = (date[0] - '0') * 1000 + (date[1] - '0') * 100 + (date[2] - '0') * 10 + (date[3] - '0'); byte leap = isLeapYear(year); byte month = (date[5] - '0') * 10 + (date[6] - '0'); byte day = (date[8] - '0') * 10 + (date[9] - '0'); char daysPerMonth[2][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; bool toggle = false; while (true) { while (OSD.notInVSync()) { if (date[9] > '9') { date[9] = '0'; date[8]++; } if (day > daysPerMonth[leap][month - 1]) { date[9] = '1'; date[8] = '0'; day = 1; date[6]++; month++; } if (date[6] > '9') { date[6] = '0'; date[5]++; } if (date[5] >= '1' && date[6] > '2') { date[6] = '1'; date[5] = '0'; month = 1; date[3]++; year++; leap = isLeapYear(year); } if (date[3] > '9') { date[3] = '0'; date[2]++; } if (date[2] > '9') { date[2] = '0'; date[1]++; } if (date[1] > '9') { date[1] = '0'; date[0]++; } if (date[0] > '9') { date[0] = '0'; } // Add aditional code here. bno.getTemp(); bno.getEvent(&event); } OSD.setCursor( 0, 0 ); OSD.print(event.orientation.x, 3); OSD.setCursor( 8,0); OSD.print("Degrees"); OSD.setCursor( 17,0); OSD.print(boardTemp); OSD.setCursor( 19,0); OSD.print("*C "); OSD.setCursor( 0, -1 ); OSD.print( date ); OSD.setCursor( 12, -1); OSD.print( "YouHaveNone" ); while (!OSD.notInVSync()) {} // Add aditional code here. } } byte isLeapYear( int year ) { if (year % 400 == 0) return 1; else if (year % 100 == 0) return 0; else if (year % 4 == 0) return 1; return 0; } //end isLeapYear() |
Author: | knoxvilles_joker [ Mon Mar 02, 2020 12:15 am ] |
Post subject: | Re: A new approach on the smart gunner headset |
The overlay. Waiting on the gps module Attachment:
|
Author: | knoxvilles_joker [ Sat Mar 07, 2020 12:28 am ] |
Post subject: | Re: A new approach on the smart gunner headset |
A note on the diopter. Anything above +3.5 you will need to order from an optometrist. Most offices keep +10 units in stock so bear that in mind. If you see a place that sells online most likely they only sell to eye doctors. |
Author: | knoxvilles_joker [ Sun Mar 22, 2020 8:59 am ] |
Post subject: | Re: A new approach on the smart gunner headset |
OK, I ended up having to edit the maxim font and replace lowercase a-f to the borders. Once I did that and updated things I have a nice looking border and a facsimile targeting reticle box. The osd.print command set only allows for standard keyboard characters to be used. The spi writereg command methodology I was not having much luck hashing out how to get the cursor to move so I can print characters to a set spot on the screen. I have an open inquiry on the rcgroups forum to see if anyone has any experience on coding and using custom font sets for their drone fpv setups. The maxim 7456 chip has other adaptations on the drone fpv setup that do not require Arduino to function. The chip itself is over 10 years old, but is actively used in the drone fpv industry. The analog ability to insert OSD text without high horsepower gear is extremely attractive and the analog signals carry much better than digital/binary ones as they are much more immune to interference due to the way that the encoding/decoding modulation/demodulation works with the signals and the hardware. There is a lot of math involved in the explanation breaking things down. M codingy progress is documented on the adafruit.com forums as that site would have more exposure with folks that might re-use or re-appropriate the code base. https://forums.adafruit.com/viewtopic.php?f=22&t=161697 current code in use: Code: /* VideoTimeInserter.ino Demonstrates a very basic on screen time display.
This example code is in the public domain. Requires Arduino 1.0 or later. History : 1.0 ~ Creation of MAX7456Demo from MAX7456Demo 0.4 2013.01.31 - F. Robert Honeyman <www.coldcoredesign.com> 1.1 ~ for OSD Shield We check the system of video in,and set the sytem of video out same with it. (If the video in system is the PAL,the 1.0 verison will not work well, so we add the checking and setting functions) 2015.02.02 - HuangChao <www.tinysine.com> */ /* This driver uses the Adafruit unified sensor library (Adafruit_Sensor), which provides a common 'type' for sensor data and some helper functions. To use this driver you will also need to download the Adafruit_Sensor library and include it in your libraries folder. You should also assign a unique ID to this sensor for use with the Adafruit Sensor API so that you can identify this particular sensor in any data logs, etc. To assign a unique ID, simply provide an appropriate value in the constructor below (12345 is used by default in this example). Connections: Connect SCL to analog 5, SDA to analog 4, Connect VDD to 3.3-5V DC, Connect GROUND to common ground History: 2015/MAR/03 - First release (KTOWN)*/ /* Set the delay between fresh samples */ // Included Libraries ////////////////////////////////////////////////////////// // includes for max7456 #include <SPI.h> #include <MAX7456.h> #include <Wire.h> // includes for bno055 #include <Adafruit_Sensor.h> #include <Adafruit_BNO055.h> #include <utility/imumaths.h> // Date and time functions using a DS3231 RTC connected via I2C and Wire lib #include "RTClib.h" #define DMDI_reg 0x07 RTC_DS3231 rtc;char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // maxim 7456 chipset settings const byte osdChipSelect = 10; const byte masterOutSlaveIn = MOSI; const byte masterInSlaveOut = MISO; const byte slaveClock = SCK; const byte osdReset = 0; uint16_t BNO055_SAMPLERATE_DELAY_MS = 100; Adafruit_BNO055 bno = Adafruit_BNO055(55, 0x28); MAX7456 OSD( osdChipSelect ); // set spi and serial settings void setup() { unsigned char system_video_in=NULL; SPI.begin(); SPI.setClockDivider( SPI_CLOCK_DIV2 ); OSD.begin(); OSD.setSwitchingTime( 5 ); system_video_in=OSD.videoSystem(); OSD.setDefaultSystem(MAX7456_NTSC) ;OSD.display(); Serial.begin(115200); Serial.println("Orientation Sensor Test"); Serial.println(""); bno.begin(); delay(1000); } // setup() end void loop() { int8_t boardTemp = bno.getTemp(); Serial.println(boardTemp); delay(BNO055_SAMPLERATE_DELAY_MS); sensors_event_t event; bno.getEvent(&event); // this just displays time and is used for calibration purposes // make sure to use two digit off sets for displaying OSD print of values lest things look off. DateTime now = rtc.now(); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); // this sets the display to render the text. while (true) { while (OSD.notInVSync()) { // these get the 9 axis readings and temp bno.getTemp(); bno.getEvent(&event); // this gets the time readings DateTime now = rtc.now(); } //this sets the display, note if using different character set you may have to call each character by ascii number. OSD.setCursor( 0, 0 ); OSD.print(event.orientation.x, 3); OSD.setCursor( 8,0); OSD.print("N"); OSD.setCursor( 17,0); OSD.print(boardTemp); OSD.setCursor( 19,0); OSD.print("C"); OSD.setCursor( 0, -1); OSD.print( now.month() ); OSD.setCursor( 2, -1); OSD.print( "/" ); OSD.setCursor( 3, -1); OSD.print( now.day() ); OSD.setCursor( 5, -1); OSD.print( " " ); OSD.setCursor( 6, -1); OSD.print( now.hour() ); OSD.setCursor( 8, -1); OSD.print( now.minute() ); OSD.setCursor( 11, -1); OSD.print( "LAT" ); OSD.setCursor( 14, -1); OSD.print( "," ); OSD.setCursor( 15, -1); OSD.print( "LON" ); OSD.setCursor( 18, -1); OSD.print( "," ); OSD.setCursor( 19, -1); OSD.print( "ELE" ); OSD.setCursor( 0, 10); OSD.print( "M/D H:M" ); OSD.setCursor( 9, 10); OSD.print( "LA, LO, EL" ); OSD.setCursor( 0, 9); OSD.print( "effffffffffffffffffffffffc" );//bot line OSD.setCursor( 0, 1); OSD.print( "bffffffffffffffffffffffffd" );//top line OSD.setCursor( 0, 2); //left column line OSD.print( "a" ); OSD.setCursor( 0, 3); OSD.print( "a" ); OSD.setCursor( 0, 4); OSD.print( "a" ); OSD.setCursor( 0, 5); OSD.print( "a" ); OSD.setCursor( 0, 6); OSD.print( "a" ); OSD.setCursor( 0, 7); OSD.print( "a" ); OSD.setCursor( 0, 8); OSD.print( "a" ); OSD.setCursor( 25, 8);// right column line OSD.print( "a" ); OSD.setCursor( 25, 3); OSD.print( "a" ); OSD.setCursor( 25, 4); OSD.print( "a" ); OSD.setCursor( 25, 5); OSD.print( "a" ); OSD.setCursor( 25, 6); OSD.print( "a" ); OSD.setCursor( 25, 7); OSD.print( "a" ); OSD.setCursor( 25, 2); OSD.print( "a" ); //target box OSD.setCursor( 12, 5); OSD.print( "." ); OSD.setCursor( 11, 4); OSD.print( "bfd" ); OSD.setCursor( 11, 6); OSD.print( "efc" ); OSD.setCursor( 11, 5); OSD.print( "a" ); OSD.setCursor( 13, 5); OSD.print( "a" ); while (!OSD.notInVSync()) {} // Add aditional code here. } } |
Author: | knoxvilles_joker [ Thu Jul 07, 2022 11:44 pm ] |
Post subject: | |
OK, finally got audio fixed with the microphone. Had to add an XLR power injector and a XLR to 3.5mm voltage limiter. and viola it works. https://www.youtube.com/watch?v=3JUEk2yo000 |
Author: | knoxvilles_joker [ Sat Aug 05, 2023 6:11 am ] | |||||||
Post subject: | Re: A new approach on the smart gunner headset | |||||||
The other pictures. There are more but they are too large to post: https://www.facebook.com/ussandrewjacks ... RuErEEvoyl
|
Author: | septic [ Mon Aug 07, 2023 1:09 am ] |
Post subject: | |
Nice work. Could you not hide most of that wiring inside/under the front armour? |
Author: | knoxvilles_joker [ Mon Aug 07, 2023 9:40 pm ] |
Post subject: | Re: |
septic wrote: Nice work. Could you not hide most of that wiring inside/under the front armour? not really. The routing is very specific and constrained. |
Author: | knoxvilles_joker [ Sat Dec 30, 2023 12:40 am ] |
Post subject: | |
I am ordering parts to replicate the setup for a bench/table display setup. And to ensure I have spares if things go south. |
Page 1 of 1 | All times are UTC [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |