Skip to content

Commit

Permalink
trivial: Some style cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
ximion committed Nov 19, 2022
1 parent 88e203e commit da73d2e
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 81 deletions.
14 changes: 7 additions & 7 deletions LightBarrier/info.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# **Light Barrier**
# Light Barrier

## **1. Description**
## 1. Description

The light barrier is designed to detect any interruption in the light path between the LED (light emmiting diode) emitter and the Photo transistor and convert this interruption into a TTL-compatible
logic level (Transistor-Transistor-Logic ) output for the duration of the interruption.
Expand All @@ -9,7 +9,7 @@ The light barrier has many applications for the detection of movement of many di
The TTL output can be used to control other logical operations either in discreet electronics or using microprocessors and single board computers such as the Raspberry Pie or Arduino as an example.
Most modern processors run on 3.3V but are tolerant of TTL levels which are 5V. If the higher 5V can not be tolerated then a level shifter should be added to the schematic.

## **2. Parts List**
## 2. Parts List

|Part | Part Description | Manufacturer | Part ID | Order URL |
| ---- | ----------------- | ------------ | ------- | --------- |
Expand All @@ -22,10 +22,10 @@ Most modern processors run on 3.3V but are tolerant of TTL levels which are 5V.
| R3 | Carbon Film Axial Resistor 470 Ohm 0.25W | Yageo | 1417694-62 | [Conrad](https://www.conrad.de/de/p/yageo-cfr-25jt-52-470r-kohleschicht-widerstand-470-axial-bedrahtet-0207-0-25-w-5-1-st-1417694.html) |
| PCB | Strip Board Paper/Copper 2.54mm | Rademacher | 529531-62 | [Conrad](https://www.conrad.de/de/p/rademacher-wr-typ-710-2-platine-hartpapier-l-x-b-100-mm-x-75-mm-35-m-rastermass-2-54-mm-inhalt-1-st-529531.html) |

![Light Barrier Schematic](graphics/lightbarrier-schematic.png)
![Light Barrier Schematic](graphics/lightbarrier-schematic.png)<br/>
**Schematic of single channel Light Barrier**

## **3. Functionality**
## 3. Functionality

The 74LS14 is a high-speed CMOS(complimentory metal oxide silicon) Hex Schmitt-Trigger-Invertor, Hex meaning the IC contains six separate Inverting gates all using Schmitt-Trigger technology.
As the IC(integrated circuit) gates invert the signal two have been placed in series to provide a logic high (1) output when the light beam is interrupted and a logic low (0) when uninterrupted.
Expand All @@ -43,10 +43,10 @@ Because of the simplicity of the circuit it is suggested that it is built on pro

The 5V supply is not included in the design as this can be obtained from various sources such as a spare USB output or simply an "off the shelf" power supply readily available from many electronic suppliers.

## **4. Mounting**
## 4. Mounting

For our use a mounting bracket was developed to be able to place the light barrier at any position on our behaviour setup track,
the 5mm LEDs are simply placed within the holes either side of the bracket creating a beam across the track, the CAD drawing is included and can be modified for individual requirements.

![Light Barrier mounting](graphics/lightbarrier.png)
![Light Barrier mounting](graphics/lightbarrier.png)<br/>
**LED Mounting bracket and a section of our setup to demonstrate mounting.**
100 changes: 62 additions & 38 deletions LiquidFeeder/info.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# **Liquid Feeder**
# Liquid Feeder

## **Description**
## Description

The liquid feeder is designed to administer a user defined preset amount of liquid food to rodents as a reward in behaviour experiments.
The liquid feeder can simply be integrated with any controller that offers a 5V TTL (Transistor-Transistor-Logic) or 3.3V logic output such as a single board computer (Raspberry Pie or Arduino for example)
Expand All @@ -15,9 +15,9 @@ The main PCB (printed circuit board), LCD and switches are mounted in a small ho
The Feeder unit is designed using Google Sketchup and 3D printed using a FormLabs Form 2 SLA (Stereolithografie) 3D printer,
assembly of the mechanical parts is quite labour intensive and modification of the motor for this application requires the use of a lathe.

## **Controller Unit**
## Controller Unit

## **Parts List**
## Parts List

|Part | Part Description | Manufacturer | Part ID | Order URL |
| ---- | ----------------- | ------------ | ------- | --------- |
Expand Down Expand Up @@ -45,49 +45,60 @@ assembly of the mechanical parts is quite labour intensive and modification of t
| PCB | Strip Board Paper/Copper 2.54mm | Rademacher | 529531-62 | [Conrad](https://www.conrad.de/de/p/rademacher-wr-typ-710-2-platine-hartpapier-l-x-b-100-mm-x-75-mm-35-m-rastermass-2-54-mm-inhalt-1-st-529531.html) |
| PSU | Plugin Powersupply 9V 2A | Mean Well | 1837961 | [Conrad](https://www.conrad.de/de/p/mean-well-gsm18e09-p1j-steckernetzteil-festspannung-9-v-dc-2-a-18-w-1837961.html#productTechData) |

![liquid feeder schematic](graphics/liquidfeederschematic.png) **Liquid Feeder Schematic**
![liquid feeder schematic](graphics/liquidfeederschematic.png)<br/>
**Liquid Feeder Schematic**

![liquid feeder PCB](graphics/liquidfeederpcb.png) **Liquid Feeder PCB**
![liquid feeder PCB](graphics/liquidfeederpcb.png)<br/>
**Liquid Feeder PCB**

## **1. PCB Assembly**
## 1. PCB Assembly

PCB Gerber files are supplied allowing production and ordering, the origional Proteus design file is also supplied incase any modifications for specific requirements are necessary.
All components of the PCB are mounted by hand and special attention should be applied to the motor driver (U3) as the underside of the component is used as a heat sink and must be soldered to the PCB,
this is done from the reverse side of the PCB using the through holes integrated on the PCB design.

## **2. LCD Preparation**
## 2. LCD Preparation

The LCD requires that a few jumpers and components are added directly to the LCD module, this reduces the amount of connections between the main PCB and the LCD,
the schematic below shows the necessary modifications.
![LCD mod](graphics/lcdmod.png) **LCD Schematic**
![LCD mod](graphics/lcdmod.png)<br/>
**LCD Schematic**

![LCD PCB](graphics/lcdback.jpg) **LCD Modification**: Shows how components are directly mounted to LCD module.
![LCD PCB](graphics/lcdback.jpg)<br/>
**LCD Modification**: Shows how components are directly mounted to LCD module.

## **3. Controller assembly**
## 3. Controller assembly

All components are mounted in a plastic housing and necessary holes for the the LCD, switches and connectors are drilled accordingly.
![control front](graphics/controlfront.jpg) **Front Panel**: Showing LCD unit and the four buttons for operation.
![control front](graphics/controlfront.jpg)<br/>
**Front Panel**: Showing LCD unit and the four buttons for operation.

![control back](graphics/controlback.jpg) **Back Panel**: Showing connection to feeder unit(D9), trigger input(BNC), on/off switch and power connector(low power connector).
![control back](graphics/controlback.jpg)<br/>
**Back Panel**: Showing connection to feeder unit(D9), trigger input(BNC), on/off switch and power connector(low power connector).

![switches schematic](graphics/switches.png)**Switches Schematic**: Showing connections between front panel switches and main PCB.
![switches schematic](graphics/switches.png)<br/>
**Switches Schematic**: Showing connections between front panel switches and main PCB.

![buttons side](graphics/Buttonsside.jpg) **Button Mounting**: A peice of Strip board is used to mount the switches inside the case.
![buttons side](graphics/Buttonsside.jpg)<br/>
**Button Mounting**: A peice of Strip board is used to mount the switches inside the case.

![PCB mounting](graphics/Buttonsback.jpg)**LCD/Buttons**: The LCD is simply held in place with hot glue.
![PCB mounting](graphics/Buttonsback.jpg)<br/>
**LCD/Buttons**: The LCD is simply held in place with hot glue.

![controller open](graphics/controlleropen.jpg) **Finished Controller**: The main PCB is mounted inside the housing.
![controller open](graphics/controlleropen.jpg)<br/>
**Finished Controller**: The main PCB is mounted inside the housing.

![d9controller](graphics/d9controller.png)**Controller wiring** From main PCB to D9 connector.
![d9controller](graphics/d9controller.png)<br/>
**Controller wiring** From main PCB to D9 connector.

## **4. Programming**
## 4. Programming

The Microprocessor must be programmed with the included program, this is performed using a Microchip Pickit 3 In-Circuit Debugger/Programmer and the Microchip MPLAB IDE X software,
once the included project is added to the programming software the PicKit programmer can be plugged directly into the J1 on the main PCB and the program uploaded to the microprocessor.

## **Feeder unit**
## Feeder unit

## **Feeder Parts List**
## Feeder Parts List

|Part | Part Description | Manufacturer | Part ID | Order URL |
| ---- | ----------------- | ------------ | ------- | --------- |
Expand All @@ -99,7 +110,7 @@ once the included project is added to the programming software the PicKit progra
| Cable | D-Sub9 Cable M-F 2M | Pheonix Contact | 673801 | [Conrad](https://www.conrad.de/de/p/phoenix-contact-seriell-parallel-anschlusskabel-1x-d-sub-buchse-15pol-1x-d-sub-stecker-15pol-2-00-m-weiss-673801.html) |
| Wire | Jumper Wire 1x0.2mm | Tru Components | 1567899 | [Conrad](https://www.conrad.de/de/p/tru-components-1567899-schaltdraht-yv-1-x-0-20-mm-schwarz-100-m-1567899.html) |

## **1. Parts Preparation**
## 1. Parts Preparation

The motor (M1) has an output shaft which requires modification, this is best performed on a lathe, The motor should be carefully dismantled and the rotor removed.

Expand All @@ -117,14 +128,16 @@ A piece of brass M3 threaded rod should be cut to a length of 83mm and the threa
Once all parts are 3D printed a small amount of cleaning/trimming and sanding is required to allow the slider (5)
to move freely within the main body (6) and all parts to accurately fit together without force. The following drawing shows all parts for assembly.

![assembly](graphics/assembly.png) **Complete Assembly**
![assembly](graphics/assembly.png)<br/>
**Complete Assembly**

## **2. Assembly of parts**
## 2. Assembly of parts

The 10mm M3 spacer is inserted into the slot on the slider (5) so that the internal thread can be seen through the hole,
the threaded brass rod should then be inserted into the hole and screwed into the inserted spacer, it is necessary to apply some thread lock to stop the threaded rod from unscrewing itself during operation.

![sliderpic](graphics/sliderpic.png) **Assembled slider**
![sliderpic](graphics/sliderpic.png)<br/>
**Assembled slider**

The slider (5) can now be inserted into the main body (6), be sure that the slider is free moving in its guide ways for the full extent of its movement.
A small amount of general purpose grease is recommended to be applied to the guideway and slider as well as the threaded rod.
Expand All @@ -144,48 +157,59 @@ The D9 connector (9) can be mounted into the back cover (10).
Wires should be connected to the two microswitches (4,8) and connected to the D9 connector as shown in the wiring diagram below.
The wires from the motor should be shortened and also connected to D9 connector as shown in the wiring diagram.

![Wiring](graphics/feederd9.png)**Feeder wiring schematic:** showing connection between motor and empty/full switches to D9 male connector.
![Wiring](graphics/feederd9.png)<br/>
**Feeder wiring schematic:** showing connection between motor and empty/full switches to D9 male connector.

The back cover can now be fitted in place paying close attention that any wires are not in the path of the slider.

## **Mounts**
## Mounts

Two mounts have been designed for our applications and the sketchup drawings included,
the drawings can easily be modified to suit other requirements and fittings with the majority of the work already done.

The mount shown below fits in place of the motor cover (1) and then allows the feeder to be mounted on a moveable stand.

![mount2](graphics/mount2.png)**Mount to fit on stand (fits in place of standard motor cover)**
![mount2](graphics/mount2.png)<br/>
**Mount to fit on stand (fits in place of standard motor cover)**

The second mount is designed for a permanent position on our behavour setup,
once the mount has been fixed to the setup the feeder can be simply slid in and out of the mount making syringe replacement, refilling and cleaning very simple.

![mount](graphics/mount1.png)**Mount (to fit our application)**: This mounting system allows the feeder to easily be removed for cleaning.
![mount](graphics/mount1.png)<br/>
**Mount (to fit our application)**: This mounting system allows the feeder to easily be removed for cleaning.

![wire mount](graphics/wiremount.jpg)**Wire Clip**: A simple wire clip allows the feeder to easily be removed for cleaning.
![wire mount](graphics/wiremount.jpg)<br/>
**Wire Clip**: A simple wire clip allows the feeder to easily be removed for cleaning.

![setup mounting](graphics/mounting.jpg)**Setup**: For our application three feeder units are mounted vertically.
![setup mounting](graphics/mounting.jpg)<br/>
**Setup**: For our application three feeder units are mounted vertically.

![controllers](graphics/controllers.jpg)**Controllers**: Three controllers are mounted on the wall by using magnets and a sheet of steel mounted to the wall.
![controllers](graphics/controllers.jpg)<br/>
**Controllers**: Three controllers are mounted on the wall by using magnets and a sheet of steel mounted to the wall.

## **Operation**
## Operation

The controller and feeder are connected using a standard D9 male to female serial cable,
once the power supply is connected the LCD will illuminate and the program will initiate. A simple menu structure for the control of operation is shown below.

![Menu 1](graphics/display1.jpg) **First Menu**: When **INC (RUN)** is pressed the unit will enter **RUN** mode.
![Menu 1](graphics/display1.jpg)<br/>
**First Menu**: When **INC (RUN)** is pressed the unit will enter **RUN** mode.

![Menu 2](graphics/display2.jpg) **Run Mode Display**: This
![Menu 2](graphics/display2.jpg)<br/>
**Run Mode Display**: This
shows the unit is in **RUN** mode and is ready for operation and waiting for an external trigger.
Pressing **DOSE** at any time will administer the set quantity. Pressing the **SEL (EXIT)** button will exit **RUN** mode and return to the **First Menu**.

![Menu 3](graphics/display3.jpg) **Setup Menu**:
![Menu 3](graphics/display3.jpg)<br/>
**Setup Menu**:
When **DEC (SETUP)** is pressed on the **First Menu** the program enters **SETUP** mode.

![Menu 4](graphics/display4.jpg) **Set Quantity**: When **INC (SET AMOUNT)** is pressed in the **SETUP Menu** the quantity to be administered can be set using the **INC/DEC** buttons,
![Menu 4](graphics/display4.jpg)<br/>
**Set Quantity**: When **INC (SET AMOUNT)** is pressed in the **SETUP Menu** the quantity to be administered can be set using the **INC/DEC** buttons,
pressing the **SEL** button will accept this new quantity and save it to memory while also exiting the **QUANTITY** Function.
The new quantity is saved in SRAM memory and will be automatically recalled even after a power cycle, units are in ul(micro litres)

![Menu 5](graphics/display5.jpg) **EMPTY/FILL**: When **DEC (EMPTY/FILL)** is pressed in the **Setup Menu** the unit is able to fill or empty the syringe of whatever liquid is being used
![Menu 5](graphics/display5.jpg)<br/>
**EMPTY/FILL**: When **DEC (EMPTY/FILL)** is pressed in the **Setup Menu** the unit is able to fill or empty the syringe of whatever liquid is being used
(in our case condensed milk), by pressing **INC (FILL)** the syringe will be fully retracted filling the syringe with liquid,
by pressing **DEC (EMPTY)** the syringe will be fully protracted emptying the contents of the syringe. Pressing the **SEL** button will stop either process and return to the previous menu.
Loading

0 comments on commit da73d2e

Please sign in to comment.